From d1d864d6a73e6185fbb5f9d178aeb1f715224eed Mon Sep 17 00:00:00 2001 From: khussey Date: Mon, 14 Nov 2005 22:25:52 +0000 Subject: [80305] Adding new API to source control. --- plugins/org.eclipse.uml2.uml/.classpath | 7 + plugins/org.eclipse.uml2.uml/.cvsignore | 1 + plugins/org.eclipse.uml2.uml/.project | 33 + plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF | 17 + plugins/org.eclipse.uml2.uml/build.properties | 19 + .../org.eclipse.uml2.uml/model/Infrastructure.emx | 59 + .../org.eclipse.uml2.uml/model/Infrastructure.uml2 | 4 + .../model/InfrastructureLibrary.emx | 16579 +++++ .../model/InfrastructureLibrary.uml2 | 4973 ++ plugins/org.eclipse.uml2.uml/model/L0.emx | 136 + plugins/org.eclipse.uml2.uml/model/L0.uml2 | 16 + plugins/org.eclipse.uml2.uml/model/L1.emx | 660 + plugins/org.eclipse.uml2.uml/model/L1.uml2 | 28 + plugins/org.eclipse.uml2.uml/model/L2.emx | 1394 + plugins/org.eclipse.uml2.uml/model/L2.uml2 | 82 + plugins/org.eclipse.uml2.uml/model/L3.emx | 1876 + plugins/org.eclipse.uml2.uml/model/L3.merged.uml2 | 15344 +++++ plugins/org.eclipse.uml2.uml/model/L3.uml2 | 76 + plugins/org.eclipse.uml2.uml/model/LM.emx | 151 + plugins/org.eclipse.uml2.uml/model/LM.uml2 | 16 + .../org.eclipse.uml2.uml/model/Superstructure.emx | 120 + .../org.eclipse.uml2.uml/model/Superstructure.uml2 | 11 + plugins/org.eclipse.uml2.uml/model/UML.ecore | 9574 +++ plugins/org.eclipse.uml2.uml/model/UML.emx | 58501 ++++++++++++++++ plugins/org.eclipse.uml2.uml/model/UML.genmodel | 3893 ++ plugins/org.eclipse.uml2.uml/model/UML.uml2 | 15036 +++++ plugins/org.eclipse.uml2.uml/plugin.properties | 26 + plugins/org.eclipse.uml2.uml/plugin.xml | 33 + .../src/org/eclipse/uml2/uml/Abstraction.java | 73 + .../src/org/eclipse/uml2/uml/AcceptCallAction.java | 91 + .../org/eclipse/uml2/uml/AcceptEventAction.java | 181 + .../src/org/eclipse/uml2/uml/Action.java | 208 + .../uml2/uml/ActionExecutionSpecification.java | 79 + .../src/org/eclipse/uml2/uml/ActionInputPin.java | 126 + .../src/org/eclipse/uml2/uml/Activity.java | 361 + .../src/org/eclipse/uml2/uml/ActivityEdge.java | 369 + .../org/eclipse/uml2/uml/ActivityFinalNode.java | 31 + .../src/org/eclipse/uml2/uml/ActivityGroup.java | 203 + .../src/org/eclipse/uml2/uml/ActivityNode.java | 274 + .../eclipse/uml2/uml/ActivityParameterNode.java | 131 + .../org/eclipse/uml2/uml/ActivityPartition.java | 309 + .../src/org/eclipse/uml2/uml/Actor.java | 71 + .../uml2/uml/AddStructuralFeatureValueAction.java | 144 + .../eclipse/uml2/uml/AddVariableValueAction.java | 137 + .../src/org/eclipse/uml2/uml/AggregationKind.java | 194 + .../src/org/eclipse/uml2/uml/AnyReceiveEvent.java | 31 + .../src/org/eclipse/uml2/uml/Artifact.java | 246 + .../src/org/eclipse/uml2/uml/Association.java | 272 + .../src/org/eclipse/uml2/uml/AssociationClass.java | 62 + .../src/org/eclipse/uml2/uml/Behavior.java | 291 + .../uml2/uml/BehaviorExecutionSpecification.java | 63 + .../org/eclipse/uml2/uml/BehavioralFeature.java | 233 + .../org/eclipse/uml2/uml/BehavioredClassifier.java | 208 + .../eclipse/uml2/uml/BroadcastSignalAction.java | 92 + .../src/org/eclipse/uml2/uml/CallAction.java | 147 + .../org/eclipse/uml2/uml/CallBehaviorAction.java | 93 + .../org/eclipse/uml2/uml/CallConcurrencyKind.java | 199 + .../src/org/eclipse/uml2/uml/CallEvent.java | 63 + .../org/eclipse/uml2/uml/CallOperationAction.java | 154 + .../org/eclipse/uml2/uml/CentralBufferNode.java | 31 + .../src/org/eclipse/uml2/uml/ChangeEvent.java | 76 + .../src/org/eclipse/uml2/uml/Class.java | 255 + .../src/org/eclipse/uml2/uml/Classifier.java | 666 + .../uml2/uml/ClassifierTemplateParameter.java | 133 + .../src/org/eclipse/uml2/uml/Clause.java | 209 + .../eclipse/uml2/uml/ClearAssociationAction.java | 140 + .../uml2/uml/ClearStructuralFeatureAction.java | 31 + .../org/eclipse/uml2/uml/ClearVariableAction.java | 31 + .../src/org/eclipse/uml2/uml/Collaboration.java | 72 + .../src/org/eclipse/uml2/uml/CollaborationUse.java | 162 + .../src/org/eclipse/uml2/uml/CombinedFragment.java | 193 + .../src/org/eclipse/uml2/uml/Comment.java | 83 + .../org/eclipse/uml2/uml/CommunicationPath.java | 31 + .../src/org/eclipse/uml2/uml/Component.java | 234 + .../org/eclipse/uml2/uml/ComponentRealization.java | 93 + .../src/org/eclipse/uml2/uml/ConditionalNode.java | 181 + .../org/eclipse/uml2/uml/ConnectableElement.java | 62 + .../uml/ConnectableElementTemplateParameter.java | 31 + .../eclipse/uml2/uml/ConnectionPointReference.java | 148 + .../src/org/eclipse/uml2/uml/Connector.java | 281 + .../src/org/eclipse/uml2/uml/ConnectorEnd.java | 162 + .../src/org/eclipse/uml2/uml/ConnectorKind.java | 165 + .../eclipse/uml2/uml/ConsiderIgnoreFragment.java | 93 + .../src/org/eclipse/uml2/uml/Constraint.java | 194 + .../src/org/eclipse/uml2/uml/Continuation.java | 105 + .../src/org/eclipse/uml2/uml/ControlFlow.java | 48 + .../src/org/eclipse/uml2/uml/ControlNode.java | 31 + .../src/org/eclipse/uml2/uml/CreateLinkAction.java | 51 + .../eclipse/uml2/uml/CreateLinkObjectAction.java | 113 + .../org/eclipse/uml2/uml/CreateObjectAction.java | 153 + .../src/org/eclipse/uml2/uml/CreationEvent.java | 48 + .../src/org/eclipse/uml2/uml/DataStoreNode.java | 31 + .../src/org/eclipse/uml2/uml/DataType.java | 139 + .../src/org/eclipse/uml2/uml/DecisionNode.java | 103 + .../src/org/eclipse/uml2/uml/Dependency.java | 95 + .../src/org/eclipse/uml2/uml/DeployedArtifact.java | 31 + .../src/org/eclipse/uml2/uml/Deployment.java | 134 + .../eclipse/uml2/uml/DeploymentSpecification.java | 147 + .../src/org/eclipse/uml2/uml/DeploymentTarget.java | 105 + .../org/eclipse/uml2/uml/DestroyLinkAction.java | 41 + .../org/eclipse/uml2/uml/DestroyObjectAction.java | 168 + .../src/org/eclipse/uml2/uml/DestructionEvent.java | 49 + .../src/org/eclipse/uml2/uml/Device.java | 31 + .../org/eclipse/uml2/uml/DirectedRelationship.java | 71 + .../src/org/eclipse/uml2/uml/Duration.java | 93 + .../org/eclipse/uml2/uml/DurationConstraint.java | 31 + .../src/org/eclipse/uml2/uml/DurationInterval.java | 31 + .../uml2/uml/DurationObservationAction.java | 79 + .../src/org/eclipse/uml2/uml/Element.java | 158 + .../src/org/eclipse/uml2/uml/ElementImport.java | 206 + .../eclipse/uml2/uml/EncapsulatedClassifier.java | 66 + .../src/org/eclipse/uml2/uml/Enumeration.java | 88 + .../org/eclipse/uml2/uml/EnumerationLiteral.java | 67 + .../src/org/eclipse/uml2/uml/Event.java | 31 + .../src/org/eclipse/uml2/uml/ExceptionHandler.java | 197 + .../src/org/eclipse/uml2/uml/ExecutableNode.java | 67 + .../org/eclipse/uml2/uml/ExecutionEnvironment.java | 31 + .../src/org/eclipse/uml2/uml/ExecutionEvent.java | 31 + .../uml2/uml/ExecutionOccurrenceSpecification.java | 63 + .../eclipse/uml2/uml/ExecutionSpecification.java | 105 + .../src/org/eclipse/uml2/uml/ExpansionKind.java | 189 + .../src/org/eclipse/uml2/uml/ExpansionNode.java | 93 + .../src/org/eclipse/uml2/uml/ExpansionRegion.java | 161 + .../src/org/eclipse/uml2/uml/Expression.java | 106 + .../src/org/eclipse/uml2/uml/Extend.java | 202 + .../src/org/eclipse/uml2/uml/Extension.java | 123 + .../src/org/eclipse/uml2/uml/ExtensionEnd.java | 60 + .../src/org/eclipse/uml2/uml/ExtensionPoint.java | 81 + .../src/org/eclipse/uml2/uml/Feature.java | 96 + .../src/org/eclipse/uml2/uml/FinalNode.java | 48 + .../src/org/eclipse/uml2/uml/FinalState.java | 110 + .../src/org/eclipse/uml2/uml/FlowFinalNode.java | 31 + .../src/org/eclipse/uml2/uml/ForkNode.java | 60 + .../src/org/eclipse/uml2/uml/FunctionBehavior.java | 72 + .../src/org/eclipse/uml2/uml/Gate.java | 61 + .../src/org/eclipse/uml2/uml/GeneralOrdering.java | 93 + .../src/org/eclipse/uml2/uml/Generalization.java | 173 + .../org/eclipse/uml2/uml/GeneralizationSet.java | 166 + .../src/org/eclipse/uml2/uml/Image.java | 33 + .../src/org/eclipse/uml2/uml/Include.java | 97 + .../src/org/eclipse/uml2/uml/InformationFlow.java | 279 + .../src/org/eclipse/uml2/uml/InformationItem.java | 115 + .../src/org/eclipse/uml2/uml/InitialNode.java | 60 + .../src/org/eclipse/uml2/uml/InputPin.java | 31 + .../eclipse/uml2/uml/InstanceSpecification.java | 203 + .../src/org/eclipse/uml2/uml/InstanceValue.java | 63 + .../src/org/eclipse/uml2/uml/Interaction.java | 246 + .../eclipse/uml2/uml/InteractionConstraint.java | 190 + .../org/eclipse/uml2/uml/InteractionFragment.java | 161 + .../org/eclipse/uml2/uml/InteractionOperand.java | 159 + .../eclipse/uml2/uml/InteractionOperatorKind.java | 434 + .../src/org/eclipse/uml2/uml/InteractionUse.java | 211 + .../src/org/eclipse/uml2/uml/Interface.java | 287 + .../org/eclipse/uml2/uml/InterfaceRealization.java | 91 + .../uml2/uml/InterruptibleActivityRegion.java | 114 + .../src/org/eclipse/uml2/uml/Interval.java | 89 + .../org/eclipse/uml2/uml/IntervalConstraint.java | 31 + .../src/org/eclipse/uml2/uml/InvocationAction.java | 131 + .../src/org/eclipse/uml2/uml/JoinNode.java | 138 + .../src/org/eclipse/uml2/uml/Lifeline.java | 243 + .../src/org/eclipse/uml2/uml/LinkAction.java | 183 + .../org/eclipse/uml2/uml/LinkEndCreationData.java | 130 + .../src/org/eclipse/uml2/uml/LinkEndData.java | 184 + .../eclipse/uml2/uml/LinkEndDestructionData.java | 123 + .../src/org/eclipse/uml2/uml/LiteralBoolean.java | 63 + .../src/org/eclipse/uml2/uml/LiteralInteger.java | 63 + .../src/org/eclipse/uml2/uml/LiteralNull.java | 31 + .../org/eclipse/uml2/uml/LiteralSpecification.java | 31 + .../src/org/eclipse/uml2/uml/LiteralString.java | 63 + .../eclipse/uml2/uml/LiteralUnlimitedNatural.java | 63 + .../src/org/eclipse/uml2/uml/LoopNode.java | 364 + .../src/org/eclipse/uml2/uml/Manifestation.java | 63 + .../src/org/eclipse/uml2/uml/MergeNode.java | 60 + .../src/org/eclipse/uml2/uml/Message.java | 345 + .../src/org/eclipse/uml2/uml/MessageEnd.java | 63 + .../src/org/eclipse/uml2/uml/MessageEvent.java | 31 + .../src/org/eclipse/uml2/uml/MessageKind.java | 224 + .../uml2/uml/MessageOccurrenceSpecification.java | 31 + .../src/org/eclipse/uml2/uml/MessageSort.java | 195 + .../src/org/eclipse/uml2/uml/Model.java | 63 + .../org/eclipse/uml2/uml/MultiplicityElement.java | 360 + .../src/org/eclipse/uml2/uml/NamedElement.java | 299 + .../src/org/eclipse/uml2/uml/Namespace.java | 336 + .../src/org/eclipse/uml2/uml/Node.java | 104 + .../src/org/eclipse/uml2/uml/ObjectFlow.java | 248 + .../src/org/eclipse/uml2/uml/ObjectNode.java | 245 + .../eclipse/uml2/uml/ObjectNodeOrderingKind.java | 220 + .../eclipse/uml2/uml/OccurrenceSpecification.java | 133 + .../src/org/eclipse/uml2/uml/OpaqueAction.java | 125 + .../src/org/eclipse/uml2/uml/OpaqueBehavior.java | 71 + .../src/org/eclipse/uml2/uml/OpaqueExpression.java | 236 + .../src/org/eclipse/uml2/uml/Operation.java | 478 + .../uml2/uml/OperationTemplateParameter.java | 31 + .../src/org/eclipse/uml2/uml/OutputPin.java | 31 + .../src/org/eclipse/uml2/uml/Package.java | 262 + .../src/org/eclipse/uml2/uml/PackageImport.java | 136 + .../src/org/eclipse/uml2/uml/PackageMerge.java | 106 + .../org/eclipse/uml2/uml/PackageableElement.java | 32 + .../src/org/eclipse/uml2/uml/Parameter.java | 328 + .../eclipse/uml2/uml/ParameterDirectionKind.java | 232 + .../org/eclipse/uml2/uml/ParameterEffectKind.java | 220 + .../src/org/eclipse/uml2/uml/ParameterSet.java | 158 + .../org/eclipse/uml2/uml/ParameterableElement.java | 123 + .../org/eclipse/uml2/uml/PartDecomposition.java | 98 + .../src/org/eclipse/uml2/uml/Pin.java | 81 + .../src/org/eclipse/uml2/uml/Port.java | 260 + .../src/org/eclipse/uml2/uml/PrimitiveType.java | 31 + .../src/org/eclipse/uml2/uml/Profile.java | 156 + .../org/eclipse/uml2/uml/ProfileApplication.java | 89 + .../src/org/eclipse/uml2/uml/Property.java | 666 + .../org/eclipse/uml2/uml/ProtocolConformance.java | 101 + .../org/eclipse/uml2/uml/ProtocolStateMachine.java | 123 + .../org/eclipse/uml2/uml/ProtocolTransition.java | 205 + .../src/org/eclipse/uml2/uml/Pseudostate.java | 250 + .../src/org/eclipse/uml2/uml/PseudostateKind.java | 393 + .../src/org/eclipse/uml2/uml/QualifierValue.java | 130 + .../org/eclipse/uml2/uml/RaiseExceptionAction.java | 86 + .../src/org/eclipse/uml2/uml/ReadExtentAction.java | 128 + .../uml2/uml/ReadIsClassifiedObjectAction.java | 228 + .../src/org/eclipse/uml2/uml/ReadLinkAction.java | 154 + .../eclipse/uml2/uml/ReadLinkObjectEndAction.java | 239 + .../uml2/uml/ReadLinkObjectEndQualifierAction.java | 252 + .../src/org/eclipse/uml2/uml/ReadSelfAction.java | 127 + .../uml2/uml/ReadStructuralFeatureAction.java | 91 + .../org/eclipse/uml2/uml/ReadVariableAction.java | 104 + .../src/org/eclipse/uml2/uml/Realization.java | 31 + .../src/org/eclipse/uml2/uml/Reception.java | 79 + .../eclipse/uml2/uml/ReclassifyObjectAction.java | 209 + .../org/eclipse/uml2/uml/RedefinableElement.java | 192 + .../uml2/uml/RedefinableTemplateSignature.java | 125 + .../src/org/eclipse/uml2/uml/Region.java | 307 + .../src/org/eclipse/uml2/uml/Relationship.java | 55 + .../uml/RemoveStructuralFeatureValueAction.java | 137 + .../uml2/uml/RemoveVariableValueAction.java | 129 + .../src/org/eclipse/uml2/uml/ReplyAction.java | 190 + .../src/org/eclipse/uml2/uml/SendObjectAction.java | 133 + .../org/eclipse/uml2/uml/SendOperationEvent.java | 63 + .../src/org/eclipse/uml2/uml/SendSignalAction.java | 141 + .../src/org/eclipse/uml2/uml/SendSignalEvent.java | 63 + .../src/org/eclipse/uml2/uml/SequenceNode.java | 79 + .../src/org/eclipse/uml2/uml/Signal.java | 89 + .../src/org/eclipse/uml2/uml/SignalEvent.java | 63 + .../src/org/eclipse/uml2/uml/Slot.java | 133 + .../uml2/uml/StartClassifierBehaviorAction.java | 114 + .../src/org/eclipse/uml2/uml/State.java | 652 + .../src/org/eclipse/uml2/uml/StateInvariant.java | 86 + .../src/org/eclipse/uml2/uml/StateMachine.java | 240 + .../src/org/eclipse/uml2/uml/Stereotype.java | 82 + .../src/org/eclipse/uml2/uml/StringExpression.java | 135 + .../org/eclipse/uml2/uml/StructuralFeature.java | 67 + .../eclipse/uml2/uml/StructuralFeatureAction.java | 184 + .../eclipse/uml2/uml/StructuredActivityNode.java | 228 + .../org/eclipse/uml2/uml/StructuredClassifier.java | 195 + .../src/org/eclipse/uml2/uml/Substitution.java | 93 + .../src/org/eclipse/uml2/uml/TemplateBinding.java | 150 + .../org/eclipse/uml2/uml/TemplateParameter.java | 213 + .../uml2/uml/TemplateParameterSubstitution.java | 153 + .../org/eclipse/uml2/uml/TemplateSignature.java | 139 + .../org/eclipse/uml2/uml/TemplateableElement.java | 144 + .../org/eclipse/uml2/uml/TestIdentityAction.java | 213 + .../src/org/eclipse/uml2/uml/TimeConstraint.java | 31 + .../src/org/eclipse/uml2/uml/TimeEvent.java | 119 + .../src/org/eclipse/uml2/uml/TimeExpression.java | 90 + .../src/org/eclipse/uml2/uml/TimeInterval.java | 31 + .../eclipse/uml2/uml/TimeObservationAction.java | 80 + .../src/org/eclipse/uml2/uml/Transition.java | 440 + .../src/org/eclipse/uml2/uml/TransitionKind.java | 195 + .../src/org/eclipse/uml2/uml/Trigger.java | 93 + .../src/org/eclipse/uml2/uml/Type.java | 79 + .../src/org/eclipse/uml2/uml/TypedElement.java | 69 + .../src/org/eclipse/uml2/uml/UMLFactory.java | 1819 + .../src/org/eclipse/uml2/uml/UMLPackage.java | 66733 +++++++++++++++++++ .../src/org/eclipse/uml2/uml/UMLPlugin.java | 100 + .../src/org/eclipse/uml2/uml/UnmarshallAction.java | 233 + .../src/org/eclipse/uml2/uml/Usage.java | 33 + .../src/org/eclipse/uml2/uml/UseCase.java | 266 + .../src/org/eclipse/uml2/uml/ValuePin.java | 92 + .../org/eclipse/uml2/uml/ValueSpecification.java | 112 + .../eclipse/uml2/uml/ValueSpecificationAction.java | 140 + .../src/org/eclipse/uml2/uml/Variable.java | 130 + .../src/org/eclipse/uml2/uml/VariableAction.java | 79 + .../src/org/eclipse/uml2/uml/Vertex.java | 149 + .../src/org/eclipse/uml2/uml/VisibilityKind.java | 224 + .../src/org/eclipse/uml2/uml/WriteLinkAction.java | 48 + .../uml2/uml/WriteStructuralFeatureAction.java | 102 + .../org/eclipse/uml2/uml/WriteVariableAction.java | 114 + .../uml2/uml/internal/impl/AbstractionImpl.java | 420 + .../uml/internal/impl/AcceptCallActionImpl.java | 528 + .../uml/internal/impl/AcceptEventActionImpl.java | 676 + .../impl/ActionExecutionSpecificationImpl.java | 352 + .../eclipse/uml2/uml/internal/impl/ActionImpl.java | 663 + .../uml2/uml/internal/impl/ActionInputPinImpl.java | 614 + .../uml2/uml/internal/impl/ActivityEdgeImpl.java | 1164 + .../uml/internal/impl/ActivityFinalNodeImpl.java | 51 + .../uml2/uml/internal/impl/ActivityGroupImpl.java | 522 + .../uml2/uml/internal/impl/ActivityImpl.java | 1550 + .../uml2/uml/internal/impl/ActivityNodeImpl.java | 783 + .../internal/impl/ActivityParameterNodeImpl.java | 502 + .../uml/internal/impl/ActivityPartitionImpl.java | 1137 + .../eclipse/uml2/uml/internal/impl/ActorImpl.java | 75 + .../impl/AddStructuralFeatureValueActionImpl.java | 735 + .../internal/impl/AddVariableValueActionImpl.java | 670 + .../uml/internal/impl/AnyReceiveEventImpl.java | 51 + .../uml2/uml/internal/impl/ArtifactImpl.java | 1127 + .../uml/internal/impl/AssociationClassImpl.java | 1421 + .../uml2/uml/internal/impl/AssociationImpl.java | 1142 + .../impl/BehaviorExecutionSpecificationImpl.java | 337 + .../uml2/uml/internal/impl/BehaviorImpl.java | 1368 + .../uml/internal/impl/BehavioralFeatureImpl.java | 1108 + .../internal/impl/BehavioredClassifierImpl.java | 1008 + .../internal/impl/BroadcastSignalActionImpl.java | 473 + .../uml2/uml/internal/impl/CallActionImpl.java | 651 + .../uml/internal/impl/CallBehaviorActionImpl.java | 550 + .../uml2/uml/internal/impl/CallEventImpl.java | 287 + .../uml/internal/impl/CallOperationActionImpl.java | 756 + .../uml/internal/impl/CentralBufferNodeImpl.java | 51 + .../uml2/uml/internal/impl/ChangeEventImpl.java | 385 + .../eclipse/uml2/uml/internal/impl/ClassImpl.java | 1637 + .../uml2/uml/internal/impl/ClassifierImpl.java | 2332 + .../impl/ClassifierTemplateParameterImpl.java | 522 + .../eclipse/uml2/uml/internal/impl/ClauseImpl.java | 478 + .../internal/impl/ClearAssociationActionImpl.java | 638 + .../impl/ClearStructuralFeatureActionImpl.java | 51 + .../uml/internal/impl/ClearVariableActionImpl.java | 51 + .../uml2/uml/internal/impl/CollaborationImpl.java | 1058 + .../uml/internal/impl/CollaborationUseImpl.java | 436 + .../uml/internal/impl/CombinedFragmentImpl.java | 573 + .../uml2/uml/internal/impl/CommentImpl.java | 245 + .../uml/internal/impl/CommunicationPathImpl.java | 68 + .../uml2/uml/internal/impl/ComponentImpl.java | 1212 + .../internal/impl/ComponentRealizationImpl.java | 651 + .../uml/internal/impl/ConditionalNodeImpl.java | 890 + .../uml/internal/impl/ConnectableElementImpl.java | 612 + .../ConnectableElementTemplateParameterImpl.java | 230 + .../impl/ConnectionPointReferenceImpl.java | 536 + .../uml2/uml/internal/impl/ConnectorEndImpl.java | 502 + .../uml2/uml/internal/impl/ConnectorImpl.java | 685 + .../internal/impl/ConsiderIgnoreFragmentImpl.java | 352 + .../uml2/uml/internal/impl/ConstraintImpl.java | 619 + .../uml2/uml/internal/impl/ContinuationImpl.java | 359 + .../uml2/uml/internal/impl/ControlFlowImpl.java | 67 + .../uml2/uml/internal/impl/ControlNodeImpl.java | 51 + .../uml/internal/impl/CreateLinkActionImpl.java | 284 + .../internal/impl/CreateLinkObjectActionImpl.java | 604 + .../uml/internal/impl/CreateObjectActionImpl.java | 644 + .../uml2/uml/internal/impl/CreationEventImpl.java | 68 + .../uml2/uml/internal/impl/DataStoreNodeImpl.java | 51 + .../uml2/uml/internal/impl/DataTypeImpl.java | 870 + .../uml2/uml/internal/impl/DecisionNodeImpl.java | 408 + .../uml2/uml/internal/impl/DependencyImpl.java | 548 + .../uml/internal/impl/DeployedArtifactImpl.java | 51 + .../uml2/uml/internal/impl/DeploymentImpl.java | 676 + .../internal/impl/DeploymentSpecificationImpl.java | 969 + .../uml/internal/impl/DeploymentTargetImpl.java | 409 + .../uml/internal/impl/DestroyLinkActionImpl.java | 268 + .../uml/internal/impl/DestroyObjectActionImpl.java | 709 + .../uml/internal/impl/DestructionEventImpl.java | 68 + .../eclipse/uml2/uml/internal/impl/DeviceImpl.java | 51 + .../internal/impl/DirectedRelationshipImpl.java | 193 + .../uml/internal/impl/DurationConstraintImpl.java | 250 + .../uml2/uml/internal/impl/DurationImpl.java | 360 + .../uml/internal/impl/DurationIntervalImpl.java | 277 + .../impl/DurationObservationActionImpl.java | 542 + .../uml2/uml/internal/impl/ElementImpl.java | 389 + .../uml2/uml/internal/impl/ElementImportImpl.java | 610 + .../internal/impl/EncapsulatedClassifierImpl.java | 653 + .../uml2/uml/internal/impl/EnumerationImpl.java | 764 + .../uml/internal/impl/EnumerationLiteralImpl.java | 482 + .../eclipse/uml2/uml/internal/impl/EventImpl.java | 51 + .../uml/internal/impl/ExceptionHandlerImpl.java | 512 + .../uml2/uml/internal/impl/ExecutableNodeImpl.java | 486 + .../internal/impl/ExecutionEnvironmentImpl.java | 51 + .../uml2/uml/internal/impl/ExecutionEventImpl.java | 51 + .../impl/ExecutionOccurrenceSpecificationImpl.java | 410 + .../internal/impl/ExecutionSpecificationImpl.java | 386 + .../uml2/uml/internal/impl/ExpansionNodeImpl.java | 693 + .../uml/internal/impl/ExpansionRegionImpl.java | 827 + .../uml2/uml/internal/impl/ExpressionImpl.java | 443 + .../eclipse/uml2/uml/internal/impl/ExtendImpl.java | 743 + .../uml2/uml/internal/impl/ExtensionEndImpl.java | 435 + .../uml2/uml/internal/impl/ExtensionImpl.java | 444 + .../uml2/uml/internal/impl/ExtensionPointImpl.java | 373 + .../uml2/uml/internal/impl/FeatureImpl.java | 346 + .../uml2/uml/internal/impl/FinalNodeImpl.java | 68 + .../uml2/uml/internal/impl/FinalStateImpl.java | 122 + .../uml2/uml/internal/impl/FlowFinalNodeImpl.java | 51 + .../uml2/uml/internal/impl/ForkNodeImpl.java | 77 + .../uml/internal/impl/FunctionBehaviorImpl.java | 79 + .../eclipse/uml2/uml/internal/impl/GateImpl.java | 79 + .../uml/internal/impl/GeneralOrderingImpl.java | 463 + .../uml2/uml/internal/impl/GeneralizationImpl.java | 571 + .../uml/internal/impl/GeneralizationSetImpl.java | 613 + .../eclipse/uml2/uml/internal/impl/ImageImpl.java | 76 + .../uml2/uml/internal/impl/IncludeImpl.java | 549 + .../uml/internal/impl/InformationFlowImpl.java | 713 + .../uml/internal/impl/InformationItemImpl.java | 554 + .../uml2/uml/internal/impl/InitialNodeImpl.java | 78 + .../uml2/uml/internal/impl/InputPinImpl.java | 51 + .../internal/impl/InstanceSpecificationImpl.java | 935 + .../uml2/uml/internal/impl/InstanceValueImpl.java | 300 + .../internal/impl/InteractionConstraintImpl.java | 577 + .../uml/internal/impl/InteractionFragmentImpl.java | 585 + .../uml2/uml/internal/impl/InteractionImpl.java | 1708 + .../uml/internal/impl/InteractionOperandImpl.java | 907 + .../uml2/uml/internal/impl/InteractionUseImpl.java | 565 + .../uml2/uml/internal/impl/InterfaceImpl.java | 1163 + .../internal/impl/InterfaceRealizationImpl.java | 636 + .../impl/InterruptibleActivityRegionImpl.java | 381 + .../uml/internal/impl/IntervalConstraintImpl.java | 250 + .../uml2/uml/internal/impl/IntervalImpl.java | 355 + .../uml/internal/impl/InvocationActionImpl.java | 597 + .../uml2/uml/internal/impl/JoinNodeImpl.java | 581 + .../uml2/uml/internal/impl/LifelineImpl.java | 698 + .../uml2/uml/internal/impl/LinkActionImpl.java | 618 + .../uml/internal/impl/LinkEndCreationDataImpl.java | 343 + .../uml2/uml/internal/impl/LinkEndDataImpl.java | 387 + .../internal/impl/LinkEndDestructionDataImpl.java | 343 + .../uml2/uml/internal/impl/LiteralBooleanImpl.java | 332 + .../uml2/uml/internal/impl/LiteralIntegerImpl.java | 327 + .../uml2/uml/internal/impl/LiteralNullImpl.java | 71 + .../internal/impl/LiteralSpecificationImpl.java | 51 + .../uml2/uml/internal/impl/LiteralStringImpl.java | 332 + .../internal/impl/LiteralUnlimitedNaturalImpl.java | 327 + .../uml2/uml/internal/impl/LoopNodeImpl.java | 1193 + .../uml2/uml/internal/impl/ManifestationImpl.java | 394 + .../uml2/uml/internal/impl/MergeNodeImpl.java | 77 + .../uml2/uml/internal/impl/MessageEndImpl.java | 263 + .../uml2/uml/internal/impl/MessageEventImpl.java | 51 + .../uml2/uml/internal/impl/MessageImpl.java | 854 + .../impl/MessageOccurrenceSpecificationImpl.java | 443 + .../eclipse/uml2/uml/internal/impl/ModelImpl.java | 439 + .../uml/internal/impl/MultiplicityElementImpl.java | 706 + .../uml2/uml/internal/impl/NamedElementImpl.java | 668 + .../uml2/uml/internal/impl/NamespaceImpl.java | 657 + .../eclipse/uml2/uml/internal/impl/NodeImpl.java | 1142 + .../uml2/uml/internal/impl/ObjectFlowImpl.java | 683 + .../uml2/uml/internal/impl/ObjectNodeImpl.java | 863 + .../internal/impl/OccurrenceSpecificationImpl.java | 545 + .../uml2/uml/internal/impl/OpaqueActionImpl.java | 582 + .../uml2/uml/internal/impl/OpaqueBehaviorImpl.java | 781 + .../uml/internal/impl/OpaqueExpressionImpl.java | 499 + .../uml2/uml/internal/impl/OperationImpl.java | 2030 + .../impl/OperationTemplateParameterImpl.java | 227 + .../uml2/uml/internal/impl/OutputPinImpl.java | 51 + .../uml2/uml/internal/impl/PackageImpl.java | 1327 + .../uml2/uml/internal/impl/PackageImportImpl.java | 518 + .../uml2/uml/internal/impl/PackageMergeImpl.java | 426 + .../uml/internal/impl/PackageableElementImpl.java | 614 + .../uml2/uml/internal/impl/ParameterImpl.java | 1459 + .../uml2/uml/internal/impl/ParameterSetImpl.java | 449 + .../internal/impl/ParameterableElementImpl.java | 446 + .../uml/internal/impl/PartDecompositionImpl.java | 89 + .../eclipse/uml2/uml/internal/impl/PinImpl.java | 470 + .../eclipse/uml2/uml/internal/impl/PortImpl.java | 955 + .../uml2/uml/internal/impl/PrimitiveTypeImpl.java | 51 + .../uml/internal/impl/ProfileApplicationImpl.java | 385 + .../uml2/uml/internal/impl/ProfileImpl.java | 701 + .../uml2/uml/internal/impl/PropertyImpl.java | 2384 + .../uml/internal/impl/ProtocolConformanceImpl.java | 429 + .../internal/impl/ProtocolStateMachineImpl.java | 1117 + .../uml/internal/impl/ProtocolTransitionImpl.java | 687 + .../uml2/uml/internal/impl/PseudostateImpl.java | 679 + .../uml2/uml/internal/impl/QualifierValueImpl.java | 300 + .../internal/impl/RaiseExceptionActionImpl.java | 549 + .../uml/internal/impl/ReadExtentActionImpl.java | 623 + .../impl/ReadIsClassifiedObjectActionImpl.java | 861 + .../uml2/uml/internal/impl/ReadLinkActionImpl.java | 621 + .../internal/impl/ReadLinkObjectEndActionImpl.java | 809 + .../impl/ReadLinkObjectEndQualifierActionImpl.java | 840 + .../uml2/uml/internal/impl/ReadSelfActionImpl.java | 578 + .../impl/ReadStructuralFeatureActionImpl.java | 593 + .../uml/internal/impl/ReadVariableActionImpl.java | 574 + .../uml2/uml/internal/impl/RealizationImpl.java | 51 + .../uml2/uml/internal/impl/ReceptionImpl.java | 432 + .../internal/impl/ReclassifyObjectActionImpl.java | 751 + .../uml/internal/impl/RedefinableElementImpl.java | 427 + .../impl/RedefinableTemplateSignatureImpl.java | 800 + .../eclipse/uml2/uml/internal/impl/RegionImpl.java | 1052 + .../uml2/uml/internal/impl/RelationshipImpl.java | 131 + .../RemoveStructuralFeatureValueActionImpl.java | 738 + .../impl/RemoveVariableValueActionImpl.java | 671 + .../uml2/uml/internal/impl/ReplyActionImpl.java | 713 + .../uml/internal/impl/SendObjectActionImpl.java | 701 + .../uml/internal/impl/SendOperationEventImpl.java | 288 + .../uml/internal/impl/SendSignalActionImpl.java | 662 + .../uml/internal/impl/SendSignalEventImpl.java | 286 + .../uml2/uml/internal/impl/SequenceNodeImpl.java | 648 + .../uml2/uml/internal/impl/SignalEventImpl.java | 284 + .../eclipse/uml2/uml/internal/impl/SignalImpl.java | 676 + .../eclipse/uml2/uml/internal/impl/SlotImpl.java | 448 + .../impl/StartClassifierBehaviorActionImpl.java | 579 + .../eclipse/uml2/uml/internal/impl/StateImpl.java | 1894 + .../uml2/uml/internal/impl/StateInvariantImpl.java | 469 + .../uml2/uml/internal/impl/StateMachineImpl.java | 1271 + .../uml2/uml/internal/impl/StereotypeImpl.java | 681 + .../uml/internal/impl/StringExpressionImpl.java | 838 + .../internal/impl/StructuralFeatureActionImpl.java | 673 + .../uml/internal/impl/StructuralFeatureImpl.java | 1004 + .../internal/impl/StructuredActivityNodeImpl.java | 1595 + .../internal/impl/StructuredClassifierImpl.java | 901 + .../uml2/uml/internal/impl/SubstitutionImpl.java | 618 + .../uml/internal/impl/TemplateBindingImpl.java | 538 + .../uml/internal/impl/TemplateParameterImpl.java | 727 + .../impl/TemplateParameterSubstitutionImpl.java | 496 + .../uml/internal/impl/TemplateSignatureImpl.java | 439 + .../uml/internal/impl/TemplateableElementImpl.java | 426 + .../uml/internal/impl/TestIdentityActionImpl.java | 793 + .../uml2/uml/internal/impl/TimeConstraintImpl.java | 247 + .../uml2/uml/internal/impl/TimeEventImpl.java | 470 + .../uml2/uml/internal/impl/TimeExpressionImpl.java | 375 + .../uml2/uml/internal/impl/TimeIntervalImpl.java | 277 + .../internal/impl/TimeObservationActionImpl.java | 538 + .../uml2/uml/internal/impl/TransitionImpl.java | 1174 + .../uml2/uml/internal/impl/TriggerImpl.java | 308 + .../eclipse/uml2/uml/internal/impl/TypeImpl.java | 288 + .../uml2/uml/internal/impl/TypedElementImpl.java | 261 + .../uml2/uml/internal/impl/UMLFactoryImpl.java | 3099 + .../uml2/uml/internal/impl/UMLPackageImpl.java | 10618 +++ .../uml/internal/impl/UnmarshallActionImpl.java | 763 + .../eclipse/uml2/uml/internal/impl/UsageImpl.java | 51 + .../uml2/uml/internal/impl/UseCaseImpl.java | 1039 + .../uml2/uml/internal/impl/ValuePinImpl.java | 545 + .../impl/ValueSpecificationActionImpl.java | 654 + .../uml/internal/impl/ValueSpecificationImpl.java | 386 + .../uml2/uml/internal/impl/VariableActionImpl.java | 437 + .../uml2/uml/internal/impl/VariableImpl.java | 1050 + .../eclipse/uml2/uml/internal/impl/VertexImpl.java | 476 + .../uml/internal/impl/WriteLinkActionImpl.java | 67 + .../impl/WriteStructuralFeatureActionImpl.java | 606 + .../uml/internal/impl/WriteVariableActionImpl.java | 584 + .../org/eclipse/uml2/uml/internal/impl/uml.ecore | 9574 +++ .../operations/AcceptCallActionOperations.java | 150 + .../operations/AcceptEventActionOperations.java | 185 + .../ActionExecutionSpecificationOperations.java | 83 + .../operations/ActionInputPinOperations.java | 149 + .../operations/ActivityEdgeOperations.java | 148 + .../operations/ActivityGroupOperations.java | 148 + .../operations/ActivityNodeOperations.java | 115 + .../internal/operations/ActivityOperations.java | 148 + .../ActivityParameterNodeOperations.java | 223 + .../operations/ActivityPartitionOperations.java | 219 + .../uml/internal/operations/ActorOperations.java | 120 + .../AddStructuralFeatureValueActionOperations.java | 91 + .../AddVariableValueActionOperations.java | 91 + .../operations/AssociationClassOperations.java | 100 + .../internal/operations/AssociationOperations.java | 198 + .../internal/operations/BehaviorOperations.java | 181 + .../operations/BehavioralFeatureOperations.java | 67 + .../operations/BehavioredClassifierOperations.java | 83 + .../BroadcastSignalActionOperations.java | 117 + .../internal/operations/CallActionOperations.java | 148 + .../operations/CallBehaviorActionOperations.java | 153 + .../operations/CallOperationActionOperations.java | 187 + .../uml/internal/operations/ClassOperations.java | 98 + .../internal/operations/ClassifierOperations.java | 411 + .../ClassifierTemplateParameterOperations.java | 83 + .../uml/internal/operations/ClauseOperations.java | 115 + .../ClearAssociationActionOperations.java | 117 + .../operations/CollaborationUseOperations.java | 149 + .../operations/CombinedFragmentOperations.java | 184 + .../operations/CommunicationPathOperations.java | 83 + .../internal/operations/ComponentOperations.java | 127 + .../operations/ConditionalNodeOperations.java | 83 + .../ConnectionPointReferenceOperations.java | 117 + .../operations/ConnectorEndOperations.java | 181 + .../internal/operations/ConnectorOperations.java | 313 + .../ConsiderIgnoreFragmentOperations.java | 117 + .../internal/operations/ConstraintOperations.java | 214 + .../operations/ContinuationOperations.java | 148 + .../internal/operations/ControlFlowOperations.java | 82 + .../operations/CreateLinkActionOperations.java | 83 + .../CreateLinkObjectActionOperations.java | 151 + .../operations/CreateObjectActionOperations.java | 185 + .../operations/CreationEventOperations.java | 83 + .../internal/operations/DataTypeOperations.java | 59 + .../operations/DecisionNodeOperations.java | 148 + .../DeploymentSpecificationOperations.java | 119 + .../operations/DeploymentTargetOperations.java | 58 + .../operations/DestroyObjectActionOperations.java | 117 + .../operations/DestructionEventOperations.java | 83 + .../DurationObservationActionOperations.java | 100 + .../operations/ElementImportOperations.java | 171 + .../uml/internal/operations/ElementOperations.java | 148 + .../operations/ExceptionHandlerOperations.java | 183 + .../ExecutionSpecificationOperations.java | 83 + .../operations/ExpansionRegionOperations.java | 83 + .../uml/internal/operations/ExtendOperations.java | 86 + .../operations/ExtensionEndOperations.java | 133 + .../internal/operations/ExtensionOperations.java | 164 + .../operations/ExtensionPointOperations.java | 82 + .../internal/operations/FinalNodeOperations.java | 82 + .../internal/operations/FinalStateOperations.java | 247 + .../internal/operations/ForkNodeOperations.java | 115 + .../operations/FunctionBehaviorOperations.java | 129 + .../uml/internal/operations/GateOperations.java | 115 + .../operations/GeneralizationOperations.java | 83 + .../operations/GeneralizationSetOperations.java | 117 + .../operations/InformationFlowOperations.java | 172 + .../operations/InformationItemOperations.java | 158 + .../internal/operations/InitialNodeOperations.java | 115 + .../InstanceSpecificationOperations.java | 185 + .../InteractionConstraintOperations.java | 253 + .../operations/InteractionOperandOperations.java | 117 + .../operations/InteractionUseOperations.java | 183 + .../internal/operations/InterfaceOperations.java | 82 + .../InterruptibleActivityRegionOperations.java | 85 + .../operations/InvocationActionOperations.java | 82 + .../internal/operations/JoinNodeOperations.java | 121 + .../internal/operations/LifelineOperations.java | 152 + .../internal/operations/LinkActionOperations.java | 170 + .../operations/LinkEndCreationDataOperations.java | 125 + .../internal/operations/LinkEndDataOperations.java | 214 + .../LinkEndDestructionDataOperations.java | 117 + .../operations/LiteralBooleanOperations.java | 73 + .../operations/LiteralIntegerOperations.java | 73 + .../internal/operations/LiteralNullOperations.java | 73 + .../operations/LiteralStringOperations.java | 73 + .../LiteralUnlimitedNaturalOperations.java | 75 + .../internal/operations/LoopNodeOperations.java | 148 + .../internal/operations/MergeNodeOperations.java | 115 + .../uml/internal/operations/MessageOperations.java | 286 + .../operations/MultiplicityElementOperations.java | 338 + .../operations/NamedElementOperations.java | 229 + .../internal/operations/NamespaceOperations.java | 178 + .../uml/internal/operations/NodeOperations.java | 82 + .../internal/operations/ObjectFlowOperations.java | 315 + .../internal/operations/ObjectNodeOperations.java | 181 + .../operations/OpaqueExpressionOperations.java | 257 + .../internal/operations/OperationOperations.java | 246 + .../operations/PackageImportOperations.java | 82 + .../uml/internal/operations/PackageOperations.java | 136 + .../internal/operations/ParameterOperations.java | 214 + .../operations/ParameterSetOperations.java | 148 + .../operations/ParameterableElementOperations.java | 75 + .../operations/PartDecompositionOperations.java | 164 + .../uml/internal/operations/PinOperations.java | 82 + .../uml/internal/operations/PortOperations.java | 181 + .../uml/internal/operations/ProfileOperations.java | 140 + .../internal/operations/PropertyOperations.java | 472 + .../operations/ProtocolStateMachineOperations.java | 223 + .../operations/ProtocolTransitionOperations.java | 171 + .../internal/operations/PseudostateOperations.java | 362 + .../operations/QualifierValueOperations.java | 151 + .../operations/ReadExtentActionOperations.java | 117 + .../ReadIsClassifiedObjectActionOperations.java | 185 + .../operations/ReadLinkActionOperations.java | 231 + .../ReadLinkObjectEndActionOperations.java | 287 + ...ReadLinkObjectEndQualifierActionOperations.java | 321 + .../operations/ReadSelfActionOperations.java | 181 + .../ReadStructuralFeatureActionOperations.java | 119 + .../operations/ReadVariableActionOperations.java | 119 + .../internal/operations/ReceptionOperations.java | 82 + .../ReclassifyObjectActionOperations.java | 151 + .../operations/RedefinableElementOperations.java | 172 + .../RedefinableTemplateSignatureOperations.java | 103 + .../uml/internal/operations/RegionOperations.java | 265 + ...moveStructuralFeatureValueActionOperations.java | 85 + .../RemoveVariableValueActionOperations.java | 83 + .../internal/operations/ReplyActionOperations.java | 115 + .../operations/SendSignalActionOperations.java | 117 + .../StartClassifierBehaviorActionOperations.java | 117 + .../operations/StateMachineOperations.java | 257 + .../uml/internal/operations/StateOperations.java | 386 + .../internal/operations/StereotypeOperations.java | 115 + .../operations/StringExpressionOperations.java | 138 + .../StructuralFeatureActionOperations.java | 224 + .../StructuredActivityNodeOperations.java | 83 + .../operations/StructuredClassifierOperations.java | 83 + .../operations/TemplateBindingOperations.java | 117 + .../operations/TemplateParameterOperations.java | 83 + .../TemplateParameterSubstitutionOperations.java | 83 + .../operations/TemplateSignatureOperations.java | 83 + .../operations/TemplateableElementOperations.java | 76 + .../operations/TestIdentityActionOperations.java | 154 + .../internal/operations/TimeEventOperations.java | 82 + .../TimeObservationActionOperations.java | 100 + .../internal/operations/TransitionOperations.java | 351 + .../uml/internal/operations/TypeOperations.java | 57 + .../operations/UnmarshallActionOperations.java | 288 + .../uml/internal/operations/UseCaseOperations.java | 198 + .../internal/operations/ValuePinOperations.java | 82 + .../ValueSpecificationActionOperations.java | 117 + .../operations/ValueSpecificationOperations.java | 157 + .../operations/VariableActionOperations.java | 83 + .../internal/operations/VariableOperations.java | 101 + .../uml/internal/operations/VertexOperations.java | 69 + .../operations/WriteLinkActionOperations.java | 82 + .../WriteStructuralFeatureActionOperations.java | 117 + .../operations/WriteVariableActionOperations.java | 117 + .../uml/internal/util/UMLResourceFactoryImpl.java | 55 + .../uml2/uml/internal/util/UMLResourceImpl.java | 42 + .../eclipse/uml2/uml/util/UMLAdapterFactory.java | 4747 ++ .../src/org/eclipse/uml2/uml/util/UMLResource.java | 63 + .../src/org/eclipse/uml2/uml/util/UMLSwitch.java | 9055 +++ .../org/eclipse/uml2/uml/util/UMLValidator.java | 21822 ++++++ .../templates/Header.javajetinc | 12 + .../templates/Header.propertiesjetinc | 10 + .../templates/Header.xmljetinc | 12 + 698 files changed, 454115 insertions(+) create mode 100644 plugins/org.eclipse.uml2.uml/.classpath create mode 100644 plugins/org.eclipse.uml2.uml/.cvsignore create mode 100644 plugins/org.eclipse.uml2.uml/.project create mode 100644 plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF create mode 100644 plugins/org.eclipse.uml2.uml/build.properties create mode 100644 plugins/org.eclipse.uml2.uml/model/Infrastructure.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/Infrastructure.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/L0.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/L0.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/L1.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/L1.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/L2.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/L2.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/L3.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/L3.merged.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/L3.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/LM.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/LM.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/Superstructure.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/Superstructure.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/model/UML.ecore create mode 100644 plugins/org.eclipse.uml2.uml/model/UML.emx create mode 100644 plugins/org.eclipse.uml2.uml/model/UML.genmodel create mode 100644 plugins/org.eclipse.uml2.uml/model/UML.uml2 create mode 100644 plugins/org.eclipse.uml2.uml/plugin.properties create mode 100644 plugins/org.eclipse.uml2.uml/plugin.xml create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Abstraction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptCallAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptEventAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionExecutionSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionInputPin.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityFinalNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityParameterNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityPartition.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Actor.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddStructuralFeatureValueAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddVariableValueAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AggregationKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AnyReceiveEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AssociationClass.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Behavior.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehaviorExecutionSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioredClassifier.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BroadcastSignalAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallBehaviorAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallConcurrencyKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallOperationAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CentralBufferNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ChangeEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClassifierTemplateParameter.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Clause.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearAssociationAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearStructuralFeatureAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearVariableAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Collaboration.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CollaborationUse.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CombinedFragment.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Comment.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CommunicationPath.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ComponentRealization.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConditionalNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElementTemplateParameter.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectionPointReference.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Connector.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorEnd.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConsiderIgnoreFragment.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Constraint.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Continuation.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlFlow.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkObjectAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateObjectAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreationEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataStoreNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DecisionNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Dependency.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeployedArtifact.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentTarget.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyLinkAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyObjectAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestructionEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Device.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DirectedRelationship.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Duration.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationConstraint.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationInterval.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationObservationAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Element.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EncapsulatedClassifier.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Enumeration.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EnumerationLiteral.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Event.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExceptionHandler.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEnvironment.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionOccurrenceSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionRegion.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extension.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionEnd.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionPoint.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Feature.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalState.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FlowFinalNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ForkNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FunctionBehavior.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Gate.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralOrdering.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralizationSet.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Image.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationFlow.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationItem.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InitialNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InputPin.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceValue.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interaction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionConstraint.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionFragment.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperand.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperatorKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionUse.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterruptibleActivityRegion.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interval.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/IntervalConstraint.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/JoinNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Lifeline.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndCreationData.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndData.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndDestructionData.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralBoolean.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralInteger.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralNull.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralString.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralUnlimitedNatural.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LoopNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Manifestation.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MergeNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Message.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEnd.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageOccurrenceSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageSort.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Model.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/NamedElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Node.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectFlow.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNodeOrderingKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OccurrenceSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueBehavior.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OperationTemplateParameter.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OutputPin.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterDirectionKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterEffectKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterSet.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterableElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PartDecomposition.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PrimitiveType.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Profile.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolStateMachine.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolTransition.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pseudostate.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PseudostateKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/QualifierValue.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RaiseExceptionAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadExtentAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadIsClassifiedObjectAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndQualifierAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadSelfAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadStructuralFeatureAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadVariableAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Realization.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Reception.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReclassifyObjectAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableTemplateSignature.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Region.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Relationship.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveStructuralFeatureValueAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveVariableValueAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReplyAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendObjectAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendOperationEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SequenceNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SignalEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Slot.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StartClassifierBehaviorAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/State.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateInvariant.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateMachine.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Stereotype.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StringExpression.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeatureAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameterSubstitution.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateableElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TestIdentityAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeConstraint.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeEvent.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeExpression.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeInterval.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeObservationAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Transition.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TransitionKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Type.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLFactory.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPlugin.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UnmarshallAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Usage.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UseCase.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValuePin.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecification.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecificationAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Variable.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VariableAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Vertex.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VisibilityKind.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteLinkAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteStructuralFeatureAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteVariableAction.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AbstractionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityFinalNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AnyReceiveEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorExecutionSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CentralBufferNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ChangeEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearVariableActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentRealizationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementTemplateParameterImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreationEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataStoreNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DependencyImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeployedArtifactImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentTargetImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyLinkActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeviceImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DirectedRelationshipImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationIntervalImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EncapsulatedClassifierImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEnvironmentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionOccurrenceSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpressionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FeatureImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FlowFinalNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ImageImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IncludeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionFragmentImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceRealizationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalConstraintImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ManifestationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEndImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageOccurrenceSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OccurrenceSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueBehaviorImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationTemplateParameterImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterableElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PrimitiveTypeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RealizationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RelationshipImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendOperationEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SlotImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateInvariantImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SubstitutionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterSubstitutionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateSignatureImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateableElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeConstraintImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeIntervalImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeObservationActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TriggerImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypedElementImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UsageImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionExecutionSpecificationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityEdgeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioralFeatureOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioredClassifierOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallBehaviorActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierTemplateParameterOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearAssociationActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CommunicationPathOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ControlFlowOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreationEventOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DataTypeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentTargetOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestroyObjectActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestructionEventOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DurationObservationActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExecutionSpecificationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExpansionRegionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtendOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionEndOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionPointOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ForkNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FunctionBehaviorOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GateOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InitialNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterfaceOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterruptibleActivityRegionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InvocationActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/JoinNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralBooleanOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralIntegerOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralNullOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralStringOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralUnlimitedNaturalOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MergeNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamespaceOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OperationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageImportOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterableElementOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PinOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProfileOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolTransitionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadExtentActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadIsClassifiedObjectActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadStructuralFeatureActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadVariableActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReceptionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableElementOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableTemplateSignatureOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveStructuralFeatureValueActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveVariableValueActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/SendSignalActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredClassifierOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateBindingOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterSubstitutionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateSignatureOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateableElementOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TestIdentityActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeObservationActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TypeOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VertexOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteLinkActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceFactoryImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceImpl.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLResource.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java create mode 100644 plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java create mode 100644 plugins/org.eclipse.uml2.uml/templates/Header.javajetinc create mode 100644 plugins/org.eclipse.uml2.uml/templates/Header.propertiesjetinc create mode 100644 plugins/org.eclipse.uml2.uml/templates/Header.xmljetinc (limited to 'plugins') diff --git a/plugins/org.eclipse.uml2.uml/.classpath b/plugins/org.eclipse.uml2.uml/.classpath new file mode 100644 index 00000000..751c8f2e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/.cvsignore b/plugins/org.eclipse.uml2.uml/.cvsignore new file mode 100644 index 00000000..ba077a40 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/.cvsignore @@ -0,0 +1 @@ +bin diff --git a/plugins/org.eclipse.uml2.uml/.project b/plugins/org.eclipse.uml2.uml/.project new file mode 100644 index 00000000..19895c92 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/.project @@ -0,0 +1,33 @@ + + + org.eclipse.uml2.uml + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + com.ibm.sse.model.structuredbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF b/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF new file mode 100644 index 00000000..55d7648d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.uml2.uml; singleton:=true +Bundle-Version: 1.0.0 +Bundle-ClassPath: org.eclipse.uml2.uml.jar +Bundle-Activator: org.eclipse.uml2.uml.UMLPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Export-Package: org.eclipse.uml2.uml, + org.eclipse.uml2.uml.internal.impl, + org.eclipse.uml2.uml.util +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.uml2.common;visibility:=reexport +Eclipse-LazyStart: true diff --git a/plugins/org.eclipse.uml2.uml/build.properties b/plugins/org.eclipse.uml2.uml/build.properties new file mode 100644 index 00000000..cf5823df --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/build.properties @@ -0,0 +1,19 @@ +# Copyright (c) 2005 IBM Corporation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# IBM - initial API and implementation +# +# $Id: build.properties,v 1.1 2005/11/14 22:26:07 khussey Exp $ + +bin.includes = org.eclipse.uml2.uml.jar,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = org.eclipse.uml2.uml.jar +source.org.eclipse.uml2.uml.jar = src/ +output.org.eclipse.uml2.uml.jar = bin/ \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/model/Infrastructure.emx b/plugins/org.eclipse.uml2.uml/model/Infrastructure.emx new file mode 100644 index 00000000..d1873e16 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/Infrastructure.emx @@ -0,0 +1,59 @@ + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/Infrastructure.uml2 b/plugins/org.eclipse.uml2.uml/model/Infrastructure.uml2 new file mode 100644 index 00000000..b23a0310 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/Infrastructure.uml2 @@ -0,0 +1,4 @@ + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.emx b/plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.emx new file mode 100644 index 00000000..67c409c1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.emx @@ -0,0 +1,16579 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.uml2 b/plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.uml2 new file mode 100644 index 00000000..d2100522 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/InfrastructureLibrary.uml2 @@ -0,0 +1,4973 @@ + + + + +
+ + + + + + + + + + + + Element has a derived composition association to itself to support the general capability for elements to own other elements. + + + + An element may not directly or indirectly own itself. + + + not self.allOwnedElements()->includes(self) + + + + + Elements that must be owned must have an owner. + + + self.mustBeOwned() implies owner->notEmpty() + + + + + + + + The Elements owned by this element. + + + + + + + + + + The Element that owns this element. + + + + + + + + + + The Comments owned by this element. + + + + + + + The query allOwnedElements() gives all of the direct and indirect owned elements of an element. + + + + result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements())) + + + + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation. + + + + result = true + + + + + + + + + + + + + + + + + + + A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass. + + + + If there is no name, or one of the containing namespaces has no name, there is no qualified name. + + + (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) + implies self.qualifiedName->isEmpty() + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies + self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + + + + + + + + + The name of the NamedElement. + + + + + + + + + + A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself. + + + + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. + + + + result = if self.namespace->isEmpty() +then Sequence{} +else self.namespace.allNamespaces()->prepend(self.namespace) +endif + + + + + + + + + + The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. + + + + result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) +then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty() +else true +endif + + + + + + + + + The query separator() gives the string that is used to separate names when constructing a qualified name. + + + + result = '::' + + + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + + result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() +then + self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) +else + Set{} +endif + + + + + + + + A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + + + + All the members of a Namespace are distinguishable within it. + + + membersAreDistinguishable() + + + + + + + + + A collection of NamedElements owned by the Namespace. + + + + + + + + + + A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance. + + + + + + + The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. Those semantics are specified by overriding the getNamesOfMember operation. The specification here simply returns a set containing a single name, or the empty set if no name. + + + + result = if member->includes(element) then Set{}->including(element.name) else Set{} endif + + + + + + + + + + + The Boolean query membersAreDistinguishable() determines whether all of the namespaces members are distinguishable within it. + + + + result = self.member->forAll( memb | +self.member->excluding(memb)->forAll(other | +memb.isDistinguishableFrom(other, self))) + + + + + + + + + + + + + + + + + + + A classifier is a classification of instances; it describes a set of instances that have features in common. A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. + + + + + + + + Specifies each feature defined in the classifier. + + + + + + + The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. + + + + result = member->select(oclIsKindOf(Feature)) + + + + + + + + + + + A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass. + + + + + + + + The Classifiers that have this Feature as a feature. + + + + + + + + + + + + + + An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + + + + + + + + + The text of the expression, possibly in multiple languages. + + + + + + + + + + Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order. + + + + + + + + ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. + + + + + The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals. + + + + result = false + + + + + + + The query integerValue() gives a single Integer value when one can be computed. + + + + result = Set{} + + + + + + + The query booleanValue() gives a single Boolean value when one can be computed. + + + + result = Set{} + + + + + + + The query stringValue() gives a single String value when one can be computed. + + + + result = Set{} + + + + + + + The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed. + + + + result = Set{} + + + + + + + The query isNull() returns true when it can be computed that the value is null. + + + + result = false + + + + + + + + An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications. + + + + + The symbol associated with the node in the expression tree. + + + + + + + + Specifies a sequence of operands. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MultiplicityElement is specialized to support the use of value specifications to define each bound of the multiplicity. + + + + + + + + Specifies the lower bound of the multiplicity interval, if it is expressed as an integer. This is a redefinition of the corresponding property from Multiplicities. + + + + + + + + + + + Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural. This is a redefinition of the corresponding property from Multiplicities. + + + + + + + + + + + The specification of the upper bound for this multiplicity. + + + + + + + + + + The specification of the lower bound for this multiplicity. + + + + + + + + + + The derived lower attribute must equal the lowerBound. + + + + result = lowerBound() + + + + + + + + + + The derived upper attribute must equal the upperBound. + + + + result = upperBound() + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an integer. + + + + result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif + + + + + + + The query upperBound() returns the upper bound of the multiplicity as an unlimited natural. + + + + result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif + + + + + + + + + + + + + + + + + + + + + + + + + + A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances. BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + + + + + + + + + Specifies the parameters of the BehavioralFeature. + + + + + + + The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures. + + + + result = if n.oclIsKindOf(BehavioralFeature) +then + if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty() + then Set{}->including(self)->including(n)->isUnique( bf | bf.parameter->collect(type)) + else true + endif +else true +endif + + + + + + + + + + Parameter is an abstract metaclass specializing TypedElement and NamedElement. + + + + + + + + + + + + + + + + + + An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity. The description includes: + - Classification of the entity by one or more classifiers of which the entity is an instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity. + - The kind of instance, based on its classifier or classifiers: for example, an instance specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association. + - Specification of values of structural features of the entity. Not all structural features of all classifiers of the instance specification need be represented by slots, in which case the instance specification is a partial description. + - Specification of how to compute, derive or construct the instance (optional). InstanceSpecification is a concrete class. + + + + The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification. + + + slot->forAll(s | +classifier->exists(c | c.allFeatures()->includes(s.definingFeature)) +) + + + + + + One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification. + + + classifier->forAll(c | +(c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() <= 1) +) + + + + + + + + + + A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description. + + + + + + + The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them. + + + + + + + + + + A specification of how to compute, derive, or construct the instance. + + + + + + + + A slot is owned by an instance specification. It specifies the value or values for its defining feature, which must be a structural feature of a classifier of the instance specification owning the slot. + + + + + The instance specification that owns this slot. + + + + + + + + + + The value or values corresponding to the defining feature for the owning instance specification. This is an ordered association. + + + + + + + The structural feature that specifies the values that may be held by the slot. + + + + + + + + An instance value specifies the value modeled by an instance specification. + + + + + The instance that is the specified value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass. + + + + At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. + + + self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e)) + + + + + A redefining element must be consistent with each redefined element. + + + self.redefinedElement->forAll(re | re.isConsistentWith(self)) + + + + + + + + + The redefinable element that is being redefined by this element. + + + + + + + + + + References the contexts that this element may be redefined from. + + + + + + + The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = false + + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + + + + result = redefinitionContext->exists(c | +c.allparents()-> +includes (redefined.redefinitionContext)) + + + + + + + + + + + + + + + + + + + + + + References the specializing classifier in the Generalization relationship. + + + + + + + References the general classifier in the Generalization relationship. + + + + + + + + A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. + + + + + + + + Specifies the Generalization relationships for this Classifier. These Generalizations navigate to more general classifiers in the generalization hierarchy. + + + + + + + + + + Specifies the general Classifiers for this Classifier. + + + + + + + + + + The general classifiers are the classifiers referenced by the generalization relationships. + + + + result = self.parents() + + + + + + + + + + The query parents() gives all of the immediate ancestors of a generalized Classifier. + + + + result = generalization.general + + + + + + + + + + The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. + + + + result = (self=other) or (self.allParents()->includes(other)) + + + + + + + + + + + + + + + + + + + + + + + A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment may be owned by any element. + + + + + + + + Specifies a string that is the comment + + + + + References the Element(s) being commented. + + + + + + + + + + + + + + A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass. + + + + + + + + Specifies the sources of the DirectedRelationship. + + + + + + + + + + Specifies the targets of the DirectedRelationship. + + + + + + + + A relationship references one or more related elements. Relationship is an abstract metaclass. + + + + + + + + Specifies the elements related by the Relationship. + + + + + + + + + + + + + + + + + + + + + + StructuralFeature is specialized to add an attribute that determines whether a client may modify its value. + + + + States whether the feature's value may be modified by a client. + + + + + + + + + + + A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. Structural feature is an abstract metaclass. + + + + + + + + + + + + Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. +Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to the element. Constraint contains an optional name, although they are commonly unnamed. + + + + A constraint cannot be applied to itself. + + + not constrainedElement->includes(self) + + + + + The value specification for a constraint must evaluate to a Boolean value. + + + self.specification().booleanValue().isOclKindOf(Boolean) + + + + + + The Namespace that owns this NamedElement. + + + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + The ordered set of Elements referenced by this Constraint. + + + + + + + + A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace. + + + + + + + + Specifies a set of Constraints owned by this Namespace. + + + + + + + + + + A collection of NamedElements owned by the Namespace. + + + + + + + + + + A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance. + + + + + + + + A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass. + + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VisibilityKind is an enumeration of the following literal values: + - public + - private + - protected + - package + + + + The query bestVisibility() examines a set of VisibilityKinds, and returns public as the preferred visibility. + + + + result = if vis->includes(#public) then #public else #private endif + + + + + + + + + + + A public element is visible to all elements that can access the contents of the namespace that owns it. + + + + + A private element is only visible inside the namespace that owns it. + + + + + A protected element is visible to elements that have a generalization relationship to the namespace that owns it. + + + + + A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible. + + + + + + NamedElement has a visibility attribute. + + + + The query bestVisibility() examines a set of VisibilityKinds, and returns public as the preferred visibility. + + + namespace->isEmpty() implies visibility->isEmpty() + + + + + Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility. + + + + + + + + + + + A classifier can specify a generalization hierarchy by referencing its general classifiers. + + + + Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + + + not self.allParents()->includes(self) + + + + + A classifier may only specialize classifiers of a valid type. + + + self.parents()->forAll(c | self.maySpecializeType(c)) + + + + + + If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. + + + + + + + + + Specifies all elements inherited by this classifier from the general classifiers. + + + + + + + Specifies the more general classifiers in the generalization hierarchy for this Classifier. + + + + + + + + + + The inheritedMember association is derived by inheriting the inheritable members of the parents. + + + + result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self)) + + + + + + + + + + The query parents() gives all of the immediate ancestors of a generalized Classifier. + + + + result = general + + + + + + + + + + The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. + + + + result = self.parents()->union(self.parents()->collect(p | p.allParents()) + + + + + + + + + + The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. + + + + c.allParents()->includes(self) + + + + + result = member->select(m | c.hasVisibilityOf(m)) + + + + + + + + + + + The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. + + + + self.allParents()->collect(c | c.member)->includes(n) + + + + + result = if (self.inheritedMember->includes (n)) then (n.visibility <> #private) else true + + + + + + + + The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. + + + + result = inhs + + + + + + + + + + + + + + The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + + + + result = self.oclIsKindOf(c.oclType) + + + + + + + + + + + + + + + + + + + A literal boolean contains a Boolean-valued attribute. + + + + + The specified Boolean value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + The query booleanValue() gives the value. + + + + result = value + + + + + + + + A literal string contains a String-valued attribute. + + + + + The specified String value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + The query stringValue() gives the value. + + + + result = value + + + + + + + + A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled. + + + + + + A literal null is used to represent null, i.e., the absence of a value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + The query isNull() returns true. + + + + result = true + + + + + + + + A literal integer contains an Integer-valued attribute. + + + + + The specified Integer value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + The query integerValue() gives the value. + + + + result = value + + + + + + + + A literal unlimited natural is a specification of an unlimited natural number and contains a UnlimitedNatural-valued attribute. + + + + + The specified UnlimitedNatural value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + The query unlimitedValue() gives the value. + + + + result = value + + + + + + + + + + + A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered. + + + + A multiplicity must define at least one valid cardinality that is greater than zero. + + + upperBound()->notEmpty() implies upperBound() > 0 + + + + + The lower bound must be a non-negative integer literal. + + + lowerBound()->notEmpty() implies lowerBound() >= 0 + + + + + The upper bound must be greater than or equal to the lower bound. + + + (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + + + + + + For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.. + + + + + + For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. + + + + + + Specifies the lower bound of the multiplicity interval. + + + + + + + + Specifies the upper bound of the multiplicity interval. + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an integer. + + + + result = if lower->notEmpty() then lower else 1 endif + + + + + + + The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + + + + result = if upper->notEmpty() then upper else 1 endif + + + + + + + The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + + + + upperBound()->notEmpty() + + + + + result = upperBound() > 1 + + + + + + + The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + + + + upperBound()->notEmpty() and lowerBound()->notEmpty() +includesCardinality = (lowerBound() <= C) and (upperBound() >= C) + + + + + + result = (lowerBound() <= C) and (upperBound() >= C) + + + + + + + + The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + + + + self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + + + + + result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + + + + + + + + + + + Element is an abstract metaclass with no superclass. It is used as the common superclass for all metaclasses in the infrastructure library. + + + + + + + + A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass. + + + + + The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations. + + + + result = false + + + + + + + + + A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. Typed element is an abstract metaclass. + + + + + The type of the TypedElement. + + + + + + + + + + + + + + + + + An instance of Integer is an element in the (infinite) set of integers (...-2, -1, 0, 1, 2...). It is used for integer attributes and integer expressions in the metamodel. + + + + + + + + Boolean is an instance of PrimitiveType. In the metamodel, Boolean defines an enumeration that denotes a logical condition. Its enumeration literals are: + - true: The Boolean condition is satisfied. + - false: The Boolean condition is not satisfied. + +It is used for Boolean attribute and Boolean expressions in the metamodel, such as OCL expression. + + + + + + + + An instance of String defines a piece of text. The semantics of the string itself depends on its purpose, it can be a comment, computational language expression, OCL expression, etc. It is used for String attributes and String expressions in the metamodel. + + + + + + + + An instance of UnlimitedNatural is an element in the (infinite) set of naturals (0, 1, 2...). The value of infinity is shown using an asterisk ('*'). + + + + + + + + A class is a type that has objects as its instances. + + + + + True when a class is abstract. + + + + + + + + + The attributes owned by a class. These do not include the inherited attributes. Attributes are represented by instances of Property. + + + + + + + + + + The operations owned by a class. These do not include the inherited operations. + + + + + + + The immediate superclasses of a class, from which the class inherits. + + + + + + + + An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element. + + + + + + The exceptions that are declared as possible during an invocation of the operation. + + + + + + + + + + The parameters to the operation. + + + + + + + + + + The class that owns the operation. + + + + + + + + A parameter is a typed element that represents a parameter of an operation. + + + + + + The operation that owns the parameter. + + + + + + + + A property is a typed element that represents an attribute of a class. + + + + + + If isReadOnly is true, the attribute may not be written to after initialization. + + + + + + A string that is evaluated to give a default value for the attribute when an object of the owning class is instantiated. + + + + + + + If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. + + + + + + If isDerived is true, the value of the attribute is derived from information elsewhere. + + + + + + + + + The class that owns the property, and of which the property is an attribute. + + + + + + + Two attributes attr1 and attr2 of two objects o1 and o2 (which may be the same object) may be paired with each other so that o1.attr1 refers to o2 if and only if o2.attr2 refers to o1. In such a case attr1 is the opposite of attr2 and attr2 is the opposite of attr1. + + + + + + + + A type is a named element that is used as the type for a typed element. A type can be contained in a package. + + + + + + + + Specifies the owning package of this classifier, if any. + + + + + + + + A named element represents elements with names. + + + + + + + + The name of the NamedElement. + + + + + + + + A typed element is a kind of named element that represents elements with types. + + + + + The type of the TypedElement. + + + + + + + + An enumeration defines a set of literals that can be used as its values. + + + + + + + + The ordered set of literals for this Enumeration. + + + + + + + + An enumeration literal is a value of an enumeration. + + + + + The Enumeration that this EnumerationLiteral is a member of. + + + + + + + + A primitive type is a data type implemented by the underlying infrastructure and made available for modeling. + + + + + + A package is a container for types and other packages. + + + + + + + + The set of contained packages. + + + + + + + + + + The containing package. + + + + + + + + + + The set of contained types. + + + + + + + + DataType is an abstract class that acts as a common superclass for different kinds of data types. + + + + + + A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered. + + + + A multiplicity must define at least one valid cardinality that is greater than zero. + + + upperBound()->notEmpty() implies upperBound() > 0 + + + + + The lower bound must be a non-negative integer literal. + + + lowerBound()->notEmpty() implies lowerBound() >= 0 + + + + + The upper bound must be greater than or equal to the lower bound. + + + (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + + + + + + For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.. + + + + + + For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. + + + + + + Specifies the lower bound of the multiplicity interval. + + + + + + + + Specifies the upper bound of the multiplicity interval. + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an integer. + + + + result = if lower->notEmpty() then lower else 1 endif + + + + + + + The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + + + + result = if upper->notEmpty() then upper else 1 endif + + + + + + + The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + + + + upperBound()->notEmpty() + + + + + result = upperBound() > 1 + + + + + + + The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + + + + upperBound()->notEmpty() and lowerBound()->notEmpty() + + + + + result = (lowerBound() <= C) and (upperBound() >= C) + + + + + + + + The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + + + + self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + + + + + result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + + + + + + + + + Element is an abstract metaclass with no superclass. It is used as the common superclass for all metaclasses in the infrastructure library. + + + + + + + The Comments owned by this element. + + + + + + + + A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment may be owned by any element. + + + + + + + + Specifies a string that is the comment. + + + + + References the Element(s) being commented. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A classifier is a type. It can specify a generalization hierarchy by referencing its general classifiers. A classifier is also a namespace whose members can include features. Classifier is an abstract metaclass. + + + + Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + + + not self.allParents()->includes(self) + + + + + A classifier may only specialize classifiers of a valid type. + + + self.parents()->forAll(c | self.maySpecializeType(c)) + + + + + + + + + + Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier. + + + + + + + + + + Redefines the corresponding association in Abstractions. Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features. + + + + + + + References the general classifier in the Generalization relationship. + + + + + + + Specifies all elements inherited by this classifier from the general classifiers. + + + + + + + The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. + + + + result = (self=other) or (self.allParents()->includes(other)) + + + + + + + + The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. + + + + result = member->select(oclIsKindOf(Feature)) + + + + + + + + + + + + + The general classifiers are the classifiers referenced by the generalization relationships. + + + + result = self.parents() + + + + + + + + + + The query parents() gives all of the immediate ancestors of a generalized Classifier. + + + + result = generalization.general + + + + + + + + + + + + + The inheritedMember association is derived by inheriting the inheritable members of the parents. + + + + result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self)) + + + + + + + + + + The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. + + + + result = self.parents()->union(self.parents()->collect(p | p.allParents()) + + + + + + + + + + The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. + + + + c.allParents()->includes(self) + + + + + result = member->select(m | c.hasVisibilityOf(m)) + + + + + + + + + + + The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. + + + + self.allParents()->collect(c | c.member)->includes(n) + + + + + result = if (self.inheritedMember->includes(n)) then (n.visibility <> #private) else true + + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + + result = inhs + + + + + + + + + + + + + + The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + + + + result = self.oclIsKindOf(c.oclType) + + + + + + + + + A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass. + + + + + + + + Specifies the sources of the DirectedRelationship. + + + + + + + + + + Specifies the targets of the DirectedRelationship. + + + + + + + + An element can own comments. + + + + An element may not directly or indirectly own itself. + + + not self.allOwnedElements()->includes(self) + + + + + Elements that must be owned must have an owner. + + + self.mustBeOwned() implies owner->notEmpty() + + + + + + + + The Elements owned by this element. + + + + + + + + + + The Element that owns this element. + + + + + + + + + + The Comments owned by this element. + + + + + + + The query allOwnedElements() gives all of the direct and indirect owned elements of an element. + + + + result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements())) + + + + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation. + + + + result = true + + + + + + + + A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass. + + + + + + + + Redefines the corresponding association in Abstractions. + + + + + + + + A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered. + + + + A multiplicity must define at least one valid cardinality that is greater than zero. + + + upperBound()->notEmpty() implies upperBound() > 0 + + + + + The upper bound must be greater than or equal to the lower bound. + + + (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + + + + + The lower bound must be a non-negative integer literal. + + + lowerBound()->notEmpty() implies lowerBound() >= 0 + + + + + + For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.. + + + + + + For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. + + + + + + Specifies the lower bound of the multiplicity interval. + + + + + + + + Specifies the upper bound of the multiplicity interval. + + + + + + + + The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + + + + upperBound()->notEmpty() + + + + + result = upperBound() > 1 + + + + + + + The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + + + + self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + + + + + result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + + + + + + + + The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + + + + upperBound()->notEmpty() and lowerBound()->notEmpty() + + + + + result = (lowerBound() <= C) and (upperBound() >= C) + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an integer. + + + + result = if lower->notEmpty() then lower else 1 endif + + + + + + + The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + + + + result = if upper->notEmpty() then upper else 1 endif + + + + + + + + A namespace has the ability to import either individial members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements. + + + + All the members of a Namespace are distinguishable within it. + + + membersAreDistinguishable() + + + + + + + + + References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + + + + + + + + + + References the ElementImports owned by the Namespace. + + + + + + + + + + References the PackageImports owned by the Namespace. + + + + + + + + + + Redefines the corresponding property of Abstractions::Namespaces::Namespace. + + + + + + + + + + Redefines the corresponding property of Abstractions::Namespaces::Namespace. + + + + + + + + + + + + + + + + + The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + + + + result = self.importMembers(self.elementImport.importedElement.asSet()->union(self.packageImport.importedPackage->collect(p | p.visibleMembers()))) + + + + + + + + + + The query getNamesOfMember() is overridden to take account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + + + + result = if self.ownedMember->includes(element) +then Set{}->include(element.name) +else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in + if elementImports->notEmpty() + then elementImports->collect(el | el.getName()) + else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))->collect(pi | pi.importedPackage.getNamesOfMember(element)) + endif +endif + + + + + + + + + + + The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported. + + + + result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem | mem.imp.isDistinguishableFrom(mem, self))) + + + + + + + + + + + + + + The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace. + + + + result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self))) + + + + + + + + + + + + + + The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it. + + + + result = self.member->forAll( memb | + self.member->excluding(memb)->forAll(other | + memb.isDistinguishableFrom(other, self))) + + + + + + + + A packageable element indicates a named element that may be owned directly by a package. + + + + + + A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier. + + + + At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. + + + self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e)) + + + + + A redefining element must be consistent with each redefined element. + + + self.redefinedElement->forAll(re | re.isConsistentWith(self)) + + + + + + + + + References the contexts that this element may be redefined from. + + + + + + + + + + The redefinable element that is being redefined by this element. + + + + + + + The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. + + + + result = false + + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + + + + result = self.redefinitionContext->exists(c | redefinable.redefinitionContext->exists(r | c.allParents()->includes(r))) + + + + + + + + + A relationship references one or more related elements. Relationship is an abstract metaclass. + + + + + + + + Specifies the elements related by the Relationship. + + + + + + + + A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. Structural feature is an abstract metaclass. + + + + + + + + A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. Typed element is an abstract metaclass. + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + + + + + + ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. It adds a specialization to Constructs::TypedElement. + + + + + + The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals. + + + + result = false + + + + + + + The query integerValue() gives a single Integer value when one can be computed. + + + + result = Set{} + + + + + + + The query booleanValue() gives a single Boolean value when one can be computed. + + + + result = Set{} + + + + + + + The query stringValue() gives a single String value when one can be computed. + + + + result = Set{} + + + + + + + The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed. + + + + result = Set{} + + + + + + + The query isNull() returns true when it can be computed that the value is null. + + + + result = false + + + + + + + + An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of an association may have the same type. + +An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends. + + + + Association ends of associations with more than two ends must be owned by the association. + + + if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd) + + + + + + + Specifies whether the association is derived from other model elements such as other associations or constraints. + + + + + + + + + The ends that are owned by the association itself. This is an ordered association. + + + + + + + + + + References the classifiers that are used as types of the ends of the association. + + + + + + + Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association. + + + + + + + The navigable ends that are owned by the association itself. + + + + + + + + Class is a kind of classifier whose features are attributes and operations. Attributes of a class are represented by instances of Property that are owned by the class. Some of these attributes may represent the navigable ends of binary associations. + + + + + True when a class is abstract. + + + + + + + + + The attributes (i.e. the properties) owned by the class. + + + + + + + + + + The operations owned by the class. + + + + + + + This gives the superclasses of a class. + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + + result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + + + + + + + + + + + + + + + Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. + +Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type. + + + + A multiplicity of a composite aggregation must not have an upper bound greater than 1. + + + isComposite implies (upperBound()->isEmpty() or upperBound() <= 1) + + + + + Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. + + + self.subsettedProperty->notEmpty() implies + (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc | + self.subsettedProperty->forAll(sp | + sp.subsettingContext()->exists(c | sc.conformsTo(c))))) + + + + + A navigable property can only be redefined or subsetted by a navigable property. + + + (self.subsettedProperty->exists(sp | sp.isNavigable()) implies self.isNavigable()) + and (self.redefinedProperty->exists(rp | rp.isNavigable()) implies self.isNavigable()) + + + + + A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less. + + + self.subsettedProperty->forAll(sp | + self.type.conformsTo(sp.type) and + ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies + self.upperBound()<=sp.upperBound() )) + + + + + Only a navigable property can be marked as readOnly. + + + isReadOnly implies isNavigable() + + + + + A derived union is derived. + + + isDerivedUnion implies isDerived + + + + + + This redefines the corresponding attribute in Basic::Property and Abstractions::StructuralFeature. + + + + + + Specifies a String that represents a value to be used when no argument is supplied for the Property. + + + + + + + If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. + + + + + + If isDerived is true, the value of the attribute is derived from information elsewhere. + + + + + + Specifies whether the property is derived as the union of all of the properties that are constrained to subset it. + + + + + + + + + + + + + References the owning association of this property, if any. + + + + + + + References the properties that are redefined by this property. + + + + + + + References the properties of which this property is constrained to be a subset. + + + + + + + + + + In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end. + + + + + + + The DataType that owns this Operation. + + + + + + + References the association of which this property is a member, if any. + + + + + + + + + + If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end. + + + + result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2 + then + let otherEnd = (association.memberEnd - self)->any() in + if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif + else Set {} + endif + + + + + + + The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined property is derived. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = redefinee.oclIsKindOf(Property) and + let prop : Property = redefinee.oclAsType(Property) in + (prop.type.conformsTo(self.type) and + ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and + ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() <= self.lowerBound()) and + (self.isDerived implies prop.isDerived) and + (self.isComposite implies prop.isComposite)) + + + + + + + + The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends. + + + + result = if association->notEmpty() +then association.endType-type +else if classifier->notEmpty then Set{classifier} else Set{} endif +endif + + + + + + + + + + The query isNavigable indicates whether it is possible to navigate across the property. + + + + result = not classifier->isEmpty() or +association.owningAssociation.navigableOwnedEnd->includes(self) + + + + + + + The query isAttribute() is true if the Property is defined as an attribute of some classifier. + + + + result = Classifier->allInstances->exists(c | c.attribute->includes(p)) + + + + + + + + + A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types. + +A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types. + + + + + + + + The Attributes owned by the DataType. + + + + + + + + + + The Operations owned by the DataType. + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + + result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + + + + + + + + + + + + + + + Enumeration is a kind of data type, whose instances may be any of a number of predefined enumeration literals. +It is possible to extend the set of applicable enumeration literals in other packages or profiles. + + + + + + + + + The ordered collection of literals for the enumeration. + + + + + + + + An enumeration literal is a value of an enumeration. + + + + + The enumeration that this literal belongs to. + + + + + + + + A primitive type defines a predefined data type, without any relevant substructure (i.e. it has no parts in the context of the UML). A primitive datatype may have an algebra and operations defined out of UML, for example, mathematically. + + + + + + Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. +Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to the element. Constraint contains an optional name, although they are commonly unnamed. + + + + A constraint cannot be applied to itself. + + + not constrainedElement->includes(self) + + + + + The value specification for a constraint must evaluate to a Boolean value. + + + self.specification().booleanValue().isOclKindOf(Boolean) + + + + + + The ordered set of Elements referenced by this Constraint. + + + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + + + + + + + An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + + + + If the language attribute is not empty, then the size of the body and language arrays must be the same. + + + language->notEmpty() implies (body->size() = language->size()) + + + + + If there is only one body then the size of the language is exactly 0 (corresponding to the default language). + + + language->isEmpty() implies (body->size() = 1) + + + + + + + + + + The text of the expression, possibly in multiple languages. + + + + + + + + + + Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order. + + + + + + + + An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element. + + + + A bodyCondition can only be specified for a query operation. + + + bodyCondition->notEmpty() implies isQuery + + + + + An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' + + + self.ownedParameter->select(par | par.direction = #return)->size() <= 1 + + + + + + Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false). + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + + + + + + + + + The class that owns the operation. + + + + + + + The DataType that owns this Operation. + + + + + + + References the Types representing exceptions that may be raised during an invocation of this operation. + + + + + + + References the Operations that are redefined by this Operation. + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + + + + + + + + Specifies the ordered set of formal parameters of this BehavioralFeature. + + + + + + + + + + + + + + + + + + + + + + + + + + + + If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false. + + + + result = if returnResult->size() = 1 then returnResult->any().isOrdered else false endif + + + + + + + If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true. + + + + result = if returnResult->size() = 1 then returnResult->any().isUnique else true endif + + + + + + + + + + If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + + + + result = if returnResult->size() = 1 then returnResult->any().lower else Set{} endif + + + + + + + + + + If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + + + + result = if returnResult->size() = 1 then returnResult->any().upper else Set{} endif + + + + + + + + + + If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined. + + + + result = if returnResult->size() = 1 then returnResult->any().type else Set{} endif + + + + + + + The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = (redefinee.oclIsKindOf(Operation) and + let op: Operation = redefinee.oclAsType(Operation) in + self.formalParameter.size() = op.formalParameter.size() and + self.returnResult.size() = op.returnResult.size() and + forAll(i | op.formalParameter[i].type.conformsTo(self.formalParameter[i].type)) and + forAll(i | op.returnResult[i].type.conformsTo(self.returnResult[i].type)) +) + + + + + + + + + result = ownedParameter->select (par | par.direction = #return) + + + + + + + + + + + A parameter is a kind of typed element in order to allow the specification of an optional multiplicity on parameters. In addition, it supports the specification of an optional default value. + + + + + + Specifies a String that represents a value to be used when no argument is supplied for the Parameter. + + + + + + + Indicates whether a parameter is being sent into or out of a behavioral element. + + + in + + + + + References the Operation for which this is a formal parameter. + + + + + + + + A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances. BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + + + + + + + + + Specifies the ordered set of formal parameters of this BehavioralFeature. + + + + + + + References the Types representing exceptions that may be raised during an invocation of this feature. + + + + + + + The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures. + + + + result = if n.oclIsKindOf(BehavioralFeature) +then + if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty() + then Set{}->include(self)->include(n)->isUnique( bf | bf.parameter->collect(type)) + else true + endif +else true +endif + + + + + + + + + + An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It is also possible to control whether the imported element can be further imported. + + + + The visibility of an ElementImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + An importedElement has either public visibility or no visibility at all. + + + self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public + + + + + + Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import. + + + + + Specifies the name that should be added to the namespace of the importing Package in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used. + + + + + + + Specifies the PackageableElement whose name is to be added to a Namespace. + + + + + + + Specifies the Namespace that imports a PackageableElement from another Package. + + + + + + + The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace. + + + + result = if self.alias->notEmpty() then + self.alias +else + self.importedElement.name +endif + + + + + + + + A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. In addition a package can be merged with other packages. + + + + If an element that is owned by a package has visibility, it is public or private. + + + self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private) + + + + + + + + + + Specifies the packageable elements that are owned by this Package. + + + + + + + + + + References the packaged elements that are Types. + + + + + + + + + + References the packaged elements that are Packages. + + + + + + + + + + References the owning package of a package. + + + + + + + + + + References the PackageMerges that are owned by this Package. + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. + + + + result = false + + + + + + + The query visibleMembers() defines which members of a Package can be accessed outside it. + + + + result = member->select( m | self.makesVisible(m)) + + + + + + + + + + The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. + + + + self.member->includes(el) + + + + + result = (ownedMember->includes(el)) or + (elementImport-> + select(ei|ei.visibility = #public)-> + collect(ei|ei.importedElement)->includes(el)) or + (packageImport-> + select(pi|pi.visibility = #public)-> + collect(pi| + pi.importedPackage.member->includes(el))->notEmpty()) + + + + + + + + + A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace. + + + + The visibility of a PackageImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + + Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not. + + + + + Specifies the Package whose members are imported into a Namespace. + + + + + + + Specifies the Namespace that imports the members from a Package. + + + + + + + + A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. + +This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel. + +Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed. + + + + + References the Package that is being extended with the contents of the merged package of the PackageMerge. + + + + + + + References the Package that is to be merged with the receiving package of the PackageMerge. + + + + + + + + A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass. + + + + + + + + + References the owning package of a package. + + + + + + + The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations. + + + + result = false + + + + + + + + + NamedElement has a visibility attribute. + + + + If there is no name, or one of the containing namespaces has no name, there is no qualified name. + + + (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) + implies self.qualifiedName->isEmpty() + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies + self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + + + + + If a NamedElement is not owned by a Namespace, it does not have a visibility. + + + namespace->isEmpty() implies visibility->isEmpty() + + + + + + + + + The name of the NamedElement. + + + + + + + Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility. + + + + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. + + + + result = if self.namespace->isEmpty() +then Sequence{} +else self.namespace.allNamespaces()->prepend(self.namespace) +endif + + + + + + + + + + The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. + + + + result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) +then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty() +else true +endif + + + + + + + + + The query separator() gives the string that is used to separate names when constructing a qualified name. + + + + result = '::' + + + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + + result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() +then + self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) +else + Set{} +endif + + + + + + + + An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context. + + + + + + + + Specifies a sequence of operands. + + + + + + + + ParameterDirectionKind is an enumeration of the following literal values: + - in Indicates that parameter values are passed into the behavioral element by the caller. + - inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + - out Indicates that parameter values are passed from a behavioral element out to the caller. + - return Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + Indicates that parameter values are passed into the behavioral element by the caller. + + + + + Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + + + + + Indicates that parameter values are passed from a behavioral element out to the caller. + + + + + Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + + A comment is a textual annotation that can be attached to a set of elements. + + + + + + + + Specifies a string that is the comment. + + + + + References the Element(s) being commented. + + + + + + + + VisibilityKind is an enumeration of the following literal values: + - public + - private + - protected + - package + + + + The query bestVisibility() examines a set of VisibilityKinds, and returns public as the preferred visibility. + + + + result = if vis->includes(#public) then #public else #private endif + + + + + + + + + + + A public element is visible to all elements that can access the contents of the namespace that owns it. + + + + + A private element is only visible inside the namespace that owns it. + + + + + A protected element is visible to elements that have a generalization relationship to the namespace that owns it. + + + + + A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stereotype is a kind of Class that extends Classes through Extensions. Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. Also, stereotype names should not clash with keyword names for the extended model element. + + + + Stereotype names should not clash with keyword names for the extended model element. + + + true + + + + + A Stereotype may only generalize or specialize another Stereotype. + + + generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) + + + + + + Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements. + + + + + + + + A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which are defined as part of Profiles. + +A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in this package. + +A profile is a restricted form of a metamodel that must always be related to a reference metamodel, such as UML, as described below. A profile cannot be used without its reference metamodel, and defines a limited capability to extendmetaclasses of the reference metamodel. The extensions are defined as stereotypes that apply to existing metaclasses. + + + + An element imported as a metaclassReference is not specialized or generalized in a Profile. + + + self.metaclassReference.importedElement-> + select(c | c.oclIsKindOf(Classifier) and + (c.generalization.namespace = self or + (c.specialization.namespace = self) )->isEmpty() + + + + + All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel. + + + self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())-> + union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty() + + + + + + + + + References the Stereotypes that are owned by the Profile. + + + + + + + + + + References a metaclass that may be extended. + + + + + + + + + + References a package containing (directly or indirectly) metaclasses that may be extended. + + + + + + + The query allOwningPackages() returns all the directly or indirectly owning packages. + + + + result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages()) + + + + + + + + + + + A Package can have one or more ProfileApplications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles. + + + + + + + + References the ProfileApplications that indicate which profiles have been applied to the Package. + + + + + + + + Class has derived association that indicates how it may be extended through one or more stereotypes. + + + + + + + References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class. + + + + + + + + ProfileApplication is a kind of PackageImport that adds the capability to state that a Profile is applied to a Package. + + + + + References the Profiles that are applied to a Package through this ProfileApplication. + + + + + + + Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied. + + + + + + Extension is a kind of Association. One end of the Extension is an ordinary Property and the other end is an ExtensionEnd. The former ties the Extension to a Class, while the latter ties the Extension to a Stereotype that extends the Class. + + + + The non-owned end of an Extension is typed by a Class. + + + metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class) + + + + + An Extension is binary, i.e., it has only two memberEnds. + + + memberEnd->size() = 2 + + + + + + + + + Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the multiplicity of the Property referenced by Extension::ownedEnd; a multiplicity of 1 means that isRequired is true, but otherwise it is false. Since the default multiplicity of an ExtensionEnd is 0..1, the default value of isRequired is false. + + + + + + + + References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd. + + + + + + + + + + References the end of the extension that is typed by a Stereotype. + + + + + + + The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype). + + + + result = memberEnd->reject(ownedEnd) + + + + + + + The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype). + + + + result = metaclassEnd().type + + + + + + + The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1. + + + + result = (ownedEnd->lowerBound() = 1) + + + + + + + + ExtensionEnd is a kind of Property that is always typed by a Stereotype. An ExtensionEnd is never navigable. If it was navigable, it would be a property of the extended classifier. Since a profile is not allowed to change the referenced metamodel, it is not possible to add properties to the extended classifier. As a consequence, an ExtensionEnd can only be owned by an Extension. The aggregation of an ExtensionEnd is always composite. The default multiplicity of an ExtensionEnd is 0..1. + + + + The multiplicity of ExtensionEnd is 0..1 or 1. + + + (self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1 + + + + + The aggregation of an ExtensionEnd is composite. + + + self.aggregation = #composite + + + + + + References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes. + + + + + + + This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype. + + + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default +lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty. + + + + result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif + + + + + + + + The Image class provides the necessary information to display an Image in a diagram. Icons are typically handled through the Image class. + + + + + An element is a constituent of a model. An element can own comments. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L0.emx b/plugins/org.eclipse.uml2.uml/model/L0.emx new file mode 100644 index 00000000..12e4a357 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L0.emx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L0.uml2 b/plugins/org.eclipse.uml2.uml/model/L0.uml2 new file mode 100644 index 00000000..7bd44b7d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L0.uml2 @@ -0,0 +1,16 @@ + + + + + + + +
+ + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L1.emx b/plugins/org.eclipse.uml2.uml/model/L1.emx new file mode 100644 index 00000000..f0849ff1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L1.emx @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L1.uml2 b/plugins/org.eclipse.uml2.uml/model/L1.uml2 new file mode 100644 index 00000000..fa15f56c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L1.uml2 @@ -0,0 +1,28 @@ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L2.emx b/plugins/org.eclipse.uml2.uml/model/L2.emx new file mode 100644 index 00000000..faba4bab --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L2.emx @@ -0,0 +1,1394 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L2.uml2 b/plugins/org.eclipse.uml2.uml/model/L2.uml2 new file mode 100644 index 00000000..92c1182d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L2.uml2 @@ -0,0 +1,82 @@ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L3.emx b/plugins/org.eclipse.uml2.uml/model/L3.emx new file mode 100644 index 00000000..72de5e08 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L3.emx @@ -0,0 +1,1876 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L3.merged.uml2 b/plugins/org.eclipse.uml2.uml/model/L3.merged.uml2 new file mode 100644 index 00000000..42a1c1ea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L3.merged.uml2 @@ -0,0 +1,15344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + A comment is a textual annotation that can be attached to a set of elements. + + + A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment can be owned by any element. + + + + + + + + Specifies a string that is the comment. + + + + + + References the Element(s) being commented. + + + + + + + + A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass. + + + + + + + + Specifies the sources of the DirectedRelationship. + + + + + + + + + + Specifies the targets of the DirectedRelationship. + + + + + + + + VisibilityKind is an enumeration of the following literal values: + + - public + + - private + + - protected + + - package + + + + The query bestVisibility() examines a set of VisibilityKinds, and returns public as the preferred visibility. + + + The query bestVisibility() examines a set of VisibilityKinds that includes only public and private, and returns public as the preferred visibility. + + + + pre: not vis->includes(#protected) and not vis->includes(#package) + + + + + result = if vis->includes(#public) then #public else #private endif + + + + + + + + + + + + + + A public element is visible to all elements that can access the contents of the namespace that owns it. + + + + + A private element is only visible inside the namespace that owns it. + + + + + A protected element is visible to elements that have a generalization relationship to the namespace that owns it. + + + + + A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible. + + + + + + A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled. + + + + + + A literal integer contains an Integer-valued attribute. + + + + + The specified Integer value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query integerValue() gives the value. + + + + result = value + + + + + + + + + + + A literal string contains a String-valued attribute. + + + + + The specified String value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query stringValue() gives the value. + + + + result = value + + + + + + + + + + + A literal boolean contains a Boolean-valued attribute. + + + + + The specified Boolean value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query booleanValue() gives the value. + + + + result = value + + + + + + + + + + + A literal null is used to represent null, i.e., the absence of a value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query isNull() returns true. + + + + result = true + + + + + + + + + + + Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. + +Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to the element. Constraint contains an optional name, although they are commonly unnamed. + + + Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. + +Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to that element. Constraint contains an optional name, although they are commonly unnamed. + + + + A constraint cannot be applied to itself. + + + not constrainedElement->includes(self) + + + + + The value specification for a constraint must evaluate to a Boolean value. + + + self.specification().booleanValue().isOclKindOf(Boolean) + + + + + The value specification for a constraint must evaluate to a Boolean value. + + + true + + + + + Evaluating the value specification for a constraint must not have side effects. + + + true + + + + + A constraint cannot be applied to itself. + + + not constrainedElement->includes(self) + + + + + + The ordered set of Elements referenced by this Constraint. + + + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + + An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It is also possible to control whether the imported element can be further imported. + + + + The visibility of an ElementImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + The visibility of an ElementImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + An importedElement has either public visibility or no visibility at all. + + + self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public + + + + + + Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import. + + + + + Specifies the name that should be added to the namespace of the importing Package in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used. + + + Specifies the name that should be added to the namespace of the importing Pack-age in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used. + + + + + + + + Specifies the PackageableElement whose name is to be added to a Namespace. + + + + + + + Specifies the Namespace that imports a PackageableElement from another Package. + + + + + + + The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace. + + + + result = if self.alias->notEmpty() then + self.alias +else + self.importedElement.name +endif + + + + + + + + + + + A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered. + + + + A multiplicity must define at least one valid cardinality that is greater than zero. + + + upperBound()->notEmpty() implies upperBound() > 0 + + + + + The lower bound must be a non-negative integer literal. + + + lowerBound()->notEmpty() implies lowerBound() >= 0 + + + + + The upper bound must be greater than or equal to the lower bound. + + + (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + + + + + If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects. + + + true + + + + + If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression. + + + true + + + + + + For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.. + + + For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered. + + + + + + + For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. + + + + + + + + + + Specifies the upper bound of the multiplicity interval. + + + Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural. + + + + + + + + + + + + Specifies the lower bound of the multiplicity interval. + + + Specifies the lower bound of the multiplicity interval, if it is expressed as an integer. + + + + + + + + + + + + The specification of the upper bound for this multiplicity. + + + + + + + + + + The specification of the lower bound for this multiplicity. + + + + + + + + + + The derived lower attribute must equal the lowerBound. + + + + result = lowerBound() + + + + + + + + + + + + + The derived upper attribute must equal the upperBound. + + + + result = upperBound() + + + + + + + + + + The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + + + + upperBound()->notEmpty() + + + + + result = upperBound() > 1 + + + + + + + + + + The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + + + + upperBound()->notEmpty() and lowerBound()->notEmpty() + + + + + result = (lowerBound() <= C) and (upperBound() >= C) + + + + + + + + + + + + + The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + + + + self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() +and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + + + + + + result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + + + + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an integer. + + + + result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif + + + + + + + + + + The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + + + + result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif + + + + + + + + + + + A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. Typed element is an abstract metaclass. + + + A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. + +Typed element is an abstract metaclass. + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + The type of the TypedElement. + + + + + + + + A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass. + + + + + Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true). + + + + + + + + + + Redefines the corresponding association in Abstractions. + + + The Classifiers that have this Feature as a feature. + + + + + + + + A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier. + + + A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass. + + + + At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. + + + self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e)) + + + + + A redefining element must be consistent with each redefined element. + + + self.redefinedElement->forAll(re | re.isConsistentWith(self)) + + + + + + Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement. + + + + + + + + + + The redefinable element that is being redefined by this element. + + + + + + + + + + References the contexts that this element may be redefined from. + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + + + + result = self.redefinitionContext->exists(c | redefinable.redefinitionContext->exists(r | c.allParents()->includes(r))) + + + + + + + + + + + The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. + + + + redefinee.isRedefinitionContextValid(self) + + + + + + + result = false + + + + + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + + + + result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)) + + + + + + + + + + + A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. Structural feature is an abstract metaclass. + + + A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier. Structural feature is an abstract metaclass. +By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature. + + + + + + + + States whether the feature's value may be modified by a client. + + + + + + + + A slot is owned by an instance specification. It specifies the value or values for its defining feature, which must be a structural feature of a classifier of the instance specification owning the slot. + + + + + The instance specification that owns this slot. + + + + + + + The structural feature that specifies the values that may be held by the slot. + + + + + + + + + + The value or values corresponding to the defining feature for the owning instance specification. + + + + + + + + A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace. + + + + The visibility of a PackageImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + + Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not. + + + + + Specifies the Namespace that imports the members from a Package. + + + + + + + Specifies the Package whose members are imported into a Namespace. + + + + + + + + A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types. + + + +A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types. + + + A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types. + +A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types. + + + + + + + + + + The Attributes owned by the DataType. + + + + + + + + + + The Operations owned by the DataType. + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + + result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + + + + + + + + + + + + + + + Enumeration is a kind of data type, whose instances may be any of a number of predefined enumeration literals. + +It is possible to extend the set of applicable enumeration literals in other packages or profiles. + + + + + Enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals. + +It is possible to extend the set of applicable enumeration literals in other packages or profiles. + + + + + + + + + + The ordered collection of literals for the enumeration. + + + The ordered set of literals for this Enumeration. + + + + + + + + An enumeration literal is a value of an enumeration. + + + An enumeration literal is a user-defined data value for an enumeration. + + + + + The enumeration that this literal belongs to. + + + The Enumeration that this EnumerationLiteral is a member of. + + + + + + + + A primitive type defines a predefined data type, without any relevant substructure (i.e. it has no parts in the context of the UML). A primitive datatype may have an algebra and operations defined out of UML, for example, mathematically. + + + + + + An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of an association may have the same type. + + + +An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends. + + + + An association specializing another association has the same number of ends as the other association. + + + self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size()) + + + + + When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end. + + + true + + + + + Only binary associations can be aggregations. + + + self.memberEnd->exists(aggregation <> Aggregation::none) implies self.memberEnd->size() = 2 + + + + + Association ends of associations with more than two ends must be owned by the association. + + + if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd) + + + + + + + Specifies whether the association is derived from other model elements such as other associations or constraints. + + + + + + + + + + The ends that are owned by the association itself. This is an ordered association. + + + The ends that are owned by the association itself. + + + + + + + + + + References the classifiers that are used as types of the ends of the association. + + + + + + + Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association. + + + Each end represents participation of instances of the classifier connected to the end in links of the association. + + + + + + + The navigable ends that are owned by the association itself. + + + + + + + endType is derived from the types of the member ends. + + + + result = self.memberEnd->collect(e | e.type) + + + + + + + + + + + ParameterDirectionKind is an enumeration of the following literal values: + + - in Indicates that parameter values are passed into the behavioral element by the caller. + + - inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + + - out Indicates that parameter values are passed from a behavioral element out to the caller. + + - return Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + ParameterDirectionKind is an enumeration of the following literal values: +• in Indicates that parameter values are passed into the behavioral element by the caller. +• inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. +• out Indicates that parameter values are passed from a behavioral element out to the caller. +• return Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + Indicates that parameter values are passed into the behavioral element by the caller. + + + + + Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + + + + + Indicates that parameter values are passed from a behavioral element out to the caller. + + + + + Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + + A relationship references one or more related elements. Relationship is an abstract metaclass. + + + + + + + + Specifies the elements related by the Relationship. + + + + + + + + A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. + + + +This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel. + + + +Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed. + + + A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel. + + + +Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed. + + + + + + + References the Package that is being extended with the contents of the merged package of the PackageMerge. + + + + + + + References the Package that is to be merged with the receiving package of the PackageMerge. + + + + + + + + An instance value specifies the value modeled by an instance specification. + + + + + The instance that is the specified value. + + + + + + + + AggregationKind is an enumeration of the following literal values: +• none Indicates that the property has no aggregation. +• shared Indicates that the property has a shared aggregation. +• composite Indicates that the property is aggregated compositely, i.e., the composite object has +responsibility for the existence and storage of the composed objects (parts). + + + + + Indicates that the property has no aggregation. + + + + + Indicates that the property has a shared aggregation. + + + + + Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts). + + + + + + A literal unlimited natural contains a UnlimitedNatural-valued attribute. + + + + + The specified UnlimitedNatural value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query unlimitedValue() gives the value. + + + + result = value + + + + + + + + + + + A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass. + + + + + + + + References the owning package of a package. + + + Specifies the owning package of this classifier, if any. + + + + + + + The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations. + + + + result = false + + + + + + + + + + + + An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context. + + + An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications. + + + + + The symbol associated with the node in the expression tree. + + + + + + + + + Specifies a sequence of operands. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + + + An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + +One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. + + + + + Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result. + + + + If the language attribute is not empty, then the size of the body and language arrays must be the same. + + + language->notEmpty() implies (body->size() = language->size()) + + + + + If there is only one body then the size of the language is exactly 0 (corresponding to the default language). + + + The there is only one body then the size of the language is exactly 0 (corresponding to the default language). + + + language->isEmpty() implies (body->size() = 1) + + + + + The behavior may only have return result parameters. + + + self.behavior.notEmpty() implies + + self.behavior.ownedParameters->select(p | p.direction<>#return)->isEmpty() + + + + + The behavior must have exactly one return result parameter. + + + self.behavior.notEmpty() implies + + self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1 + + + + + + + + + + The text of the expression, possibly in multiple languages. + + + + + + + + + + + Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order. + + + Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order. + + + + + + + + + + + + + Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior. + + + + + + + Specifies the behavior of the opaque expression. + + + + + + + + The query value() gives an integer value for an expression intended to produce one. + + + + self.isIntegral() + + + + + true + + + + + + + + + + The query isIntegral() tells whether an expression is intended to produce an integer. + + + + result = false + + + + + + + + + + + The query isPositive() tells whether an integer expression has a positive value. + + + + self.isIntegral() + + + + + result = false + + + + + + + + + + The query isNonNegative() tells whether an integer expression has a non-negative value. + + + + self.isIntegral() + + + + + result = false + + + + + + + + + + + An behavior with implementation-specific semantics. + + + + + + + + Specifies the behavior in one or more languages. + + + + + + + + + + + Languages the body strings use in the same order as the body strings. + + + + + + + + + A function behavior is an opaque behavior that does not access or modify any objects or other external data. + + + + A function behavior has at least one output parameter. + + + self.ownedParameters-> + + select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1 + + + + + The types of parameters are all data types, which may not nest anything but other datatypes. + + + def: hasAllDataTypeAttributes(d : DataType) : Boolean = + + d.ownedAttribute->forAll(a | + + a.type.oclIsTypeOf(DataType) and + + hasAllDataTypeAttributes(a.type)) + +self.ownedParameters->forAll(p | p.type.notEmpty() and + + p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p)) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An Actor models a type of role played by an entity that interacts with the subject (e.g., by exchanging signals and data), but which is external to the subject (i.e., in the sense that an instance of an actor is not a part of the instance of its corresponding subject). Actors may represent roles played by human users, external hardware, or other subjects. Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., “role”) of some entity that is relevant to the specification of its associated use cases. Thus, a single physical instance may play the role of several different actors and, conversely, a given actor may be played by multiple different instances. + + + +Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier. + + + + + + An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary. + + + self.ownedAttribute->forAll ( a | +(a.association->notEmpty()) implies +((a.association.memberEnd.size() = 2) and +(a.opposite.class.oclIsKindOf(UseCase) or +(a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior)))) + + + + + + An actor must have a name. + + + name->notEmpty() + + + + + + + This relationship specifies that the behavior of a use case may be extended by the behavior of another (usually supplementary) use case. The extension takes place at one or more specific extension points defined in the extended use case. Note, however, that the extended use case is defined independently of the extending use case and is meaningful independently of the extending use case. On the other hand, the extending use case typically defines behavior that may not necessarily be meaningful by itself. Instead, the extending use case defines a set of modular behavior increments that augment an execution of the extended use case under specific conditions. + + + +Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended. + + + +It is a kind of DirectedRelationship, such that the source is the extending use case and the destination is the extended use case. It is also a kind of NamedElement so that it can have a name in the context of its owning use case. The extend relationship itself is owned by the extending use case. + + + + + + The extension points referenced by the extend relationship must belong to the use case that is being extended. + + + + + + + extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp)) + + + + + + + References the use case that is being extended. + + + + + + + References the use case that represents the extension and owns the extend relationship. + + + + + + + + + + References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional. + + + + + + + + + An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.) + + + + + + + + + + Note that the included use case is not optional, and is always required for the including use case to execute correctly. + + + + + + + + + + References the use case which will include the addition and owns the include relationship. + + + + + + + References the use case that is to be included. + + + + + + + + + + A UseCase is a kind of behaviored classifier that represents a declaration of an offered behavior. Each use case specifies some behavior, possibly including variants, that the subject can perform in collaboration with one or more actors. Use cases define the offered behavior of the subject without reference to its internal structure. These behaviors, involving + +interactions between the actor and the subject, may result in changes to the state of the subject and communications with its environment. A use case can include possible variations of its basic behavior, including exceptional behavior and error handling. + + + +The subject of a use case could be a physical system or any other element that may have behavior, such as a component, subsystem or class. Each use case specifies a unit of useful functionality that the subject provides to its users, i.e., a specific way of interacting with the subject. This functionality, which is initiated by an actor, must always be completed for the use case to complete. It is deemed complete if, after its execution, the subject will be in a state in which no further inputs or actions are expected and the use case can be initiated again or in an error state. + + + +Use cases can be used both for specification of the (external) requirements on a subject and for the specification of the functionality offered by a subject. Moreover, the use cases also state the requirements the specified subject poses on its environment by defining how they should interact with the subject so that it will be able to perform its services. + + + +The behavior of a use case can be described by a specification that is some kind of Behavior (through its ownedBehavior relationship), such as interactions, activities, and state machines, or by pre-conditions and post-conditions as well as by natural language text where appropriate. It may also be described indirectly through a Collaboration that uses the use case and its actors as the classifiers that type its parts. Which of these techniques to use depends on the nature of the use case behavior as well as on the intended reader. These descriptions can be combined. + + + + + + A UseCase must have a name. + + + self.name -> notEmpty () + + + + + UseCases can only be involved in binary Associations. + + + true + + + + + UseCases can not have Associations to UseCases specifying the same subject. + + + true + + + + + A use case cannot include use cases that directly or indirectly include it. + + + not self.allIncludedUseCases()->includes(self) + + + + + + + + + References the Include relationships owned by this use case. + + + + + + + + + + References the Extend relationships owned by this use case. + + + + + + + + + + References the ExtensionPoints owned by the use case. + + + + + + + References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it. + + + + + + + The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case. + + + + result = self.include->union(self.include->collect(in | in.allIncludedUseCases())) + + + + + + + + + + + An ExtensionPoint is a feature of a use case that identifies a point where the behavior of a use case can be augmented with elements of another (extending) use case. + + + + An ExtensionPoint must have a name. + + + self.name->notEmpty () + + + + + + References the use case that owns this extension point. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a Usage is a Dependency in which the client requires the presence of the supplier. + + + + + + + + An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. In the metamodel, an Abstraction is a Dependency in which there is a mapping between the supplier and the client. + + + + + + + + An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified. + + + + + + + + A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s). + + + + + + The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific. + + + + + + + The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation. + + + + + + + + Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc. + + + + + + A substitution is a relationship between two classifiers signifies that the substitutingClassifier complies with the contract specified by the contract classifier. This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract classifier are expected. + + + + + + + + + + + + + + + + A namespace has the ability to import either individial members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements. + + + A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + + + +A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace. + + + +A namespace has the ability to import either individual members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements. + + + + + + + A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + + + + All the members of a Namespace are distinguishable within it. + + + membersAreDistinguishable() + + + + + + + + + References the ElementImports owned by the Namespace. + + + + + + + + + + References the PackageImports owned by the Namespace. + + + + + + + + + + Specifies a set of Constraints owned by this Namespace. + + + + + + + + + + Redefines the corresponding property of Abstractions::Namespaces::Namespace. + + + A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance. + + + + + + + + + + References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + + + + + + + + + + Redefines the corresponding property of Abstractions::Namespaces::Namespace. + + + A collection of NamedElements owned by the Namespace. + + + + + + + + + + The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + + + The importedMember property is derived from the ElementImports and the PackageImports. + + + + result = self.importMembers(self.elementImport.importedElement.asSet()- +>union(self.packageImport.importedPackage->collect(p | p.visibleMembers()))) + + + + + + + + + + The query getNamesOfMember() is overridden to take account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + + + The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + + + + result = if self.ownedMember ->includes(element) +then Set{}->include(element.name) +else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in + if elementImports->notEmpty() + then elementImports->collect(el | el.getName()) + else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element)) + endif +endif + + + + + + + + + + + + + The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it. + + + + result = self.member->forAll( memb | +self.member->excluding(memb)->forAll(other | +memb.isDistinguishableFrom(other, self))) + + + + + + + + + + The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported. + + + + result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem | +mem.imp.isDistinguishableFrom(mem, self))) + + + + + + + + + + + + + + The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace. + + + + result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates the dependencies that reference the supplier. + + + + + + + + + + + + + + + An InterfaceRealization is a specialized Realization relationship between a Classifier and an Interface. This relationship signifies that the realizing classifier conforms to the contract specified by the Interface. + + + + + References the Interface specifying the conformance contract. + + + + + + + References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances. + + + + The multiplicities on connected elements must be consistent. + + + true + + + + + + + + + References the properties owned by the classifier. + + + + + + + + + + References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true. + + + + + + + + + + References the roles that instances may play in this classifier. + + + + + + + + + + References the connectors owned by the classifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Message is a NamedElement that defines a particular communication between Lifelines of an Interaction. A communication can be e.g. raising a signal, invoking an Operation, creating or destroying an Instance. The Message specifies not only the kind of communication given by the dispatching ExecutionSpecification, but also the sender and the receiver. A Message associates normally two OccurrenceSpecifications - one sending OccurrenceSpecification and one receiving OccurrenceSpecification. + + + + + + If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent. + + + true + + + + + The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message. + + + true + + + + + In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter. + + + true + + + + + In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute. + + + true + + + + + Arguments of a Message must only be: +i) attributes of the sending lifeline +ii) constants +iii) symbolic values (which are wildcard values representing any legal value) +iv) explicit parameters of the enclosing Interaction +v) attributes of the class owning the Interaction + + + + true + + + + + Messages cannot cross bounderies of CombinedFragments or their operands. + + + true + + + + + If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds. + + + true + + + + + + + + + The derived kind of the Message (complete, lost, found or unknown) + + + + + The sort of communication reflected by the Message + + + + + References the Receiving of the Message + + + + + + + References the Sending of the Message. + + + + + + + The Connector on which this Message is sent. + + + + + + + The enclosing Interaction owning the Message + + + + + + + + + + The arguments of the Message + + + + + + + + + + The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event. + + + + + + + + A GeneralOrdering represents a binary relation between two OccurrenceSpecifications, to describe that one OccurrenceSpecification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of OccurrenceSpecifications that may otherwise not have a specified order. A GeneralOrdering is a specialization of NamedElement. + + + + + The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after. + + + + + + + The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before. + + + + + + + + An ExecutionSpecification is a specification of the execution of a unit of behavior or action within the Lifeline. The duration of an ExecutionSpecification is represented by two ExecutionOccurrenceSpecifications, the start ExecutionOccurrenceSpecification and the finish ExecutionOccurrenceSpecification. + + + + The startEvent and the finishEvent must be on the same Lifeline + + + start.lifeline = finish.lifeline + + + + + + References the OccurrenceSpecification that designates the start of the Action or Behavior + + + + + + + References the OccurrenceSpecification that designates the finish of the Action or Behavior. + + + + + + + + An OccurrenceSpecification is the basic semantic unit of Interactions. The sequences of occurrences specified by them are the meanings of Interactions. + +OccurrenceSpecifications are ordered along a Lifeline. + +The namespace of an OccurrenceSpecification is the Interaction in which it is contained. + + + + + + + References the Lifeline on which the OccurrenceSpecification appears. + + + + + + + References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification + + + + + + + + + References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification + + + + + + + + + References a specification of the occurring event. + + + + + + + + A MessageEnd is an abstract NamedElement that represents what can occur at the end of a Message. + + + + + References a Message. + + + + + + + + MessageKind is an enumeration of the following values: + +- complete = sendEvent and receiveEvent are present + +- lost = sendEvent present and receiveEvent absent + +- found = sendEvent absent and receiveEvent present + +- unknown = sendEvent and receiveEvent absent (should not appear) + + + + sendEvent and receiveEvent are present + + + + + sendEvent present and receiveEvent absent + + + + + sendEvent absent and receiveEvent present + + + + + sendEvent and receiveEvent absent (should not appear) + + + + + + A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on. A StateInvariant is an InteractionFragment and it is placed on a Lifeline. + + + + + + + + A Constraint that should hold at runtime for this StateInvariant + + + + + + + References the Lifeline on which the StateInvariant appears. + + + + + + + + MessageSort is an enumeration of the following values: +• synchCall - the message was generated by a synchronous call to an operation +• asynchCall - the message was generated by an asynchronous call to an operation; i.e., a CallAction with “isSynchronous= false” +• asynchSignal -the message was generated by an asynchronous send action + + + + + The message was generated by a synchronous call to an operation + + + + + The message was generated by an asynchronous call to an operation; i.e., a CallAction with “isSynchronous += false” + + + + + + The message was generated by an asynchronous send action + + + + + + ActionExecutionSpecification is a kind of ExecutionSpecification representing the execution of an action. + + + + The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence. + + + true + + + + + + Action whose execution is occurring. + + + + + + + + BehaviorExecutionSpecification is a kind of ExecutionSpecification representing the execution of a behavior. + + + + + Behavior whose execution is occurring. + + + + + + + + An ExecutionEvent models the start or finish of an execution occurrence. + + + + + + A CreationEvent models the creation of an object. + + + + No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand. + + + true + + + + + + + A DestructionEvent models the destruction of an object. + + + + No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand. + + + true + + + + + + + A SendOperationEvent models the invocation of an operation call. + + + + + The operation associated with this event. + + + + + + + + A SendSignalEvent models the sending of a signal. + + + + + The signal associated with this event. + + + + + + + + Specifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions. + + + + + + Redefines the event referenced to be restricted to a message event. + + + + + + + + An ExecutionOccurrenceSpecification represents moments in time at which actions or behaviors start or finish. + + + + + References the execution specification describing the execution that is started or finished at this execution event. + + + + + + + Redefines the event referenced to be restricted to an execution event. + + + + + + + + This association shows the lifelines that make up an interaction. A lifeline may be part of more than one interaction use. + + + + + The event shows the time point at which the action begins execution. + + + + + + + + + The event shows the time point at which the action completes execution. + + + + + + + + + If a Part has multiplicity, multiple lifelines might be used to show it. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ordered + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An InteractionUse refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referred Interaction where the InteractionUse is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones. + + + +It is common to want to share portions of an interaction between several other interactions. An InteractionUse allows multiple interactions to reference an interaction that represents a common portion of their specification. + + + + + + Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal. + + + true + + + + + The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction. + + + true + + + + + The arguments of the InteractionUse must correspond to parameters of the referred Interaction + + + true + + + + + The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction. + + + true + + + + + + Refers to the Interaction that defines its meaning + + + + + + + + + + The actual gates of the InteractionUse + + + + + + + + + + The actual arguments of the Interaction + + + + + + + + PartDecomposition is a description of the internal interactions of one Lifeline relative to an Interaction. + + + +A Lifeline has a class associated as the type of the ConnectableElement that the Lifeline represents. That class may have an internal structure and the PartDecomposition is an Interaction that describes the behavior of that internal structure relative to the Interaction where the decomposition is referenced. + + + +A PartDecomposition is a specialization of InteractionUse. It associates with the ConnectableElement that it decomposes. + + + + + + PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations. + + + true + + + + + Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order. + + + +i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D + +ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D. + +iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D + + + + + true + + + + + Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an + +InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition) + + + + + true + + + + + + + An InteractionOperand is contained in a CombinedFragment. An InteractionOperand represents one operand of the expression given by the enclosing CombinedFragment. + + + +An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be + +guarded by a InteractionConstraint. Only InteractionOperands with a guard that evaluates to true at this point in the interaction will be considered for the production of the traces for the enclosing CombinedFragment. + + + +InteractionOperand contains an ordered set of InteractionFragments. + + + +In Sequence Diagrams these InteractionFragments are ordered according to their geometrical position vertically. The geometrical position of the InteractionFragment is given by the topmost vertical coordinate of its contained OccurrenceSpecifications or symbols. + + + + The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand. + + + true + + + + + The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction. + + + true + + + + + + + + + + Constraint of the operand. + + + + + + + + + + The fragments of the operand. + + + + + + + + An InteractionConstraint is a Boolean expression that guards an operand in a CombinedFragment. InteractionConstraint is a specialization of Constraint. Furthermore the InteractionConstraint contains two expressions designating the minimum and maximum number of times a loop CombinedFragment should execute. + + + + The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline. + + + true + + + + + The constraint may contain references to global data or write-once data. + + + true + + + + + Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment. + + + true + + + + + If minint is specified, then the expression must evaluate to a non-negative integer. + + + true + + + + + If maxint is specified, then the expression must evaluate to a positive integer. + + + true + + + + + If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint + + + true + + + + + + + + + The minimum number of iterations of a loop + + + + + + + + + + The maximum number of iterations of a loop + + + + + + + + InteractionOperatorKind is an enumeration designating the different kinds of operators of CombinedFragments. The InteractionOperand defines the type of operator of a CombinedFragment. + + + + The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands. + + + + + The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no guard. + + + + + The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment where there is one operand with non-empty content and the second operand is empty. + + + + + The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done non-deterministically. + + + + + The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the ordering imposed by each operand as such is preserved. + + + + + The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing CombinedFragment. + + + + + The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times. + + + + + The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave into the region, such as e.g. with par-operator, this is prevented by defining a region. + + + + + The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid. + + + + + The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the operand of the assertion are the only valid continuations. All other continuations result in an invalid trace. + + + + + The interacionOperator ignore designates that there are some message types that are not shown within this combined fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can appear anywhere in the traces. + + + + + The interactionOperator consider designates which messages should be considered within this combined fragment. This is equivalent to defining every other message to be ignored. + + + + + + A Gate is a connection point for relating a Message outside an InteractionFragment with a Message inside the InteractionFragment. Gate is a specialization of MessageEnd. Gates are connected through Messages. A Gate is actually a representative of an OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments. + + + + The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse. + + + true + + + + + The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside. + + + true + + + + + + + A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner. CombinedFragment is a specialization of InteractionFragment. + + + + If the interactionOperator is opt, loop, break, or neg there must be exactly one operand + + + true + + + + + The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop. + + + true + + + + + If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment. + + + true + + + + + The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment + + + ((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment) + + + + + + Specifies the operation which defines the semantics of this combination of InteractionFragments. + + + + + + + + The set of operands of the combined fragment. + + + + + + + + + + Specifies the gates that form the interface between this CombinedFragment and its surroundings + + + + + + + + An interaction is a unit of behavior that focuses on the observable exchange of information between ConnectableElements. An Interaction is a specialization of InteractionFragment and of Behavior. + + + + + + + + + Specifies the participants in this Interaction. + + + + + + + + + + The Messages contained in this Interaction. + + + + + + + + + + The ordered set of fragments in the Interaction. + + + + + + + + + + Actions owned by the Interaction. + + + + + + + + + + Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it. + + + + + + + + + + A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen. + + + A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. + + + +If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. + + + +If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen. + + + + + + If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations. + + + true + + + + + The selector for a Lifeline must only be specified if the referenced Part is multivalued. + + + (self.selector->isEmpty() implies not self.represents.isMultivalued()) or +(not self.selector->isEmpty() implies self.represents.isMultivalued()) + + + + + + The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline. + + + if (represents->notEmpty()) then +(if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued()) + + + + + + + + + + + References the ConnectableElement within the classifier that contains the enclosing interaction. + + + + + + + References the Interaction enclosing this Lifeline. + + + + + + + + + + If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set. + + + + + + + References the Interaction that represents the decomposition. + + + + + + + + A Continuation is a syntactic way to define continuations of different branches of an Alternative CombinedFragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control. + + + + Continuations with the same name may only cover the same set of Lifelines (within one Classifier). + + + true + + + + + Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment. + + + true + + + + + Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment. + + + true + + + + + + True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning. + + + + + + + + InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. InteractionFragment is an abstract class and a specialization of NamedElement. + + + + + References the Lifelines that the InteractionFragment involves. + + + + + + + + + + The general ordering relationships contained in this fragment. + + + + + + + The Interaction enclosing this InteractionFragment. + + + + + + + The operand enclosing this InteractionFragment (they may nest recursively) + + + + + + + + A ConsiderIgnoreFragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified. + + + + The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'. + + + (interactionOperator = #consider) or (interactionOperator = #ignore) + + + + + The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal). + + + message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal)) + + + + + + The set of messages that apply to this fragment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ordered + + + + + + + + + + + + + In the metamodel, a Manifestation is a subtype of Abstraction. A Manifestation is owned by an Artifact. + + + + + The model element that is utilized in the manifestation in an Artifact. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A call event represents the reception of a request to invoke a specific operation. A call event is distinct from the call action that caused it. A call event may cause the invocation of a behavior that is the method of the operation referenced by the call request, if that operation is owned or inherited by the classifier that specified the receiver object. + + + + + Designates the operation whose invocation raised the call event. + + + + + + + + A change event occurs when a Boolean-valued expression becomes true, for example, as a result of a change in the value held in a slot corresponding to an attribute, or a change in the value referenced by a link corresponding to an association. A change event is raised implicitly and is not the result of an explicit action. + + + + + + + + A Boolean-valued expression that will result in a change event whenever its value changes from false to true. + + + + + + + + A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself. + + + + A Reception can not be a query. + + + not self.isQuery + + + + + + The signal that this reception handles. + + + + + + + + A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence. + + + + + + + + The attributes owned by the signal. + + + + + + + + A signal event represents the receipt of an asynchronous signal. A signal event may cause a response, such as a state machine transition as specified in the classifier behavior of the classifier that specified the receiver object, if the signal referenced by the send request is mentioned in a reception owned or inherited by the classifier that specified the receiver object. + + + + + The specific signal that is associated with this event. + + + + + + CallConcurrencyKind is an enumeration with the following literals: + +• sequential No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once. + +• guarded Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. + +• concurrent Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. + + + + + + + + No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once. + + + + + Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. + + + + + Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. + + + + + + A message event specifies the receipt by an object of either a call or a signal. MessageEvent is an abstract metaclass. + + + + + + A transition trigger associated with AnyReceiveEvent specifies that the transition is to be triggered by the receipt of any message that is not explicitly referenced in another transition from the same vertex. + + + + + + A BehavioredClassifier may have an interface realization. + + + A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself. + + + + If a behavior is classifier behavior, it does not have a specification. + + + self.classifierBehavior.notEmpty() implies self.specification.isEmpty() + + + + + + + + + References behavior specifications owned by a classifier. + + + + + + + A behavior specification that specifies the behavior of the classifier itself. + + + + + + + + + + + + + + + + + + References Trigger descriptions owned by a Classifier. + + + + + + + + An event is the specification of some occurrence that may potentially trigger effects by an object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extends a classifier with the ability to own ports as specific and type checked interaction points. + + + + + + + + References a set of ports that an encapsulated classifier owns. + + + + + + + + A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector. + + + + The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector. + + + true + + + + + If a connector end is attached to a port of the containing classifier, partWithPort will be empty. + + + true + + + + + If a connector end references both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort. + + + true + + + + + The property held in self.partWithPort must not be a Port. + + + true + + + + + + + + + A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end. + + + + + + + + + The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element. + + + + + + + + + Indicates the role of the internal structure of a classifier with the port to which the connector end is attached. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. + + + +Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration. + + + + + + All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible. + + + true + + + + + Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation. + + + true + + + + + The connectors in the classifier connect according to the connectors in the collaboration + + + true + + + + + + The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use. + + + + + + + + + + A mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles). + + + + + + + + + + A collaboration is represented as a kind of classifier and defines a set of cooperating entities to be played by instances (its roles), as well as a set of connectors that define communication paths between the participating instances. The cooperating entities are the properties of the collaboration. + + + +A collaboration specifies a view (or projection) of a set of cooperating classifiers. It describes the required links between instances that play the roles of the collaboration, as well as the features required of the classifiers that specify the participating instances. Several collaborations may describe different projections of the same set of classifiers. + + + + + + + + References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CreateObjectAction is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime. + + + + The classifier cannot be abstract. + + + not (self.classifier.isAbstract = #true) + + + + + The classifier cannot be an association class + + + not self.classifier.oclIsKindOf(AssociationClass) + + + + + The type of the result pin must be the same as the classifier of the action. + + + self.result.type = self.classifier + + + + + The multiplicity of the output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + Classifier to be instantiated. + + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + This action destroys the object on its input pin at runtime. The object may be a link object, in which case the semantics of DestroyLinkAction also applies. + + + + The multiplicity of the input pin is 1..1. + + + self.target.multiplicity.is(1,1) + + + + + The input pin has no type. + + + self.target.type->size() = 0 + + + + + + Specifies whether links in which the object participates are destroyed along with the object. + + + + + + + Specifies whether objects owned by the object are destroyed along with the object. + + + + + + + + + + The input pin providing the object to be destroyed. + + + + + + + + This action returns true if the two input values are the same identity, false if they are not. + + + + The input pins have no type. + + + self.first.type->size() = 0 +and self.second.type->size() = 0 + + + + + + The multiplicity of the input pins is 1..1. + + + self.first.multiplicity.is(1,1) +and self.second.multiplicity.is(1,1) + + + + + + The type of the result is Boolean. + + + self.result.type.oclIsTypeOf(Boolean) + + + + + + + + + Gives the pin on which an object is placed. + + + + + + + + + + Gives the pin on which an object is placed. + + + + + + + + + + Tells whether the two input objects are identical. + + + + + + + + Every action is ultimately a part of some behavior, which is in turn optionally attached in some way to the specification of a classifier; for example as the body of a method or as part of a state machine. When the behavior executes, it does so in the context of some specific host instance of that classifier. This action produces this host instance, if any, on its output pin. The type of the output pin is the classifier to which the behavior is associated in the user model. + + + + The action must be contained in an behavior that has a host classifier. + + + self.context->size() = 1 + + + + + If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static. + + + true + + + + + The type of the result output pin is the host classifier. + + + self.result.type = self.context + + + + + The multiplicity of the result output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + Gives the output pin on which the hosting object is placed. + + + + + + + + + + This abstract action class statically specifies the structural feature being accessed. The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + + + + The structural feature must not be static. + + + self.structuralFeature.isStatic = #false + + + + + The type of the object input pin is the same as the classifier of the object passed on this pin. + + + true + + + + + The multiplicity of the input pin must be 1..1. + + + self.object.multiplicity.is(1,1) + + + + + Visibility of structural feature must allow access to the object performing the action. + + + let host : Classifier = self.context in +self.structuralFeature.visibility = #public +or host = self.structuralFeature.featuringClassifier.type +or (self.structuralFeature.visibility = #protected and host.allSupertypes +->includes(self.structuralFeature.featuringClassifier.type))) + + + + + + A structural feature has exactly one featuringClassifier. + + + self.structuralFeature.featuringClassifier->size() = 1 + + + + + + Structural feature to be read. + + + + + + + + + + Gives the input pin from which the object whose structural feature is to be read or written is obtained. + + + + + + + + + + This action reads the values of a structural feature, in order if the structural feature is ordered. + + + + The type and ordering of the result output pin are the same as the type and ordering of the structural feature. + + + self.result.type = self.structuralFeature.type +and self.result.ordering = self.structuralFeature.ordering + + + + + + The multiplicity of the structural feature must be compatible with the multiplicity of the output pin. + + + self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity) + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + A write structural feature action operates on a structural feature of an object to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write structural feature actions are inherited from StructuralFeatureAction. + + + + The type input pin is the same as the classifier of the structural feature. + + + self.value.type = self.structuralFeature.featuringClassifier + + + + + The multiplicity of the input pin is 1..1. + + + self.value.multiplicity.is(1,1) + + + + + + + + + Value to be added or removed from the structural feature. + + + + + + + + This action removes all values of a structural feature. + + + + + + The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + + + +Structural features are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values. + + + + + + Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin. + + + + + true + + + + + + Specifies whether to remove duplicates of the value in nonunique structural features. + + + + + + + + + + Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + + + + + + + + Structural Features are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the structural feature before the new value is added. + + + +The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + + + + + + Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + + + let insertAtPins : Collection = self.insertAt in +if self.structuralFeature.isOrdered = #false +then insertAtPins->size() = 0 +else let insertAtPin : InputPin= insertAt->asSequence()->first() in +insertAtPins->size() = 1 +and insertAtPin.type = UnlimitedNatural +and insertAtPin.multiplicity.is(1,1)) +endif + + + + + + + Specifies whether existing values of the structural feature of the object should be removed before adding the new value. + + + + + + + + + + Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features. + + + + + + + + A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any. + + + + The association ends of the link end data must all be from the same association and include all and only the association ends of that association. + + + self.endData->collect(end) = self.association()->collect(connection)) + + + + + The association ends of the link end data must not be static. + + + self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false + + + + + The input pins of the action are the same as the pins of the link end data and insertion pins. + + + self.input->asSet() = +let ledpins : Set = self.endData->collect(value) in +if self.oclIsKindOf(LinkEndCreationData) +then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt) +else ledpins + + + + + + + + + + Data identifying one end of a link by the objects on its ends and qualifiers. + + + + + + + + + + Pins taking end objects and qualifier values as input. + + + + + + + The association operates on LinkAction. It returns the association of the action. + + + + result = self.endData->asSequence().first().end.association + + + + + + + + This action navigates an association towards one end, which is the end that does not have an input pin to take its object (the “open” end). The objects put on the result output pin are the ones participating in the association at the open end, conforming to the specified qualifiers, in order if the end is ordered. The semantics is undefined for reading a link that violates the navigability or visibility of the open end. + + + + Exactly one link-end data specification (the 'open' end) must not have an end object input pin. + + + self.endData->select(ed | ed.value->size() = 0)->size() = 1 + + + + + The type and ordering of the result output pin are same as the type and ordering of the open association end. + + + let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +self.result.type = openend.type +and self.result.ordering = openend.ordering + + + + + + The multiplicity of the open association end must be compatible with the multiplicity of the result output pin. + + + let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +openend.multiplicity.compatibleWith(self.result.multiplicity) + + + + + + The open end must be navigable. + + + let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +openend.isNavigable() + + + + + + Visibility of the open end must allow access to the object performing the action. + + + let host : Classifier = self.context in +let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +openend.visibility = #public +or self.endData->exists(oed | not oed.end = openend +and (host = oed.end.participant +or (openend.visibility = #protected +and host.allSupertypes->includes(oed.end.participant)))) + + + + + + + + + + The pin on which are put the objects participating in the association at the end not specified by the inputs. + + + + + + + + + + This class is required when using CreateLinkAction, to specify insertion points for ordered ends and for replacing all links at end. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + +Qualifier values are used in CompleteActions to identify links to create. + + + + LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations. + + + self.LinkAction.oclIsKindOf(CreateLinkAction) + + + + + Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + + + let insertAtPins : Collection = self.insertAt in +if self.end.ordering = #unordered +then insertAtPins->size() = 0 +else let insertAtPin : InputPin = insertAts->asSequence()->first() in +insertAtPins->size() = 1 +and insertAtPin.type = UnlimitedNatural +and insertAtPin.multiplicity.is(1,1)) +endif + + + + + + + Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link. + + + + + + + Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered. + + + + + + + + This action can be used to create links and link objects. There is no return value in either case. This is so that no change of the action is required if the association is changed to an association class or vice versa. CreateLinkAction uses a specialization of LinkEndData called LinkEndCreationData, to support ordered associations. The insertion point is specified at runtime by an additional input pin, which is required for ordered association ends and omitted for unordered ends. The insertion point is a positive integer giving the position to insert the link, or unlimited, to insert at the end. Reinserting an existing end at a new position in an ordered unique structural feature moves the end to that position. CreateLinkAction also uses LinkEndCreationData to support the destruction of existing links of the association that connect any of the objects of the new link. When the link is created, this option is available on an end-by-end basis, and causes all links of the association emanating from the + +specified ends to be destroyed before the new link is created. + + + + The association cannot be an abstract classifier. + + + self.association().isAbstract = #false + + + + + + + + + Specifies ends of association and inputs. + + + + + + + + This action destroys a link or a link object. Link objects can also be destroyed with DestroyObjectAction. The link is specified in the same way as link creation, even for link objects. This allows actions to remain unchanged when their associations are transformed from ordinary ones to association classes and vice versa. + + + +DestroyLinkAction uses a specialization of LinkEndData, called LinkEndDestructionData, to support ordered nonunique associations. The position of the link to be destroyed is specified at runtime by an additional input pin, which is required for ordered nonunique association ends and omitted for other kinds of ends. This is a positive integer giving the position of the link to destroy. + + + +DestroyLinkAction also uses LinkEndDestructionData to support the destruction of duplicate links of the association on ends that are nonunique. This option is available on an end-by-end basis, and causes all duplicate links of the association emanating from the specified ends to be destroyed. + + + + + + + + + + Specifies ends of association and inputs. + + + + + + + + A write link action takes a complete identification of a link and creates or destroys it. + + + + The visibility of at least one end must allow access to the class using the action. + + + true + + + + + + + This action destroys all links of an association that have a particular object at one end. + + + + The type of the input pin must be the same as the type of at least one of the association ends of the association. + + + self.association->exists(end.type = self.object.type) + + + + + The multiplicity of the input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + + + + + Gives the input pin from which is obtained the object whose participation in the association is to be cleared. + + + + + + + Association to be cleared. + + + + + + + + BroadcastSignalAction is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor. + + + + The number and order of argument pins must be the same as the number and order of attributes in the signal. + + + true + + + + + The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + + + true + + + + + + The specification of signal object transmitted to the target objects. + + + + + + + + SendObjectAction is an action that transmits an object to the target object, where it may invoke behavior such as the firing of state machine transitions or the execution of an activity. The value of the object is available to the execution of invoked behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. + + + + + + + + The target object to which the object is sent. + + + + + + + + + + The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved. (Specialized from InvocationActon.argument) + + + + + + + + This class is required when using DestroyLinkAction, to specify links to destroy for nonunique ordered ends. A link cannot be passed as a runtime value to or from an action. + + + +Qualifier values are used in CompleteActions to identify links to destroy. + + + + LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations. + + + true + + + + + LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position. + + + true + + + + + + Specifies whether to destroy duplicates of the value in nonunique association ends. + + + + + + + Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + + + + + + + + The action returns the result of evaluating a value specification. + + + + The type of value specification must be compatible with the type of the result pin. + + + true + + + + + The multiplicity of the result pin is 1..1 + + + true + + + + + + + + + Value specification to be evaluated. + + + + + + + + + + Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A TimeExpression defines a value specification that represents a time value. + + + + + True if the TimeExpression describes the first point in time of the NamedElement referenced by event, in cases where the NamedElement describes something which extends in time. False if the TimeExpression describes the last point in time for the referenced NamedElement. + + + + + + + Refers to the specification of the event occurrence that the TimeExpression describes + + + + + + + + A duration defines a value specification that specifies the temporal distance between two time expressions that specify time instants. + + + + + If the duration is between times of two NamedElements, there are two Boolean attributes, one for the start of the duration and one for the end of the duration. For each of these it holds that firstTime is true if the time information is associated with the first point in time of the NamedElement referenced by event, and false if it represents the last point in time of the NamedElement. If there is only one NamedElement referenced by event, then this attribute is irrelevant. + + + + + + + Refers to the specification(s) that describes the starting TimeExpression and the ending TimeExpression of the Duration. If only one NamedElement is referenced, the duration is from the first point in time of that NamedElement until the last point in time of that NamedElement. + + + + + + + + A TimeObservationAction defines an action that observes the current point in time and writes this value to a structural feature. + + + + The value of a TimeObservationAction’s input must be a TimeExpression. + + + self.value.value.oclIsKindOf(TimeExpression) + + + + + + + + + Represents the current point in time and the value which is observed given by the keyword now. + + + + + + + + Input whose time expression is to be written to the structural feature. + + + + + + + + + + + self.value.value.oclAsType(TimeExpression) + + + + + + + + A DurationInterval defines the range between two Durations. + + + + + Refers to the Duration denoting the minimum value of the range. + + + + + Refers to the Duration denoting the maximum value of the range. + + + + + + A TimeConstraint defines a Constraint that refers to a TimeInterval. + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + + A TimeInterval defines the range between two TimeExpressions. + + + + + Refers to the TimeExpression denoting the maximum value of the range. + + + + + Refers to the TimeExpression denoting the minimum value of the range. + + + + + + A DurationObservationAction defines an action that observes duration in time and writes this value to a structural feature. + + + + The value of a DurationObservationAction’s input must be a Duration. + + + self.value.value.oclIsKindOf(Duration) + + + + + + + + + Represents the measured Duration + + + + + + + + Input whose duration is to be written to the structural feature. + + + + + + + + + + + result = self.value.value.oclAsType(Duration) + + + + + + + + A DurationConstraint defines a Constraint that refers to a DurationInterval. + + + + + + + + The interval constraining the duration. + + + + + + + + A IntervalConstraint defines a Constraint that refers to an Interval. + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + + An Interval defines the range between two value specifications. + + + + + Refers to the ValueSpecification denoting the minimum value of the range. + + + + + + + Refers to the ValueSpecification denoting the maximum value of the range. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An action with implementation-specific semantics. + + + + + + + + Specifies the action in one or more languages. + + + + + + + + + + + Languages the body strings use, in the same order as the body strings + + + + + + + + Provides input to the action. + + + + + + + Takes output from the action. + + + + + + + + A value pin is an input pin that provides a value by evaluating a value specification. + + + + The type of value specification must be compatible with the type of the value pin. + + + true + + + + + + + + + Value that the pin will provide. + + + + + + + + An output pin is a pin that holds output values produced by an action. + + + + + + An input pin is a pin that holds input values to be consumed by an action. + + + + + + CallAction is an abstract class for actions that invoke behavior and receive return values. + + + + Only synchronous call actions can have result pins. + + + true + + + + + The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order. + + + true + + + + + The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature. + + + true + + + + + + If true, the call is synchronous and the caller waits for completion of the invoked behavior. + +If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values. + + + + + + + + + + + + A list of output pins where the results of performing the invocation are placed. + + + + + + + + SendSignalAction is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use SendObjectAction. + + + + The number and order of argument pins must be the same as the number and order of attributes in the signal. + + + true + + + + + The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + + + true + + + + + + + + + The target object to which the signal is sent. + + + + + + + The type of signal transmitted to the target object. + + + + + + + + CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete. + + + + The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal. + + + true + + + + + The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal. + + + true + + + + + The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation. + + + + + true + + + + + The type of the target pin must be the same as the type that owns the operation. + + + true + + + + + + The operation to be invoked by the action execution. + + + + + + + + + + The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. + + + + + + + + CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity. + + + + The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal. + + + true + + + + + The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal. + + + true + + + + + The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior. + + + + + true + + + + + + The invoked behavior. It must be capable of accepting and returning control. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invocation is an abstract class for the various actions that invoke behavior. + + + In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object. + + + + The onPort must be a port on the receiver object. + + + true + + + + + + + + + Specification of the ordered set of argument values that appears during execution. + + + + + + + A optional port of the receiver object on which the behavioral feature is invoked. + + + + + + + + A trigger specifies an event that may cause the execution of an associated behavior. An event is often ultimately caused by the execution of an action, but need not be. + + + A trigger specification may be qualified by the port on which the event occurred. + + + + + The event that causes the trigger. + + + + + + + A optional port of the receiver object on which the behavioral feature is invoked. + + + + + + + + + + + + + + + + + + + + Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., from a class to its superclasses). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a general Classifier (or superclass) may be divided using specific subtypes. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the general classifier, however one Generalization would involve Male Person as the specific Classifier and the other would involve Female Person as the specific classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be divided into North American Person, Asian Person, European Person, or something else. This collection of subsets would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the general Classifier; only the specific classifiers would differ: i.e., North American Person, Asian Person, and European Person. + + + + Every Generalization associated with a particular GeneralizationSet must have the same general Classifier. + + + generalization->collect(g | g.general)->asSet()->size() <= 1 + + + + + The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses. + + + true + + + + + + Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet. For example, Person could have two Generalization relationships each with a different specific Classifier: Male Person and Female Person. This GeneralizationSet would be covering because every instance of Person would be an instance of Male Person or Female Person. In contrast, Person could have a three Generalization relationships involving three specific Classifiers: North American Person, Asian Person, and European Person. This GeneralizationSet would not be covering because there are instances of Person for which these three specific Classifiers do not apply. The first example, then, could be read: any Person would be specialized as either being a Male Person or a Female Person—and nothing else; the second could be read: any Person would be specialized as being North American Person, Asian Person, European Person, or something else. + + + + + + Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager. + + + + + + Designates the Classifier that is defined as the power type for the associated GeneralizationSet. + + + + + + + Designates the instances of Generalization which are members of a given GeneralizationSet. + + + + + + + + A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier. + +A generalization can be designated as being a member of a particular generalization set. + + + + + A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier. + + + + + + + + Every Generalization associated with a given GeneralizationSet must have the same general Classifier. That is, all Generalizations for a particular GeneralizationSet must have the same superclass. + + + true + + + + + + Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier. + + + + + + References the specializing classifier in the Generalization relationship. + + + + + + + References the general classifier in the Generalization relationship. + + + + + + + Designates a set in which instances of Generalization is considered members. + + + + + + + + + + An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated. One purpose of InformationItems is to be able to define preliminary models, before having made detailed modeling decisions on types or structures. One other purpose of information items and information flows is to abstract complex models by a less precise but more general representation of the information exchanged betwen entities of a system. + + + + + + The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component. + + + (self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p | + + p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and + + p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and + + (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or + + oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))) + + + + + An informationItem has no feature, no generalization, and no associations. + + + self.generalization->isEmpty() and self.feature->isEmpty() + + + + + It is not instantiable. + + + isAbstract + + + + + + Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers. + + + + + + + + An information flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of InstanceSpecification), they may be represented by a link that joins the two, and so on. + + + + The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link). + + + (self.source->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + + oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + + oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + + oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + + oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and + + (self.target->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + + oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + + oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + + oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + + oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) + + + + + The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships. + + + true + + + + + An information flow can only convey classifiers that are allowed to represent an information item. + + + + + self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) + + or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)) + + + + + + + Determines which Relationship will realize the specified flow + + + + + + + Specifies the information items that may circulate on this information flow. + + + + + + + Defines from which source the conveyed InformationItems are initiated. + + + + + + + Defines to which target the conveyed InformationItems are directed. + + + + + + + Determines which ActivityEdges will realize the specified flow. + + + + + + + Determines which Connectors will realize the specified flow. + + + + + + + Determines which Messages will realize the specified flow. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Model construct is defined as a Package. It contains a (hierarchical) set of elements that together describe the physical system being modeled. A Model may also contain a set of elements that represents the environment of the system, typically Actors, together with their interrelationships, such as Associations and Dependencies + + + + + The name of the viewpoint that is expressed by a model (This name may refer to a profile definition). + + + + + + + VariableAction is an abstract class for actions that operate on a statically specified variable. + + + + The action must be in the scope of the variable. + + + self.variable.isAccessibleBy(self) + + + + + + Variable to be read. + + + + + + + + This action reads the values of a variables, in order if the variable is ordered. + + + + The type and ordering of the result output pin of a read-variable action are the same as the type and ordering of the variable. + + + self.result.type =self.variable.type +and self.result.ordering = self.variable.ordering + + + + + + The multiplicity of the variable must be compatible with the multiplicity of the output pin. + + + self.variable.multiplicity.compatibleWith(self.result.multiplicity) + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + A write variable action operates on a variable to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write variable actions are inherited from VariableAction. + + + + The type input pin is the same as the type of the variable. + + + self.value.type = self.variable.type + + + + + The multiplicity of the input pin is 1..1. + + + self.value.multiplicity.is(1,1) + + + + + + + + + Value to be added or removed from the variable. + + + + + + + + This action removes all values of an variable. + + + + + + Variables are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the variable before the new value is added. + + + + Actions adding values to ordered variables must have a single input pin for the insertion point with type UnlimtedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + + + let insertAtPins : Collection = self.insertAt in +if self.variable.ordering = #unordered +then insertAtPins->size() = 0 +else let insertAtPin : InputPin = insertAt->asSequence()->first() in +insertAtPins->size() = 1 +and insertAtPin.type = UnlimitedNatural +and insertAtPin.multiplicity.is(1,1)) +endif + + + + + + + Specifies whether existing values of the variable should be removed before adding the new value. + + + + + + + + + + Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables. + + + + + + + + One value is removed from the set of possible variable values. Variables are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values. + + + + Actions removing a value from ordered nonunique variables must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type UnlimitedNatural with multiplicity of 1..1, otherwise the action has no removeAt input pin. + + + true + + + + + + Specifies whether to remove duplicates of the value in nonunique variables. + + + + + + + + + + Specifies the position of an existing value to remove in ordered nonunique variables. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + + + + + + + + RaiseExceptionAction is an action that causes an exception to occur. The input value becomes the exception object. + + + + + + + + An input pin whose value becomes an exception object. + + + + + + + + An action input pin is a kind of pin that executes an action to determine the values to input to another. + + + + The fromAction of an action input pin must have exactly one output pin. + + + true + + + + + The fromAction of an action input pin must only have action input pins as input pins. + + + true + + + + + The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins. + + + true + + + + + + + + + The action used to provide values. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ReadExtentAction is an action that retrieves the current instances of a classifier. + + + + The type of the result output pin is the classifier. + + + true + + + + + The multiplicity of the result output pin is 0..*. + + + self.result.multiplicity.is(0,#null) + + + + + + + + + The runtime instances of the classifier. + + + + + + + The classifier whose instances are to be retrieved. + + + + + + + + ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers may be added and removed at a time. + + + + None of the new classifiers may be abstract. + + + not self.newClassifier->exists(isAbstract = true) + + + + + The multiplicity of the input pin is 1..1. + + + self.argument.multiplicity.is(1,1) + + + + + The input pin has no type. + + + self.argument.type->size() = 0 + + + + + + Specifies whether existing classifiers should be removed before adding the new classifiers. + + + + + + + A set of classifiers to be removed from the classifiers of the object. + + + + + + + A set of classifiers to be added to the classifiers of the object. + + + + + + + + + + Holds the object to be reclassified. + + + + + + + + This action tests the classification of an object against a given class. It can be restricted to testing direct instances. + + + + The multiplicity of the input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + The input pin has no type. + + + self.object.type->isEmpty() + + + + + The multiplicity of the output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + The type of the output pin is Boolean + + + self.result.type = Boolean + + + + + + Indicates whether the classifier must directly classify the input object. + + + + + + + The classifier against which the classification of the input object is tested. + + + + + + + + + + After termination of the action, will hold the result of the test. + + + + + + + + + + Holds the object whose classification is to be tested. + + + + + + + + StartClassifierBehaviorAction is an action that starts the classifier behavior of the input. + + + + The multiplicity of the input pin is 1..1 + + + true + + + + + If the input pin has a type, then the type must have a classifier behavior. + + + true + + + + + + + + + Holds the object on which to start the owned behavior. + + + + + + + + A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + + The qualifier attribute must be a qualifier of the association end of the link-end data. + + + self.LinkEndData.end->collect(qualifier)->includes(self.qualifier) + + + + + The type of the qualifier value input pin is the same as the type of the qualifier attribute. + + + self.value.type = self.qualifier.type + + + + + The multiplicity of the qualifier value input pin is "1..1". + + + self.value.multiplicity.is(1,1) + + + + + + Attribute representing the qualifier for which the value is to be specified. + + + + + + + Input pin from which the specified value for the qualifier is taken. + + + + + + + + LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + + + + The property must be an association end. + + + self.end.association->size() = 1 + + + + + The type of the end object input pin is the same as the type of the association end. + + + self.value.type = self.end.type + + + + + The multiplicity of the end object input pin must be 1..1. + + + self.value.multiplicity.is(1,1) + + + + + The qualifiers include all and only the qualifiers of the association end. + + + self.qualifier->collect(qualifier) = self.end.qualifier + + + + + The end object input pin is not also a qualifier value input pin. + + + self.value->excludesAll(self.qualifier.value) + + + + + + Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading. + + + + + + + Association end for which this link-end data specifies values. + + + + + + + + + + List of qualifier values + + + + + + + + This action reads the object on an end of a link object. The association end to retrieve the object from is specified statically, and the link object to read is provided on the input pin at run time. + + + + The property must be an association end. + + + self.end.association.notEmpty() + + + + + The association of the association end must be an association class. + + + self.end.Association.oclIsKindOf(AssociationClass) + + + + + The ends of the association must not be static. + + + self.end.association.memberEnd->forall(e | not e.isStatic) + + + + + The type of the object input pin is the association class that owns the association end. + + + self.object.type = self.end.association + + + + + The multiplicity of the object input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + The type of the result output pin is the same as the type of the association end. + + + self.result.type = self.end.type + + + + + The multiplicity of the result output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + Gives the input pin from which the link object is obtained. + + + + + + + Link end to be read. + + + + + + + + + + Pin where the result value is placed + + + + + + + + This action reads a qualifier value or values on an end of a link object. The association end to retrieve the qualifier from is specified statically, and the link object to read is provided on the input pin at run time. + + + + The qualifier attribute must be a qualifier attribute of an association end. + + + self.qualifier.associationEnd->size() = 1 + + + + + The association of the association end of the qualifier attribute must be an association class. + + + self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass) + + + + + The ends of the association must not be static. + + + self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic) + + + + + The type of the object input pin is the association class that owns the association end that has the given qualifier attribute. + + + self.object.type = self.qualifier.associationEnd.association + + + + + The multiplicity of the qualifier attribute is 1..1. + + + self.qualifier.multiplicity.is(1,1) + + + + + The multiplicity of the object input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + The type of the result output pin is the same as the type of the qualifier attribute. + + + self.result.type = self.qualifier.type + + + + + The multiplicity of the result output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + (Specialized from Action:input) Gives the input pin from which the link object is obtained. + + + + + + + + + + Pin where the result value is placed + + + + + + + The attribute representing the qualifier to be read. + + + + + + + + This action is exclusively for creating links of association classes. It returns the created link object. + + + + The association must be an association class. + + + self.association().oclIsKindOf(Class) + + + + + The type of the result pin must be the same as the association of the action. + + + self.result.type = self.association() + + + + + The multiplicity of the output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + AcceptEventAction is an action that waits for the occurrence of an event meeting specified conditions. + + + + AcceptEventActions may have no input pins. + + + true + + + + + There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction). + + + true + + + + + If the trigger events are all TimeEvents, there is exactly one output pin. + + + true + + + + + If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute. + + + true + + + + + + Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event. + + + + + + + Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. + + + + + + + + + + The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted. + + + + + + + + AcceptCallAction is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the ReplyAction necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects. + + + + The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order. + + + true + + + + + The trigger event must be a CallEvent. + + + trigger.event.oclIsKindOf(CallEvent) + + + + + isUnmrashall must be true for an AcceptCallAction. + + + isUnmarshall = true + + + + + + Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model. + + + + + + + + ReplyAction is an action that accepts a set of return values and a value containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call. + + + + The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order. + + + true + + + + + The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent) + + + replyToCallEvent.oclIsKindOf(CallEvent) + + + + + + The trigger specifying the operation whose call is being replied to. + + + + + + + + + + A pin containing the return information value produced by an earlier AcceptCallAction. + + + + + + + + + + A list of pins containing the reply values of the operation. These values are returned to the caller. + + + + + + + + The outputs of this action correspond to the structural features of the specified type. The input must be of this type. + + + + The type of the object input pin must be the same as the unmarshall classifier. + + + true + + + + + The multiplicity of the object input pin is 1..1 + + + true + + + + + The number of result output pins must be the same as the number of structural features of the unmarshall classifier. + + + true + + + + + The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier. + + + true + + + + + The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier. + + + + + true + + + + + The unmarshall classifier must have at least one structural feature. + + + true + + + + + unmarshallType must be a Classifier with ordered attributes + + + true + + + + + + The values of the structural features of the input object. + + + + + + + The type of the object to be unmarshalled. + + + + + + + + + + The object to be unmarshalled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A control node is an activity node used to coordinate the flows between other nodes. It covers initial node, final node and its children, fork node, join node, decision node, and merge node. + + + + + + Objects and data cannot pass along a control flow edge. + + + + Control flows may not have object nodes at either end, except for object nodes with control type. + + + true + + + + + + + An activity may have more than one initial node. + + + + An initial node has no incoming edges. + + + true + + + + + Only control edges can have initial nodes as source. + + + true + + + + + + + Activity parameter nodes are object nodes at the beginning and end of flows that provide a means to accept inputs to an activity and provide outputs from the activity, through the activity parameters. + + + + Activity parameter nodes must have parameters from the containing activity. + + + true + + + + + The type of an activity parameter node is the same as the type of its parameter. + + + true + + + + + An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges. + + + true + + + + + Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction. + + + + + true + + + + + Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction. + + + + + true + + + + + + The parameter the object node will be accepting or providing values for. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A fork node has one incoming edge and multiple outgoing edges. + + + + A fork node has one incoming edge. + + + true + + + + + The edges coming into and out of a fork node must be either all object flows or all control flows. + + + true + + + + + + + A flow final destroys all tokens that arrive at it. It has no effect on other flows in the activity. + + + + + + A central buffer node accepts tokens from upstream objects nodes and passes them along to downstream object nodes. They act as a buffer for multiple in flows and out flows from other object nodes. They do not connect directly to actions. + + + + + + Partitions divide the nodes and edges to constrain and show a view of the contained nodes. Partitions can share contents. They often correspond to organizational units in a business model. They may be used to allocate characteristics or resources among the nodes of an activity. + + + + A partition with isDimension = true may not be contained by another partition. + + + true + + + + + No node or edge of a partition may be in another partition in the same dimension. + + + true + + + + + If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier. + + + true + + + + + If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition. + + + true + + + + + If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition. + + + true + + + + + + + Tells whether the partition groups other partitions along a dimension. + + + + + + + Tells whether the partition represents an entity to which the partitioning structure does not apply. + + + + + + + Edges immediately contained in the group. + + + + + + + Nodes immediately contained in the group. + + + + + + + + + + Partitions immediately contained in the partition. Specialized from Activity-Group::subgroup. + + + + + + + Partition immediately containing the partition. + + + + + + + An element constraining behaviors invoked by nodes in the partition. + + + + + + + + A merge node has multiple incoming edges and a single outgoing edge. + + + + A merge node has one outgoing edge. + + + true + + + + + The edges coming into and out of a merge node must be either all object flows or all control flows. + + + true + + + + + + + A decision node has one incoming edge and multiple outgoing activity edges. + + + + A decision node has one incoming edge. + + + true + + + + + A decision input behavior has zero or one input parameter and one output parameter. Any input parameter must be the same as or a supertype of the type of object tokens coming along the incoming edge. The behavior cannot have side effects. + + + true + + + + + The edges coming into and out of a decision node must be either all object flows or all control flows. + + + true + + + + + + Provides input to guard specifications on edges outgoing from the decision node. + + + + + + + + A final node is an abstract control node at which a flow in an activity stops. + + + + A final node has no outgoing edges. + + + true + + + + + + + An activity may have more than one activity final node. The first one reached stops all flows in the activity. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A join node has multiple incoming edges and one outgoing edge. + + + A join node has multiple incoming edges and one outgoing edge. In CompleteActivities, Join nodes have a Boolean value specification using the names of the incoming edges to specify the conditions under which the join will emit a token. + + + + A join node has one outgoing edge. + + + self.outgoing->size() = 1 + + + + + If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow. + + + (self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies + + self.outgoing.isTypeOf(ObjectFlow)) and + + (self.incoming.select(e | e.isTypeOf(ObjectFlow)->empty() implies + + self.outgoing.isTypeOf(ControlFlow)) + + + + + + Tells whether tokens having objects with the same identity are combined into one by the join. + + + + + + + + + + A specification giving the conditions under which the join with emit a token. Default is "and". + + + + + + + + A data store keeps all tokens that enter it, copying them when they are chosen to move downstream. Incoming tokens containing a particular object replace any tokens in the object node containing that object. + + + + + + An object flow models the flow of values to or from object nodes. + + + + Object flows may not have actions at either end. + + + true + + + + + Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type. + + + + + true + + + + + Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds. + + + true + + + + + An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight. + + + true + + + + + A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects. + + + true + + + + + An object flow may have a selection behavior only if has an object node as a source. + + + true + + + + + A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects. + + + true + + + + + isMulticast and isMultireceive cannot both be true. + + + true + + + + + + Tells whether the objects in the flow are passed by multicasting. + + + + + + + Tells whether the objects in the flow are gathered from respondents to multicasting. + + + + + + + Changes or replaces data tokens flowing along edge. + + + + + + + Selects tokens from a source object node. + + + + + + + + The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters. + + + + + + + + + An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section. + + + An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section. + +Complete object nodes add support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values. + + + + + + All edges coming into or going out of object nodes must be object flow edges. + + + true + + + + + Object nodes are not unique typed elements + + + isUnique = false + + + + + If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa. + + + true + + + + + A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects. + + + true + + + + + + + Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node. + + + FIFO + + + + + Tells whether the type of the object node is to be treated as control. + + + + + + + + + + The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached. + + + + + + + The required states of the object available at this point in the activity. + + + + + + + Selects tokens for outgoing edges. + + + + + + + + ObjectNodeOrderingKind is an enumeration indicating queuing order within a node. + + + + + + + + + An parameter set acts as a complete set of inputs and outputs to a behavior, exclusive of other parameter sets on the behavior. + + + + The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity. + + + true + + + + + If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters. + + + true + + + + + Two parameter sets cannot have exactly the same set of parameters. + + + true + + + + + + Parameters in the parameter set. + + + + + + + + + + Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied. + + + + + + + + A parameter is a kind of typed element in order to allow the specification of an optional multiplicity on parameters. In addition, it supports the specification of an optional default value. + + + A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature. It has a type, and may have a multiplicity and an optional default value. + + + Parameters are allowed to be treated as connectable elements. + + + Parameters are extended in complete activities to add support for streaming, exceptions, and parameter sets. + + + + A parameter may only be associated with a connector end within the context of a collaboration. + + + self.end.notEmpty() implies self.collaboration.notEmpty() + + + + + A parameter cannot be a stream and exception at the same time. + + + true + + + + + An input parameter cannot be an exception. + + + true + + + + + Reentrant behaviors cannot have stream parameters. + + + true + + + + + Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect. + + + true + + + + + + + Indicates whether a parameter is being sent into or out of a behavioral element. + + + in + + + + + + + + Specifies a String that represents a value to be used when no argument is supplied for the Parameter. + + + + + + + + + + + Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter. + + + + + + + References the Operation for which this is a formal parameter. + + + References the Operation owning this parameter. + + + + + + + Tells whether an output parameter may emit a value to the exclusion of the other outputs. + + + + + + + Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing. + + + + + + + Specifies the effect that the owner of the parameter has on values passed in or out of the parameter. + + + + + The parameter sets containing the parameter. See ParameterSet. + + + + + + + + An interruptible region contains activity nodes. When a token leaves an interruptible region via edges designated by the region as interrupting edges, all tokens and behaviors in the region are terminated. + + + + Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region. + + + + + true + + + + + + The edges leaving the region that will abort other tokens flowing in the region. + + + + + + + Nodes immediately contained in the group. + + + + + + + + A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances. BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + + + A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior. + +BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + + + + + A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method. + + + The concept of BehavioralFeature is extended to own ParameterSets. + + + + + + + + + Specifies the ordered set of formal parameters of this BehavioralFeature. + + + Specifies the ordered set of formal parameters owned by this BehavioralFeature. The parameter direction can be 'in', 'inout', 'out', pr 'return' to specify input, output, or return parameters. + + + + + + + If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element. + + + + + + A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior). + + + + + + + Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features. + + + + + References the Types representing exceptions that may be raised during an invocation of this feature. + + + The signals that the behavioral feature raises as exceptions. + + + + + + + + + + The ParameterSets owned by this BehavioralFeature. + + + + + + + The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures. + + + + result = if n.oclIsKindOf(BehavioralFeature) +then + if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty() + then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type)) + else true + endif +else true +endif + + + + + + + + + + + + + Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution. + + + +A classifier behavior is always a definition of behavior and not an illustration. It describes the sequence of state changes an instance of a classifier may undergo in the course of its lifetime. Its precise semantics depends on the kind of classifier. For example, the classifier behavior of a collaboration represents emergent behavior of all the parts, whereas the classifier behavior of a class is just the behavior of instances of the class separated from the behaviors of any of its parts. + +When a behavior is associated as the method of a behavioral feature, it defines the implementation of that feature; i.e., the computation that generates the effects of the behavioral feature. + + + +As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as "invoking" the behavior, an instantiated behavior is also called a behavior "execution." A behavior may be invoked directly or its invocation may be the result of invoking the behavioral feature that specifies this behavior. A behavior can also be instantiated as an object in virtue of it being a class. The specification of a behavior can take a number of forms, as described in the subclasses of Behavior. Behavior is an abstract metaclass factoring out the commonalities of these different specification mechanisms. + + + +When a behavior is invoked, its execution receives a set of input values that are used to affect the course of execution and as a result of its execution it produces a set of output values which are returned, as specified by its parameters. The observable effects of a behavior execution may include changes of values of various objects involved in the execution, the creation and destruction of objects, generation of communications between objects, as well as an explicit set of output values. + + + + + The concept of Behavior is extended to own ParameterSets. + + + + The parameters of the behavior must match the parameters of the implemented behavioral feature. + + + true + + + + + The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior. + + + true + + + + + If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature. + + + true + + + + + There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior). + + + true + + + + + + Tells whether the behavior can be invoked while it is still executing from a previous invocation. + + + + + + References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior. + + + + + + + Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. If a behavior does not have a specification, it is directly associated with a classifier (i.e., it is the behavior of the classifier as a whole). + + + + + + + + + + References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution. + + + + + + + + + The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the owner of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior. + + + + + + + + + + The ParameterSets owned by this Behavior. + + + + + + + + A pin is a typed element and multiplicity element that provides values to actions and accept result values from them. + + + A pin is an object node for inputs and outputs to actions. + + + + Control pins have a control type + + + isControl implies isControlType + + + + + + Tells whether the pins provide data to the actions, or just controls when it executes it. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A variable specifies data storage shared by the actions within a group. There are actions to write and read variables. These actions are treated as side effecting actions, similar to the actions to write and read object attributes and associations. There are no sequencing constraints among actions that access the same variable. Such actions must be explicitly coordinated by control flows or other constraints. + + + +Any values contained by a variable must conform to the type of the variable and have cardinalities allowed by the multiplicity of the variable. + + + + + + A variable is owned by a StructuredNode or Activity, but not both. + + + true + + + + + + + A structured activity node that owns the variable. + + + + + + + An activity that owns the variable. + + + + + + + The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable. + + + + + + result = true + + + + + + + + + + + + An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + + + +Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: + +- occurrences of primitive functions, such as arithmetic functions. + +- invocations of behavior, such as activities. + +- communication actions, such as sending of signals. + +- manipulations of objects, such as reading or writing attributes or associations. + + + +Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + + + + The groups of an activity have no supergroups. + + + true + + + + + The nodes of the activity must include one ActivityParameterNode for each parameter. + + + true + + + + + An activity cannot be autonomous and have a classifier or behavioral feature context at the same time. + + + true + + + + + + If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes). + + + + + + + + + + Edges expressing flow between nodes of the activity. + + + + + + + Top-level partitions in the activity. + + + + + + + If true, all invocations of the activity are handled by the same execution. + + + + + + + + + Top-level structured nodes in the activity. + + + + + + + + + + Top-level variables in the activity. + + + + + + + + + + Top-level groups in the activity. + + + + + + + + + + Nodes coordinated by the activity. + + + + + + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be replaced in generalization. + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be contained in interruptible regions. + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. + + + + Activity nodes can only be owned by activities or groups. + + + true + + + + + Activity nodes may be owned by at most one structured node. + + + true + + + + + + Edges that have the node as source. + + + + + + + Edges that have the node as target. + + + + + + + Inherited nodes replaced by this node in a specialization of the activity. + + + + + + + Partitions containing the node. + + + + + + + Interruptible regions containing the node. + + + + + + + Structured activity node containing the node. + + + + + + + + + + Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + Activity containing the node. + + + + + + + + A sequence node is a structured activity node that executes its actions in order. + + + + + + + + An ordered set of executable nodes. + + + + + + + + An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise. + + + An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. In CompleteActivities, action is extended to have pre- and postconditions. + + + An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. + + + + + + + + The ordered set of output pins connected to the Action. The action places its results onto pins in this set. + + + + + + + + + + The ordered set of input pins connected to the Action. These are among the total set of inputs. + + + + + + + + + + The classifier that owns the behavior of which this action is a part. + + + + + + + + + + Constraint that must be satisfied when execution is started. + + + + + + + + + + Constraint that must be satisfied when executed is completed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A conditional node consists of one or more clauses. Each clause consists of a test section and a body section. When the conditional node begins execution, the test sections of the clauses are executed. If one or more test sections yield a true value, one of the corresponding body sections will be executed. If more than one test section yields a true value, only one body section will be executed. The choice is nondeterministic unless the test sequence of clauses is specified. If no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node. + + + +In general, test section may be executed in any order, including simultaneously (if the underlying execution architecture supports it). The result may therefore be nondeterministic if more than one test section can be true concurrently. To enforce ordering of evaluation, sequencing constraints may be specified among clauses. One frequent case is a total ordering of clauses, in which case the clause execution order is determinate. If it is impossible for more than one test section to evaluate true simultaneously, the result is deterministic and it is unnecessary to order the clauses, as ordering may impose undesirable and unnecessary restrictions on implementation. Note that, although evaluation of test sections may be specified as concurrent, this does not require that the implementation evaluate them in parallel; it merely means that the model does not impose any order on evaluation. + + + +An "else" clause is a clause that is a successor to all other clauses in the conditional and whose test part always returns true. + + + +Output values created in the test or body section of a clause are potentially available for use outside the conditional. However, any value used outside the conditional must be created in every clause, otherwise an undefined value would be accessed if a clause not defining the value were executed. + + + + The result output pins have no incoming edges. + + + true + + + + + + If true, the modeler asserts that at most one test will succeed. + + + + + + If true, the modeler asserts that at least one test will succeed. + + + + + + + + + Set of clauses composing the conditional. + + + + + + + + + + A list of output pins that constitute the data flow outputs of the conditional. + + + + + + + + A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins when merged with CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution. + + + +Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of "atomicity", which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results. + + + + + A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins in CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution. + + + +Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node. + + + +Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of "atomicity", which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results. + + + + + + The edges owned by a structured node must have source and target nodes in the structured node, and vice versa. + + + true + + + + + + + + + + + A variable defined in the scope of the structured activity node. It has no value and may not be accessed + + + + + + + + + + Nodes immediately contained in the group. + + + + + + + + + + Activity immediately containing the node. + + + + + + + If true, then the actions in the node execute in isolation from actions outside the node. + + + + + + + + + Edges immediately contained in the structured node. + + + + + + + + Each section is a well-nested subregion of the activity whose nodes follow any predecessors of the loop and precede any successors of the loop. The test section may precede or follow the body section. The setup section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the test produces a false value. The results of the final execution of the test or body are available after completion of execution of the loop. + + + + Loop variable inputs must not have outgoing edges. + + + true + + + + + The bodyOutput pins are output pins on actions in the body of the loop node. + + + true + + + + + The result output pins have no incoming edges. + + + true + + + + + + If true, the test is performed before the first execution of the body. +If false, the body is executed once before the test is performed. + + + + + + + The set of nodes and edges that perform the repetitive computations of the loop. The body section is executed as long as the test section produces a true value. + + + + + + + The set of nodes and edges that initialize values or perform other setup computations for the loop. + + + + + + + An output pin within the test fragment the value of which is examined after execution of the test to determine whether to execute the loop body. + + + + + + + The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed. + + + + + + + + + + A list of output pins that constitute the data flow output of the entire loop. + + + + + + + + + + A list of output pins owned by the loop that hold the values of the loop variables during an execution of the loop. When the test fails, the values are movied to the result pins of the loop. + + + + + + + A list of output pins within the body fragment the values of which are moved to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits. + + + + + + + + + + A list of values that are moved into the loop variable pins before the first iteration of the loop. + + + + + + + + A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true. + + + + The decider output pin must be for the test body or a node contained by the test body as a structured node. + + + true + + + + + The bodyOutput pins are output pins on actions in the body of the clause. + + + true + + + + + + A nested activity fragment with a designated output pin that specifies the result of the test. + + + + + + + A nested activity fragment that is executed if the test evaluates to true and the clause is chosen over any concurrent clauses that also evaluate to true. + + + + + + + A set of clauses whose tests must all evaluate false before the current clause can be tested. + + + + + + + A set of clauses which may not be tested unless the current clause tests false. + + + + + + + An output pin within the test fragment the value of which is examined after execution of the test to determine whether the body should be executed. + + + + + + + A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node or conditional node after execution of the clause body. + + + + + + + + ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow. + + + + The source and target of an edge must be in the same activity as the edge. + + + true + + + + + Activity edges may be owned only by activities or groups. + + + true + + + + + Activity edges may be owned by at most one structured node. + + + true + + + + + + Activity containing the edge. + + + + + + + Node from which tokens are taken when they traverse the edge. + + + + + + + Node to which tokens are put when they traverse the edge. + + + + + + + Inherited edges replaced by this edge in a specialization of the activity. + + + + + + + Partitions containing the edge. + + + + + + + + + + Specification evaluated at runtime to determine if the edge can be traversed. + + + + + + + + + + Number of tokens consumed from the source node on each traversal. + + + + + + + Region that the edge can interrupt. + + + + + + + Structured activity node containing the edge. + + + + + + + + + + Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivityGroup. + + + Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. + +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + + All nodes and edges of the group must be in the same activity as the group. + + + true + + + + + No node or edge in a group may be contained by its subgroups or its containing groups, transitively. + + + true + + + + + Groups may only be owned by activities or groups. + + + true + + + + + + + + + Groups immediately contained in the group. + + + + + + + + + + Group immediately containing the group. + + + + + + + Nodes immediately contained in the group. + + + + + + + Activity containing the group. + + + + + + + Edges immediately contained in the group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An expansion node is an object node used to indicate a flow across the boundary of an expansion region. A flow into a region contains a collection that is broken into its individual elements inside the region, which is executed once per element. A flow out of a region combines individual elements into a collection for use outside the region. + + + + + The expansion region for which the node is an output. + + + + + + + The expansion region for which the node is an input. + + + + + + + + An expansion region is a strictly nested region of an activity with explicit input and outputs (modeled as ExpansionNodes). Each input is a collection of values. If there are multiple inputs, each of them must hold the same kind of collection, although the types of the elements in the different collections may vary. The expansion region is executed once for each element (or position) in the input collection. + + + +The number of output collections can differ from the number of input collections. On each execution of the region, an output value from the region is inserted into an output collection at the same position as the input elements. If the region execution ends with no output, then nothing is added to the output collection. When this happens the output collection will not have the same number of elements as the input collections, the region acts as a filter. If all the executions provide an output to the collection, then the output collections will have the same number of elements as the input collections. + + + +The inputs and outputs to an expansion region are modeled as ExpansionNodes. From "outside" of the region, the values on these nodes appear as collections. From "inside" the region the values appear as elements of the collections. Object flow edges connect pins outside the region to input and output expansion nodes as collections. Object flow edges connect pins inside the region to input and output expansion nodes as individual elements. From the inside of the region, these nodes are visible as individual values. If an expansion node has a name, it is the name of the individual element within the region. + + + +Any object flow edges that cross the boundary of the region, without passing through expansion nodes, provide values that are fixed within the different executions of the region. + + + + An ExpansionRegion must have one or more argument ExpansionNodes and zero or more result ExpansionNodes. + + + true + + + + + + The way in which the executions interact: + +parallel: all interactions are independent + +iterative: the interactions occur in order of the elements + +stream: a stream of values flows into a single execution + + + + + + + An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete. + + + + + + + An object node that holds a separate element of the input collection during each of the multiple executions of the region. + + + + + + + + ExpansionKind is an enumeration type used to specify how multiple executions of an expansion region interact. + + + + The executions are independent. They may be executed concurrently. + + + + + The executions are dependent and must be executed one at a time, in order of the collection elements. + + + + + A stream of collection elements flows into a single execution, in order of the collection elements. + + + + + + An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers. + + + + + + + + A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node. + + + + + + + + An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node. + + + + The exception handler and its input object node are not the source or target of any edge. + + + true + + + + + The result pins of the exception handler body must correspond in number and types to the result pins of the protected node. + + + true + + + + + The handler body has one input, and that input is the same as the exception input. + + + true + + + + + An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa. + + + true + + + + + + The node protected by the handler. The handler is examined if an exception propagates to the outside of the node. + + + + + + + A node that is executed if the handler satisfies an uncaught exception. + + + + + + + An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute. + + + + + + + The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body. + + + + + + + + + + + + + + + + + + + + + + In the metamodel, a ComponentRealization is a subtype of Dependencies::Realization. + + + + + + + + + + + + + + Each connector may be attached to two or more connectable elements, each representing a set of instances. Each connector end is distinct in the sense that it plays a distinct role in the communication realized over a connector. The communications realized over a connector may be constrained by various constraints (including type constraints) that apply to the attached connectable elements. + + + In the metamodel, a connector kind attribute is added to the Connector metaclass. Its value is an enumeration type with valid values 'assembly' or 'delegation'. + + + + The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any. + + + true + + + + + The connectable elements attached to the ends of a connector must be compatible. + + + true + + + + + The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles. + + + true + + + + + A delegation connector must only be defined between used Interfaces or Ports of the same kind, e.g. between two provided Ports or between two required Ports. + + + true + + + + + If a delegation connector is defined between a used Interface or Port and an internal Part Classifier, then that Classifier must have an 'implements' relationship to the Interface type of that Port. + + + true + + + + + If a delegation connector is defined between a source Interface or Port and a target Interface or Port, then the target Interface must support a signature compatible subset of Operations of the source Interface or Port. + + + true + + + + + In a complete model, if a source Port has delegation connectors to a set of delegated target Ports, then the union of the Interfaces of these target Ports must be signature compatible with the Interface that types the source Port. + + + true + + + + + An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port. + + + true + + + + + + An optional association that specifies the link corresponding to this connector. + + + + + + + A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. + +The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced. + + + + + + + + + + A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered. + + + + + + + Indicates the kind of connector. + + + + + + + + + + + + ConnectorKind is an enumeration of the following literal values: +• assembly Indicates that the connector is an assembly connector. +• delegation Indicates that the connector is a delegation connector. + + + + + Indicates that the connector is an assembly connector. + + + + + Indicates that the connector is a delegation connector. + + + + + + + + + + + + + + + + + + + + + + + + + + A component is a subtype of Class which provides for a Component having attributes and operations, and being able to participate in Associations and Generalizations. A Component may form the abstraction for a set of realizingClassifiers that realize its behavior. In addition, because a Class itself is a subtype of an EncapsulatedClassifier, a Component may optionally have an internal structure and own a set of Ports that formalize its interaction points. + + + +A component has a number of provided and required Interfaces, that form the basis for wiring components together, either using Dependencies, or by using Connectors. A provided Interface is one that is either implemented directly by the component or one of its realizingClassifiers, or it is the type of a provided Port of the Component. A required interface is designated by a Usage Dependency from the Component or one of its realizingClassifiers, or it is the type of a required Port. + + + + + + + + The kind of instantiation that applies to a Component. If false, the component is instantiated as an addressable object. If true, the Component is defined at design-time, but at runtime (or execution-time) an object specified by the Component does not exist, that is, the component is instantiated indirectly, through the instantiation of its realizing classifiers or parts. Several standard stereotypes use this meta attribute, e.g. «specification, «focus», «subsystem». + + + + + + + + + The interfaces that the component requires from other components in its environment in order to be able to offer its full set of provided functionality. These interfaces may be Used by the Component or any of its realizingClassifiers, or they may be the Interfaces that are required by its public Ports. + + + + + + + + + + The interfaces that the component exposes to its environment. These interfaces may be Realized by the Component or any of its realizingClassifiers, or they may be the Interfaces that are provided by its public Ports. + + + + + + + + + + The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior. + + + + + + + + + + The set of PackageableElements that a Component owns. In the namespace of a component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g. Classes, Interfaces, Components, Packages, Use cases, Dependencies (e.g. mappings), and Artifacts. + + + + + + + Utility returning the set of realized interfaces of a component: + + + + result = (classifier.clientDependency-> +select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))-> +collect(dependency|dependency.client) + + + + + + + + + + Utility returning the set of used interfaces of a component: + + + + result = (classifier.supplierDependency-> +select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))-> +collect(dependency|dependency.supplier) + + + + + + + + + + + + + + result = let usedInterfaces = UsedInterfaces(self) and + + let realizingClassifierUsedInterfaces = UsedInterfaces(self.realizingClassifier) and + + let typesOfUsedPorts = self.ownedPort.required in + + ((usedInterfaces->union(realizingClassifierUsedInterfaces))-> + + union(typesOfUsedPorts))->asSet() + + + + + + + + + + + + + + result = let implementedInterfaces = self.implementation->collect(impl|impl.contract) and + + let realizedInterfaces = RealizedInterfaces(self) and + + let realizingClassifierInterfaces = RealizedInterfaces(self.realizingClassifier) and + + let typesOfRequiredPorts = self.ownedPort.provided in + + (((implementedInterfaces->union(realizedInterfaces)->union(realizingClassifierInterfaces))-> + + union(typesOfRequiredPorts))->asSet() + + + + + + + + + + + + + + + + + + In the metamodel, a Node is a subclass of Class. It is associated with a Deployment of an Artifact. It is also associated with a set of Elements that are deployed on it. This is a derived association in that these PackageableElements are involved in a Manifestation of an Artifact that is deployed on the Node. Nodes may have an internal structure defined in terms of parts and connectors associated with them for advanced modeling applications. + + + + The internal structure of a Node (if defined) consists solely of parts of type Node. + + + true + + + + + + + + + + The Nodes that are defined (nested) within the Node. + + + + + + + + A Device is a physical computational resource with processing capability upon which artifacts may be deployed for execution. Devices may be complex, i.e. they may consist of other devices. In the metamodel, a Device is a subclass of Node. + + + + + + In the metamodel, a ExecutionEnvironment is a subclass of Node. It is usually part of a general Node, representing the physical hardware environment on which the ExecutionEnvironment resides. In that environment, the ExecutionEnvironment implements a standard set of services that Components require at execution time (at the modeling level these services are usually implicit). For each component Deployment, aspects of these services may be determined by properties in a DeploymentSpecification for a particular kind of ExecutionEnvironment. + + + + + + In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments. + + + + + + + + The set of Deployments for a DeploymentTarget. + + + + + + + + + + The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget. + + + + + + + + + + + result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement) + + + + + + + + + + + In the metamodel, DeployedArtifact is an abstract metaclass that is a specialization of NamedElement. A DeployedArtifact is involved in one or more Deployments to a DeploymentTarget. + + + + + + In the metamodel, CommunicationPath is a subclass of Association. + + + + The association ends of a CommunicationPath are typed by DeploymentTargets. + + + result = self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget)) + + + + + + + An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity. + +The description may include: + + + +- Classification of the entity by one or more classifiers of which the entity is an instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity. + +- The kind of instance, based on its classifier or classifiers -- for example, an instance specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association. + +- Specification of values of structural features of the entity. Not all structural features of all classifiers of the instance specification need be represented by slots, in which case the instance specification is a partial description. + +- Specification of how to compute, derive or construct the instance (optional). + + + +InstanceSpecification is a concrete class. + + + + + In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact. + + + + The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification. + + + slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature))) + + + + + One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification. + + + classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() <= 1))) + + + + + An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node. + + + true + + + + + An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact. + + + true + + + + + + + + The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them. + + + + + + + + + + A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description. + + + + + + + + + + A specification of how to compute, derive, or construct the instance. + + + + + + + + In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations to other Artifacts, e.g. composition associations. Artifacts can be instantiated to represent detailed copy semantics, where different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values, e.g. for a 'time-stamp' property. + + + As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by specializing the abstract superclass. + + + + + + A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator. + + + + + + + + + The Artifacts that are defined (nested) within the Artifact. + +The association is a specialization of the ownedMember association from Namespace to NamedElement. + + + + + + + + + + + + The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact. + + + + + + + + + + The Operations defined for the Artifact. The association is a specialization of the ownedMember association. + + + + + + + + + + The attributes or association ends defined for the Artifact. + +The association is a specialization of the ownedMember association. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the metamodel, Deployment is a subtype of Dependency. + + + A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files. + + + + + The Artifacts that are deployed onto a Node. This association specializes the supplier association. + + + + + + + The DeployedTarget which is the target of a Deployment. + + + + + + + + + + The specification of properties that parameterize the deployment and execution of one or more Artifacts. This association is specialized from the ownedMember association. + + + + + + + + In the metamodel, a DeploymentSpecification is a subtype of Artifact. It defines a set of deployment properties that are specific to a certain Container type. An instance of a DeploymentSpecification with specific values for these properties may be contained in a complex Artifact. + + + + The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components). + + + self.deployment->forAll (d | d.location.deployedElements->forAll (de | + + de.oclIsKindOf(Component))) + + + + + The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment. + + + result = self.deployment->forAll (d | d.location..oclIsKindOf(ExecutionEnvironment)) + + + + + + The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'. + + + + + + The location where a component Artifact executes. This may be a local or remote location. + + + + + + The deployment with which the DeploymentSpecification is associated. + + + + + + + + + + + A state machine owns one or more regions, which in turn own vertices and transitions. + +The behaviored classifier context owning a state machine defines which signal and call triggers are defined for the state machine, and which attributes and operations are available in activities of the state machine. Signal triggers and call triggers for the state machine are defined according to the receptions and operations of this classifier. + + + +As a kind of behavior, a state machine may have an associated behavioral feature (specification) and be the method of this behavioral feature. In this case the state machine specifies the behavior of this behavioral feature. The parameters of the state machine in this case match the parameters of the behavioral feature and provide the means for accessing (within the state machine) the behavioral feature parameters. + + + +A state machine without a context classifier may use triggers that are independent of receptions or operations of a classifier, i.e. either just signal triggers or call triggers based upon operation template parameters of the (parameterized) statemachine. + + + + + + The classifier context of a state machine cannot be an interface. + + + context->notEmpty() implies not context.oclIsKindOf(Interface) + + + + + The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature. + + + specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context)) + + + + + The connection points of a state machine are pseudostates of kind entry point or exit point. + + + conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint) + + + + + A state machine as the method for a behavioral feature cannot have entry/exit connection points. + + + specification->notEmpty() implies connectionPoint->isEmpty() + + + + + + + + + The regions owned directly by the state machine. + + + + + + + + + + The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state. + + + + + + + The state machines of which this is an extension. + + + + + + + + The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy. + + + + true + + + + + + + + + The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean + + + + + + result = if (s2 = s1) then +true +else if (s1.container->isEmpty) then +true +else if (s2.container->isEmpty) then +false +else (ancestor (s1, s2.container)) + + + + + + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine. + + + + result = true + + + + + + + + + + + The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines. + + + + result = true + + + + + + + + + + + + A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type. + + + + A fork segment must not have guards or triggers. + + + (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty()) + + + + + A join segment must not have guards or triggers. + + + (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty()) + + + + + A fork segment must always target a state. + + + (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State)) + + + + + A join segment must always originate from a state. + + + (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State)) + + + + + Transitions outgoing pseudostates may not have a trigger. + + + source.oclIsKindOf(Pseudostate) and +((source.kind <> #junction) and (source.kind <> #join) and (source.kind <> #initial)) implies trigger->isEmpty() + + + + + + An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype “create”. + + + self.source.oclIsKindOf(Pseudostate) implies +(self.source.oclAsType(Pseudostate).kind = #initial) implies +(self.source.container = self.stateMachine.top) implies +((self.trigger->isEmpty) or +(self.trigger.stereotype.name = 'create')) + + + + + + In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes. + + + + + true + + + + + + Indicates the precise type of the transition. + + + + + Designates the region that owns this transition. + + + + + + + Designates the originating vertex (state or pseudostate) of the transition. + + + + + + + Designates the target vertex that is reached when the transition is taken. + + + + + + + The transition that is redefined by this transition. + + + + + + + + + + A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed. + + + + + + + + + + References the classifier in which context this element may be redefined. + + + + + + + + + + Specifies an optional behavior to be performed when the transition fires. + + + + + + + + + + Specifies the triggers that may fire the transition. + + + + + + + The redefinition context of a transition is the nearest containing statemachine. + + + + result = let sm = containingStateMachine() in +if sm.context->isEmpty() or sm.general->notEmpty() then +sm +else +sm.context +endif + + + + + + + The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger. + + + + result = (redefinee.oclIsKindOf(Transition) and + + let trans: Transition = redefinee.oclAsType(Transition) in + + (source() = trans.source() and trigger() = tran.trigger()) + + + + + redefinee.isRedefinitionContextValid(self) + + + + + + + + + + + The query containingStateMachine() returns the state machine that contains the transition either directly or transitively. + + + + result = container.containingStateMachine() + + + + + + + + A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions. + + + + + The region that contains this vertex. + + + + + + + Specifies the transitions departing from this vertex. + + + + + + + Specifies the transitions entering this vertex. + + + + + + + The operation containingStatemachine() returns the state machine in which this Vertex is defined + + + + result = if not container->isEmpty() +then +-- the container is a region +container.containingStateMachine() +else if (oclIsKindOf(Pseudostate)) then +-- entry or exit point? +if (kind = #entryPoint) or (kind = #exitPoint) then +stateMachine +else if (oclIsKindOf(ConnectionPointReference)) then +state.containingStateMachine() -- no other valid cases possible +endif + + + + + + + + + Pseudostates are typically used to connect multiple transitions into more complex state transitions paths. For example, by combining a transition entering a fork pseudostate with a set of transitions exiting the fork pseudostate, we get a compound transition that leads to a set of orthogonal target states. + + + + An initial vertex can have at most one outgoing transition. + + + (self.kind = #initial) implies (self.outgoing->size <= 1) + + + + + History vertices can have at most one outgoing transition. + + + ((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies +(self.outgoing->size <= 1) + + + + + + In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition. + + + (self.kind = #join) implies +((self.outgoing->size = 1) and (self.incoming->size >= 2)) + + + + + + All transitions incoming a join vertex must originate in different regions of an orthogonal state. + + + (self.kind = #join) implies + self.incoming->forAll (t1, t2 | t1<>t2 implies + (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal)) + + + + + In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition. + + + (self.kind = #fork) implies +((self.incoming->size = 1) and (self.outgoing->size >= 2)) + + + + + + All transitions outgoing a fork vertex must target states in different regions of an orthogonal state. + + + (self.kind = #fork) implies + self.outgoing->forAll (t1, t2 | t1<>t2 implies + (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal)) + + + + + In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition. + + + (self.kind = #junction) implies +((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + + + + + + In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition. + + + (self.kind = #choice) implies +((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + + + + + + The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard. + + + (self.kind = #initial) implies (self.outgoing.guard->isEmpty() + + and self.outgoing.trigger->isEmpty()) + + + + + + Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice. + + + + + The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint. + + + + + + + The State that owns the pseudostate. If a Pseudostat is owned by a State, then it cannot also be owned by a StateMachine. + + + + + + + + A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed. + + + + A final state cannot have any outgoing transitions. + + + self.outgoing->size() = 0 + + + + + A final state cannot have regions. + + + self.region->size() = 0 + + + + + A final state cannot reference a submachine. + + + self.submachine->isEmpty() + + + + + A final state has no entry behavior. + + + self.entry->isEmpty() + + + + + A final state has no exit behavior. + + + self.exit->isEmpty() + + + + + A final state has no state (doActivity) behavior. + + + self.doActivity->isEmpty() + + + + + + + Connection point references of a submachine state can be used as sources/targets of transitions. They represent entries into or exits out of the submachine state machine referenced by the submachine state. + + + + The entry Pseudostates must be Pseudostates with kind entryPoint. + + + entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint) + + + + + The exit Pseudostates must be Pseudostates with kind exitPoint. + + + exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint) + + + + + + The entryPoint kind pseudo states corresponding to this connection point. + + + + + + + The State in which the connection point refreshens are defined. + + + + + + + The exitPoints kind pseudo states corresponding to this connection point. + + + + + + + + PseudoStateKind is an enumeration of the following literal values: +• initial +• deepHistory +• shallowHistory +• join +• fork +• junction +• choice +• entryPoint +• exitPoint +• terminate + + + + + An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard. + + + + + DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed. + + + + + ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed. + + + + + Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers. + + + + + Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices + +(i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers. + + + + + Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted “else” may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below). + + + + + Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above). + + + + + An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region. + + + + + An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state. + + + + + Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction. + + + + + + A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions. + + + + A region can have at most one initial vertex + + + self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> +select(p : Pseudostate | p.kind = #initial)->size() <= 1 + + + + + + A region can have at most one deep history vertex + + + self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> +select(p : Pseudostate | p.kind = #deepHistory)->size() <= 1 + + + + + + A region can have at most one shallow history vertex + + + self.subvertex->select(v | v.oclIsKindOf(Pseudostate))-> +select(p : Pseudostate | p.kind = #shallowHistory)->size() <= 1 + + + + + + If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa. + + + (stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty()) + + + + + + + + + + The set of vertices that are owned by this region. + + + + + + + + + + The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state. + + + + + + + The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State. + + + + + + + The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine. + + + + + + + The region of which this region is an extension. + + + + + + + + + + References the classifier in which context this element may be redefined. + + + + + + + The redefinition context of a region is the nearest containing statemachine + + + + result = let sm = containingStateMachine() in +if sm.context->isEmpty() or sm.general->notEmpty() then +sm +else +sm.context +endif + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region. + + + + result = true + + + + + + + + + + The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region. + + + + result = true + + + + + + + + + + + The operation containingStateMachine() returns the sate machine in which this Region is defined + + + + result = if stateMachine->isEmpty() +then +state.containingStateMachine() +else +stateMachine +endif + + + + + + + + TransitionKind is an enumeration of the following literal values: +• external +• internal +• local + + + + + The source state of a transition with transition kind local must be a composite state. + + + kind=#local implies owner.source.isComposite + + + + + The source state of a transition with transition kind external must be a composite state. + + + kind=#external implies owner.source.isComposite + + + + + kind=internal implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state. + + + + + kind=local implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered. + + + + + kind=external implies that the transition, if triggered, will exit the composite (source) state. + + + + + + A time event specifies a point in time by an expression. The expression might be absolute or might be relative to some other point in time. + + + Extends TimeEvent to be defined relative to entering the current state of the executing state machine. + + + + The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine. + + + true + + + + + + Specifies whether it is relative or absolute time. + + + + + + + + + Specifies the corresponding time deadline. + + + + + + + + + + + + + + + + + substate kind = stub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. + + + +Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine. + + + +A protocol state machine is owned by a classifier. The classifiers owning a general state machine and an associated specific state machine are generally also connected by a generalization or a realization link. + + + + + + + Specifies the state machine which conforms to the general state machine. + + + + + + + Specifies the protocol state machine to which the specific state machine conforms. + + + + + + + + An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface. + +Since interfaces are declarations, they are not instantiable. Instead, an interface specification is implemented by an instance of an instantiable classifier, which means that the instantiable classifier presents a public facade that conforms to the interface specification. Note that a given classifier may implement more than one interface and that an interface may be implemented by a number of different classifiers. + + + + + Adds the capability for interfaces to include receptions (in addition to operations). + + + Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface. + + + + The visibility of all features owned by an interface must be public. + + + self.feature->forAll(f | f.visibility = #public) + + + + + + + + + The attributes (i.e. the properties) owned by the class. + + + + + + + + + + The operations owned by the class. + + + + + + + + + + References all the Classifiers that are defined (nested) within the Class. + + + + + + + References all the Interfaces redefined by this Interface. + + + + + + + + + + Receptions that objects providing this interface are willing to accept. + + + + + + + + + + References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface. + + + + + + + + Ports represent interaction points between a classifier and its environment. The interfaces associated with a port specify the nature of the interactions that may occur over a port. The required interfaces of a port characterize the requests which may be made from the classifier to its environment through this port. The provided interfaces of a port characterize requests to the classifier that its environment may make through this port. + + + +A port has the ability to specify that any requests arriving at this port are handled by the behavior of the instance of the owning classifier, rather than being forwarded to any contained instances, if any. + + + + + Port is defined as a specialization of the general Port, adding an association to a protocol state machine. + + + + The required interfaces of a port must be provided by elements to which the port is connected. + + + true + + + + + Port.aggregation must be composite. + + + true + + + + + When a port is destroyed, all connectors attached to this port will be destroyed also. + + + true + + + + + A defaultValue for port cannot be specified when the type of the Port is an Interface + + + true + + + + + + Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain. + + + + + + + If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation. + + + + + + + + + + References the interfaces specifying the set of operations and receptions which the classifier expects its environment to handle. This association is derived as the set of interfaces required by the type of the port or its supertypes. + + + + + + + A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes. + + + + + + + + + + References the interfaces specifying the set of operations and receptions which the classifier offers to its environment, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived from the interfaces realized by the type of the port or by the type of the port, if the port was typed by an interface. + + + + + + + + + References an optional protocol state machine which describes valid interactions at this interaction point. + + + + + + + + A protocol transition (transition as specialized in the ProtocolStateMachines package) specifies a legal transition for an operation. Transitions of protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation (referred BehavioralFeature) that belongs to the context classifier of the protocol state machine. + + + +The protocol transition specifies that the associated (referred) operation can be called for an instance in the origin state under the initial condition (guard), and that at the end of the transition, the destination state will be reached under the final condition (post). + + + + + + A protocol transition always belongs to a protocol state machine. + + + container.belongsToPSM() + + + + + A protocol transition never has associated actions. + + + effect->isEmpty() + + + + + If a protocol transition refers to an operation (i. e. has a call trigger corresponding to an operation), then that operation should apply to the context classifier of the state machine of the protocol transition. + + + true + + + + + + + + + Specifies the post condition of the transition which is the condition that should be obtained once the transition is triggered. This post condition is part of the post condition of the operation connected to the transition. + + + + + + + + + + + + This association refers to the associated operation. It is derived from the operation of the call trigger when applicable. + + + + + + + + + + Specifies the precondition of the transition. It specifies the condition that should be verified before triggering the transition. This guard condition added to the source state will be evaluated as part of the precondition of the operation referred by the transition if any. + + + + + + + The operation belongsToPSM () checks if the region belongs to a protocol state machine + + + + result = if not stateMachine->isEmpty() then +oclIsTypeOf(ProtocolStateMachine) +else if not state->isEmpty() then +state.container.belongsToPSM () +else false + + + + + + + + + + + A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence. + + + + A protocol state machine must only have a classifier context, not a behavioral feature context. + + + (not context->isEmpty( )) and specification->isEmpty() + + + + + All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package) + + + region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition))) + + + + + The states of a protocol state machine cannot have entry, exit, or do activity actions. + + + region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies +(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty()))) + + + + + + Protocol state machines cannot have deep or shallow history pseudostates. + + + region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies +((v.kind <> #deepHistory) and (v.kind <> #shallowHistory))))) + + + + + + If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined). + + + true + + + + + + + + + Conformance between protocol state machines. + + + + + + + + A state models a situation during which some (usually implicit) invariant condition holds. The invariant may represent a static situation such as an object waiting for some external event to occur. However, it can also model dynamic conditions such as the process of performing some behavior (i.e., the model element under consideration enters the state when the behavior commences and leaves it as soon as the behavior is completed). The following kinds of states are distinguished: + +o Simple state, + +o composite state, and + +o submachine state. + +A composite state is either a simple composite state (with just one region) or an orthogonal state (with more than one region). + + + +Simple state + +A simple state is a state that does not have substates, i.e. it has no regions and it has no submachine state machine. + + + +Composite state + +A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions. A given state may only be decomposed in one of these two ways. + +Any state enclosed within a region of a composite state is called a substate of that composite state. It is called a direct substate when it is not contained by any other state; otherwise it is referred to as a indirect substate. + +Each region of a composite state may have an initial pseudostate and a final state. A transition to the enclosing state represents a transition to the initial pseudostate in each region. A newly-created object takes it's topmost default transitions, originating from the topmost initial pseudostates of each region. + + + +A transition to a final state represents the completion of behavior in the enclosing region. Completion of behavior in all orthogonal regions represents completion of behavior by the enclosing state and triggers a completion event on the enclosing state. Completion of the topmost regions of an object corresponds to its termination. + + + +An entry pseudostate is used to join an external transition terminating on that entry point to an internal transition emanating from that entry point. An exit pseudostate is used to join an internal transition terminating on that exit point to an external transition emanating from that exit point. The main purpose of such entry and exit points is to execute the state entry and exit actions respectively in between the actions that are associated with the joined transitions. + + + +Semantic variation point (default entry rule) + +If a transition terminates on an enclosing state and the enclosed regions do not have an initial pseudostate, the interpretation of this situation is a semantic variation point. In some interpretations, this is considered an ill-formed model. That is, in those cases the initial pseudostate is mandatory. + +An alternative interpretation allows this situation and it means that, when such a transition is taken, the state machine stays in the composite state, without entering any of the regions or their substates. + + + +Submachine state + +A submachine state specifies the insertion of the specification of a submachine state machine. The state machine that contains the submachine state is called the containing state machine. The same state machine may be a submachine more than once in the context of a single containing state machine. + + + +A submachine state is semantically equivalent to a composite state. The regions of the submachine state machine are the regions of the composite state. The entry, exit and behavior actions, and internal transitions, are defined as part of the state. Submachine state is a decomposition mechanism that allows factoring of common behaviors and their reuse. + +Transitions in the containing state machine can have entry/exit points of the inserted state machine as targets/sources. + + + + + The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration. + + + + There have to be at least two regions in an orthogonal composite state. + + + (self.isOrthogonal) implies +(self.region->size >= 2) + + + + + + Only submachine states can have connection point references. + + + isSubmachineState implies connection->notEmpty ( ) + + + + + The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine. + + + true + + + + + A state is not allowed to have both a submachine and regions. + + + isComposite implies not isSubmachineState + + + + + Only composite states can have entry or exit pseudostates defined. + + + connectionPoint->notEmpty() implies isComoposite + + + + + Only entry or exit pseudostates can serve as connection points. + + + connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit) + + + + + + + + + + + A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region. + + + + + + + + + A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions. + + + + + + + + + A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine. + + + + + + + + + A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine). + + + + + + The state machine that is to be inserted in place of the (submachine) state. + + + + + + + + + + The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate. + + + + + + + The state of which this state is a redefinition. + + + + + + + + + + The regions owned directly by the state. + + + + + + + + + + References the classifier in which context this element may be redefined. + + + + + + + + + + Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions. + + + + + + + + + + + + An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state. + + + + + + + + + + + + An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution. + + + + + + + + + + An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first. + + + + + + + + + + The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states. + + + + + + + + + + A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred. + + + + + + + + + A simple state is a state without any regions. + + + + result = region.isEmpty() + + + + + + + + + + A composite state is a state with at least one region. + + + + result = region.notEmpty() + + + + + + + + + + An orthogonal state is a composite state with at least 2 regions + + + + result = (region->size () > 1) + + + + + + + + + + Only submachine states can have a reference statemachine. + + + + result = submachine.notEmpty() + + + + + + + + + + The redefinition context of a state is the nearest containing statemachine. + + + + result = let sm = containingStateMachine() in +if sm.context->isEmpty() or sm.general->notEmpty() then +sm +else +sm.context +endif + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state. + + + + result = true + + + + + + + + + + The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions. + + + + result = true + + + + + + + + + + + The query containingStateMachine() returns the state machine that contains the state either directly or transitively. + + + + result = container.containingStateMachine() + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the namespace in which the protocol state machine is defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the metamodel, an AssociationClass is a declaration of a semantic relationship between Classifiers, which has a set of features of its own. AssociationClass is both an Association and a Class. + + + + An AssociationClass cannot be defined between itself and something else. + + + self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self)) + + + + + + + The operation allConnections results in the set of all AssociationEnds of the Association. + + + + result = memberEnd->union ( self.parents ()->collect (p | p.allConnections () ) + + + + + + + + + + + + + + TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding. + + + + Parameters must own the elements they parameter or those elements must be owned by the element being templated. + + + templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement) + + + + + + The ordered set of all formal template parameters for this template signature. + + + + + + + + + + The formal template parameters that are owned by this template signature. + + + + + + + The element that owns this template signature. + + + + + + + + NamedElement has a visibility attribute. + + + A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass. + + + NamedElement specializes Kernel::NamedElement and adds a composition association to Expression. + + + + If there is no name, or one of the containing namespaces has no name, there is no qualified name. + + + (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) + + implies self.qualifiedName->isEmpty() + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies + self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + + + + + If a NamedElement is not owned by a Namespace, it does not have a visibility. + + + namespace->isEmpty() implies visibility->isEmpty() + + + + + + + + + The name of the NamedElement. + + + + + + + + Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility. + + + + + + + + + + A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself. + + + + + + + + Indicates the dependencies that reference the client. + + + + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + + + + The string expression used to define the name of this named element. + + + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + + result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() +then + self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) +else + Set{} +endif + + + + + + + + + + The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. + + + + result = if self.namespace->isEmpty() +then Sequence{} +else self.namespace.allNamespaces()->prepend(self.namespace) +endif + + + + + + + + + + The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. + + + + result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) +then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty() +else true +endif + + + + + + + + + + + + The query separator() gives the string that is used to separate names when constructing a qualified name. + + + + result = '::' + + + + + + + + + + + TemplateParameter references a ParameterableElement which is exposed as a formal template parameter in the containing template. + + + + The default must be compatible with the formal template parameter. + + + default->notEmpty() implies default->isCompatibleWith(parameteredElement) + + + + + + The template signature that owns this template parameter. + + + + + + + The element exposed by this template parameter. + + + + + + + + + + The element that is owned by this template parameter. + + + + + + + The element that is the default for this formal template parameter. + + + + + + + + + + The element that is owned by this template parameter for the purpose of providing a default. + + + + + + + + StringExpression is a specialization of the general Expression metaclass which adds the ability to contain sub-expressions and whose operands are exclusively LiteralStrings. + + + + All the operands of a StringExpression must be LiteralStrings + + + operand->forAll (op | op.oclIsKindOf (LiteralString)) + + + + + If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to +define a collating sequence between operands and subexpressions). + + + + if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty() + + + + + + + + + + The StringExpressions that constitute this StringExpression. + + + + + + + The string expression of which this expression is a substring. + + + + + + + The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression. + + + + + + result = if subExpression->notEmpty() +then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue())) +else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value)) + + + + + + + + + + + TemplateBinding is a directed relationship from a bound templateable element to the template signature of the target template. A TemplateBinding owns a set of template parameter substitutions. + + + + Each parameter substitution must refer to a formal template parameter of the target template signature. + + + parameterSubstitution->forAll(b | template.parameter->includes(b.formal)) + + + + + A binding contains at most one parameter substitution for each formal template parameter of the target template signature. + + + template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() <= 1) + + + + + + The element that is bound by this binding. + + + + + + + The template signature for the template that is the target of the binding. + + + + + + + + + + The parameter substitutions owned by this template binding. + + + + + + + + TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding. + + + + The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class. + + + actual->forAll(a | a.isCompatibleWith(formal.parameteredElement)) + + + + + + The formal template parameter that is associated with this substitution. + + + + + + + The optional bindings from this element to templates. + + + + + + + The elements that are the actual parameters for this substitution. + + + + + + + + + + The actual parameters that are owned by this substitution. + + + + + + + + TemplateableElement may contain a template signature which specifies the formal template parameters. A TemplateableElement that contains a template signature is often referred to as a template. TemplateableElement may contain bindings to templates that describe how the templateable element is constructed by replacing the formal template parameters with actual parameters. A TemplateableElement containing bindings is oftenreferred to as a bound element. + + + + + + + + The optional bindings from this element to templates. + + + + + + + + + + The optional template signature specifying the formal template parameters. + + + + + + + The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements. + + + + result = allOwnedElements->select(oclIsKindOf(ParameterableElement)) + + + + + + + + + + The query isTemplate() returns whether this templateable element is actually a template. + + + + result = ownedSignature->notEmpty() + + + + + + + + + + + A ParameterableElement can be referenced by a TemplateParameter when defining a formal template parameter for a template. A ParameterableElement can be referenced by a TemplateParameterSubstitution when used as an actual parameter in a binding of a template. + +ParameterableElement is an abstract metaclass. + + + + + + + The template parameter that exposes this element as a formal parameter. + + + + + + + The formal template parameter that owns this element. + + + + + + + The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints. + + + + result = p->oclIsKindOf(self.oclType) + + + + + + + + + + + The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter. + + + + result = templateParameter->notEmpty() + + + + + + + + + + + Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. + + + +Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type. + + + A property is a structural feature. + +A property related to a classifier by ownedAttribute represents an attribute, and it may also represent an association end. It relates an instance of the class to a value or collection of values of the type of the attribute. + +A property related to an Association by memberEnd or its specializations represents an end of the association. The type of property is the type of the end of the association. + + + + + A property represents a set of instances that are owned by a containing classifier instance. + + + In the metamodel, Property is a specialization of DeploymentTarget. + + + Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type. + + + + + Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. + + + + A multiplicity of a composite aggregation must not have an upper bound greater than 1. + + + A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1. + + + isComposite implies (upperBound()->isEmpty() or upperBound() <= 1) + + + + + Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. + + + self.subsettedProperty->notEmpty() implies + (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc | + self.subsettedProperty->forAll(sp | + sp.subsettingContext()->exists(c | sc.conformsTo(c))))) + + + + + A navigable property can only be redefined or subsetted by a navigable property. + + + (self.subsettedProperty->exists(sp | sp.isNavigable()) implies self.isNavigable()) + and (self.redefinedProperty->exists(rp | rp.isNavigable()) implies self.isNavigable()) + + + + + A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less. + + + self.subsettedProperty->forAll(sp | + self.type.conformsTo(sp.type) and + ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies + self.upperBound()<=sp.upperBound() )) + + + + + Only a navigable property can be marked as readOnly. + + + isReadOnly implies isNavigable() + + + + + A derived union is derived. + + + isDerivedUnion implies isDerived + + + + + A derived union is read only. + + + isDerivedUnion implies isReadOnly + + + + + A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node. + + + true + + + + + A binding of a property template parameter representing an attribute must be to an attribute. + + + (isAttribute(self) and (templateParameterSubstitution->notEmpty()) + + implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal))) + + + + + + + + + If isDerived is true, the value of the attribute is derived from information elsewhere. + + + Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. + + + + + + + This redefines the corresponding attribute in Basic::Property and Abstractions::StructuralFeature. + + + If true, the attribute may only be read, and not written. + + + + + + + Specifies whether the property is derived as the union of all of the properties that are constrained to subset it. + + + + + + + + + + Specifies a String that represents a value to be used when no argument is supplied for the Property. + + + A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated. + + + + + + + + Specifies the kind of aggregation that applies to the Property. + + + none + + + + + + + + If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. + + + This is a derived value, indicating whether the aggregation of the Property is composite or not. + + + + + + + + + + + + + + References the properties that are redefined by this property. + + + + + + + References the owning association of this property, if any. + + + References the owning association of this property. + + + + + + + The DataType that owns this Operation. + + + The DataType that owns this Property. + + + + + + + + + + + + A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated. + + + + + + + + + + In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end. + + + + + + + References the properties of which this property is constrained to be a subset. + + + + + + + References the association of which this property is a member, if any. + + + + + + + + + + An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified. + + + + + + + Designates the optional association end that owns a qualifier attribute. + + + + + + + The query isAttribute() is true if the Property is defined as an attribute of some classifier. + + + + result = Classifier.allInstances->exists(c | c.attribute->includes(p)) + + + + + + + + + + + + + + If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end. + + + + result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2 + then + let otherEnd = (association.memberEnd - self)->any() in + if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif + else Set {} + endif + + + + + + + The value of isComposite is true only if aggregation is composite. + + + + result = (self.aggregation = #composite) + + + + + + + + + + The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined property is derived. + + + The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined attribute is property. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = redefinee.oclIsKindOf(Property) and + let prop : Property = redefinee.oclAsType(Property) in + (prop.type.conformsTo(self.type) and + ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and + ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() <= self.lowerBound()) and + (self.isDerived implies prop.isDerived) and + (self.isComposite implies prop.isComposite)) + + + + + + + + + + + The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends. + + + + result = if association->notEmpty() +then association.endType-type +else if classifier->notEmpty() then Set{classifier} else Set{} endif +endif + + + + + + + + + + The query isNavigable indicates whether it is possible to navigate across the property. + + + The query isNavigable() indicates whether it is possible to navigate across the property. + + + + result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self) + + + + + + + + + + + ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. It adds a specialization to Constructs::TypedElement. + + + ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. + + + ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. + + + + + + The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals. + + + + result = false + + + + + + + + + + The query integerValue() gives a single Integer value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query booleanValue() gives a single Boolean value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query stringValue() gives a single String value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query isNull() returns true when it can be computed that the value is null. + + + + result = false + + + + + + + + + + The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element. + + + + + + result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type) + + + + + + + + + + + + An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element. + + + An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + +One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. + + + + + An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior. + + + An operation may invoke both the execution of method behaviors as well as other behavioral responses. + + + Operation specializes TemplateableElement in order to support specification of template operations and bound operations. + + + + An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' + + + self.ownedParameter->select(par | par.direction = #return)->size() <= 1 + + + + + A bodyCondition can only be specified for a query operation. + + + bodyCondition->notEmpty() implies isQuery + + + + + + + + Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false). + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + Specifies whether the return parameter is ordered or not, if present. + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + Specifies whether the return parameter is unique or not, if present. + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + Specifies the lower multiplicity of the return parameter, if present. + + + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + Specifies the upper multiplicity of the return parameter, if present. + + + + + + + + + + + + The class that owns the operation. + + + The class that owns this operation. + + + + + + + + + + An optional set of Constraints on the state of the system when the Operation is invoked. + + + + + + + + + + An optional set of Constraints specifying the state of the system when the Operation is completed. + + + + + + + References the Operations that are redefined by this Operation. + + + + + + + The DataType that owns this Operation. + + + The DataType that owns this Property. + + + + + + + + + + An optional Constraint on the result values of an invocation of this Operation. + + + + + + + + + + Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + + + Specifies the return result of the operation, if present. + + + + + + + + + + Specifies the ordered set of formal parameters of this BehavioralFeature. + + + Specifies the parameters owned by this Operation. + + + + + + + References the Types representing exceptions that may be raised during an invocation of this operation. + + + + + + + The Interface that owns this Operation. + + + + + + + The template parameter that exposes this element as a formal parameter. + + + + + + + If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false. + + + + result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif + + + + + + + + + + If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true. + + + If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true. + + + + + + result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif + + + + + + + + + + + + + If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + + + If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + + + + + + result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif + + + + + + + + + + + + + If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + + + If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + + + + + + result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif + + + + + + + + + + + + + If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined. + + + + result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif + + + + + + + The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'. + + + The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = (redefinee.oclIsKindOf(Operation) and +let op: Operation = redefinee.oclAsType(Operation) in +self.ownedParameter.size() = op.ownedParameter.size() and +forAll(i | op.ownedParameter[i].type.conformsTo(self.ownedParameter[i].type)) +) + + + + + + + + + + + The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set + + + + result = ownedParameter->select (par | par.direction = #return) + + + + + + + + + + + OperationTemplateParameter is a template parameter where the parametered element is an Operation. + + + + + The operation for this template parameter. + + + + + + + + A packageable element indicates a named element that may be owned directly by a package. + + + PackageableElements are extended to enable any such element to serve as a template parameter. + + + + + + Indicates that packageable elements must always have a visibility, i.e., visibility is not optional. + + + + + + A classifier is a type. It can specify a generalization hierarchy by referencing its general classifiers. A classifier is also a namespace whose members can include features. Classifier is an abstract metaclass. + + + Extends a classifier with the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a UseCase. + + + Classifier is extended with the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier. + + + A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. + +A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers. + +A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. + + + + + A classifier can be parameterized, exposed as a formal template parameter, and specified as an actual parameter in a binding of a template. + + + + Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + + + not self.allParents()->includes(self) + + + + + A classifier may only specialize classifiers of a valid type. + + + self.parents()->forAll(c | self.maySpecializeType(c)) + + + + + Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + + + not self.allParents()->includes(self) + + + + + A classifier may only specialize classifiers of a valid type. + + + self.parents()->forAll(c | self.maySpecializeType(c)) + + + + + The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses. + + + true + + + + + + + + + If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. + + + + + + + + + + + + Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy. + + + + + + + + + + Redefines the corresponding association in Abstractions. Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features. + + + Specifies each feature defined in the classifier. + + + + + + + + + + Specifies all elements inherited by this classifier from the general classifiers. + + + + + + + References the Classifiers that are redefined by this Classifier. + + + + + + + + + + References the general classifier in the Generalization relationship. + + + Specifies the general Classifiers for this Classifier. + + + + + + + + + + References the use cases owned by this classifier. + + + + + + + The set of use cases for which this Classifier is the subject. + + + + + + + + + + References the substitutions that are owned by this Classifier. + + + + + + + + + + Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier. + + + + + + + References a collaboration use which indicates the collaboration that represents this classifier. + + + + + + + + + + References the collaboration uses owned by the classifier. + + + + + + + Designates the GeneralizationSet of which the associated Classifier is a power type. + + + + + + + + + + The optional template signature specifying the formal template parameters. + + + + + + + The template parameter that exposes this element as a formal parameter. + + + + + + + The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + + + + result = self.oclIsKindOf(c.oclType) + + + + + + + + + + + + + + The general classifiers are the classifiers referenced by the generalization relationships. + + + + result = self.parents() + + + + + + + + + + + + + The inheritedMember association is derived by inheriting the inheritable members of the parents. + + + + result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self)) + + + + + + + + + + The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. + + + + result = member->select(oclIsKindOf(Feature)) + + + + + + + + + + The query parents() gives all of the immediate ancestors of a generalized Classifier. + + + + result = generalization.general + + + + + + + + + + The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. + + + + c.allParents()->includes(self) + + + + + result = member->select(m | c.hasVisibilityOf(m)) + + + + + + + + + + + The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. + + + + self.allParents()->collect(c | c.member)->includes(n) + + + + + result = if (self.inheritedMember->includes(n)) then (n.visibility <> #private) else true + + + + + + + + + + + The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. + + + + result = (self=other) or (self.allParents()->includes(other)) + + + + + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. + + + + result = inhs + + + + + + + + + + + + + + The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + + + + result = self.oclIsKindOf(c.oclType) + + + + + + + + + + The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. + + + + result = self.parents()->union(self.parents()->collect(p | p.allParents()) + + + + + + + + + + The query isTemplate() returns whether this templateable element is actually a template. + + + + result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate()) + + + + + + + + + + + ClassifierTemplateParameter is a template parameter where the parametered element is a Classifier in its capacity of being a kind of ParameterableElement. + + + + If "allowSubstitutable" is true, then there must be a constrainingClassifier. + + + allowSubstitutable implies constrainingClassifier->notEmpty() + + + + + + Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter. + + + + + + + The parameterable classifier for this template parameter. + + + + + + + The classifier that is used by default if no argument is provided during template binding. If this property is empty, then there is no default. + + + + + + + The classifier that constrains the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted, otherwise it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument. + + + + + + + + RedefinableTemplateSignature specializes both TemplateSignature and RedefinableElement in order to allow the addition of new formal template parameters in the context of a specializing template Classifier. + + + + The inherited parameters are the parameters of the extended template signature. + + + if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif + + + + + + + The classifier that owns this template signature. + + + + + + + The template signature that is extended by this template signature. + + + + + + + + + + The formal template parameters of the extendedSignature. + + + + + + + The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = redefinee.oclIsKindOf(RedefineableTemplateSignature) + + + + + + + + + + + + A ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier. + + + ConnectableElement is the connectable element of a ConnectableElementTemplateParameter. + +The ConnectableElements attached as role to each ConnectorEnd owned by a Connector must be roles of the classifier that owned the Connector, or they must be ports of such roles. + + + + + + + + Denotes a connector that attaches to this connectable element. + + + + + + + The ConnectableElementTemplateParameter for this ConnectableElement parameter. + + + + + + + + ConnectableElementTemplateParameter is a template parameter where the parametered element is a ConnectableElement. + + + + + The ConnectableElement for this template parameter. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stereotype is a kind of Class that extends Classes through Extensions. Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. Also, stereotype names should not clash with keyword names for the extended model element. + + + + Stereotype names should not clash with keyword names for the extended model element. + + + true + + + + + A Stereotype may only generalize or specialize another Stereotype. + + + generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) + + + + + + Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements. + + + + + + + + A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which are defined as part of Profiles. + + + +A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in this package. + + + +A profile is a restricted form of a metamodel that must always be related to a reference metamodel, such as UML, as described below. A profile cannot be used without its reference metamodel, and defines a limited capability to extendmetaclasses of the reference metamodel. The extensions are defined as stereotypes that apply to existing metaclasses. + + + + An element imported as a metaclassReference is not specialized or generalized in a Profile. + + + self.metaclassReference.importedElement-> + + select(c | c.oclIsKindOf(Classifier) and + + (c.generalization.namespace = self or + + (c.specialization.namespace = self) )->isEmpty() + + + + + All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel. + + + self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())-> + + union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty() + + + + + + + + + References the Stereotypes that are owned by the Profile. + + + + + + + + + + References a metaclass that may be extended. + + + + + + + + + + References a package containing (directly or indirectly) metaclasses that may be extended. + + + + + + + The query allOwningPackages() returns all the directly or indirectly owning packages. + + + + result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages()) + + + + + + + + + + + A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. In addition a package can be merged with other packages. + + + A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. + +In addition a package can be merged with other packages. + + + + + Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter. + + + A Package can have one or more ProfileApplications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles. + + + + If an element that is owned by a package has visibility, it is public or private. + + + self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private) + + + + + + + + + + + References the PackageMerges that are owned by this Package. + + + + + + + + + + Specifies the packageable elements that are owned by this Package. + + + + + + + + + + References the packaged elements that are Types. + + + + + + + + + + References the packaged elements that are Packages. + + + + + + + + + + References the owning package of a package. + + + References the Package that owns this Package. + + + + + + + + + + References the ProfileApplications that indicate which profiles have been applied to the Package. + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. + + + + result = false + + + + + + + + + + The query visibleMembers() defines which members of a Package can be accessed outside it. + + + + result = member->select( m | self.makesVisible(m)) + + + + + + + + + + The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. + + + + self.member->includes(el) + + + + + result = (ownedMember->includes(el)) or +(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or +(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty()) + + + + + + + + + + + + Class is a kind of classifier whose features are attributes and operations. Attributes of a class are represented by instances of Property that are owned by the class. Some of these attributes may represent the navigable ends of binary associations. + + + A class may be designated as active, i.e., each of its instances having its own thread of control, or passive, i.e., each of its instance executing within the context of some other object. A class may also specify which signals the instances of this class handle. + + + Extends the metaclass Class with the capability to have an internal structure and ports. + + + Class has derived association that indicates how it may be extended through one or more stereotypes. + + + + A passive class may not own receptions. + + + not self.isActive implies self.ownedReception.isEmpty() + + + + + + + True when a class is abstract. + + + If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. + + + + + + + + + + References all the Classifiers that are defined (nested) within the Class. + + + + + + + + + + The attributes (i.e. the properties) owned by the class. + + + + + + + + + + The operations owned by the class. + + + + + + + + + + This gives the superclasses of a class. + + + + + + + Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class. + + + + + + + + + Receptions that objects of this class are willing to accept. + + + + + + + + + + References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class. + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + + result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + + + + + + + + + + + + + + + ProfileApplication is a kind of PackageImport that adds the capability to state that a Profile is applied to a Package. + + + + + References the Profiles that are applied to a Package through this ProfileApplication. + + + + + + + Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied. + + + + + + + Extension is a kind of Association. One end of the Extension is an ordinary Property and the other end is an ExtensionEnd. The former ties the Extension to a Class, while the latter ties the Extension to a Stereotype that extends the Class. + + + + The non-owned end of an Extension is typed by a Class. + + + metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class) + + + + + An Extension is binary, i.e., it has only two memberEnds. + + + memberEnd->size() = 2 + + + + + + + + + Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the multiplicity of the Property referenced by Extension::ownedEnd; a multiplicity of 1 means that isRequired is true, but otherwise it is false. Since the default multiplicity of an ExtensionEnd is 0..1, the default value of isRequired is false. + + + + + + + + + References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd. + + + + + + + + + + References the end of the extension that is typed by a Stereotype. + + + + + + + The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype). + + + + result = memberEnd->reject(ownedEnd) + + + + + + + The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype). + + + + result = metaclassEnd().type + + + + + + + The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1. + + + + result = (ownedEnd->lowerBound() = 1) + + + + + + + + + + + The Image class provides the necessary information to display an Image in a diagram. Icons are typically handled through the Image class. + + + + + An element can own comments. + + + Element is an abstract metaclass with no superclass. It is used as the common superclass for all metaclasses in the infrastructure library. Element has a derived composition association to itself to support the general capability for elements to own other elements. + + + An element is a constituent of a model. An element can own comments. + + + + An element may not directly or indirectly own itself. + + + not self.allOwnedElements()->includes(self) + + + + + Elements that must be owned must have an owner. + + + self.mustBeOwned() implies owner->notEmpty() + + + + + + + + The Elements owned by this element. + + + + + + + + + + The Element that owns this element. + + + + + + + + + + The Comments owned by this element. + + + + + + + The query allOwnedElements() gives all of the direct and indirect owned elements of an element. + + + + result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements())) + + + + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation. + + + + result = true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ExtensionEnd is a kind of Property that is always typed by a Stereotype. An ExtensionEnd is never navigable. If it was navigable, it would be a property of the extended classifier. Since a profile is not allowed to change the referenced metamodel, it is not possible to add properties to the extended classifier. As a consequence, an ExtensionEnd can only be owned by an Extension. The aggregation of an ExtensionEnd is always composite. The default multiplicity of an ExtensionEnd is 0..1. + + + + The multiplicity of ExtensionEnd is 0..1 or 1. + + + (self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1 + + + + + The aggregation of an ExtensionEnd is composite. + + + self.aggregation = #composite + + + + + + References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes. + + + + + + + This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype. + + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default + +lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty. + + + + result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/L3.uml2 b/plugins/org.eclipse.uml2.uml/model/L3.uml2 new file mode 100644 index 00000000..c748e372 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/L3.uml2 @@ -0,0 +1,76 @@ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/LM.emx b/plugins/org.eclipse.uml2.uml/model/LM.emx new file mode 100644 index 00000000..4673bdb1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/LM.emx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/LM.uml2 b/plugins/org.eclipse.uml2.uml/model/LM.uml2 new file mode 100644 index 00000000..2209919f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/LM.uml2 @@ -0,0 +1,16 @@ + + + + + + + +
+ + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/Superstructure.emx b/plugins/org.eclipse.uml2.uml/model/Superstructure.emx new file mode 100644 index 00000000..9febed72 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/Superstructure.emx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/Superstructure.uml2 b/plugins/org.eclipse.uml2.uml/model/Superstructure.uml2 new file mode 100644 index 00000000..c5be1bb3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/Superstructure.uml2 @@ -0,0 +1,11 @@ + + + + +
+ + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/UML.ecore b/plugins/org.eclipse.uml2.uml/model/UML.ecore new file mode 100644 index 00000000..b079e6ac --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/UML.ecore @@ -0,0 +1,9574 @@ + + + + +
+ + + +
+ + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + + +
+ + + + + + + +
+ + + + +
+ + + + + +
+ + + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + + + + + +
+ + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + diff --git a/plugins/org.eclipse.uml2.uml/model/UML.emx b/plugins/org.eclipse.uml2.uml/model/UML.emx new file mode 100644 index 00000000..9b2d12ec --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/UML.emx @@ -0,0 +1,58501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/UML.genmodel b/plugins/org.eclipse.uml2.uml/model/UML.genmodel new file mode 100644 index 00000000..7109cad4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/UML.genmodel @@ -0,0 +1,3893 @@ + + + L3.merged.uml2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.eclipse.ui.views.properties.expert + + + + + + + + + org.eclipse.ui.views.properties.expert + + + org.eclipse.ui.views.properties.expert + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/model/UML.uml2 b/plugins/org.eclipse.uml2.uml/model/UML.uml2 new file mode 100644 index 00000000..206ffbba --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/model/UML.uml2 @@ -0,0 +1,15036 @@ + + + + +
+ + + + + + + + + + + + + + ReadExtentAction is an action that retrieves the current instances of a classifier. + + + + The type of the result output pin is the classifier. + + + true + + + + + The multiplicity of the result output pin is 0..*. + + + self.result.multiplicity.is(0,#null) + + + + + + + + + The runtime instances of the classifier. + + + + + + + The classifier whose instances are to be retrieved. + + + + + + + + ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers may be added and removed at a time. + + + + None of the new classifiers may be abstract. + + + not self.newClassifier->exists(isAbstract = true) + + + + + The multiplicity of the input pin is 1..1. + + + self.argument.multiplicity.is(1,1) + + + + + The input pin has no type. + + + self.argument.type->size() = 0 + + + + + + Specifies whether existing classifiers should be removed before adding the new classifiers. + + + + + + + A set of classifiers to be removed from the classifiers of the object. + + + + + + + A set of classifiers to be added to the classifiers of the object. + + + + + + + + + + Holds the object to be reclassified. + + + + + + + + This action tests the classification of an object against a given class. It can be restricted to testing direct instances. + + + + The multiplicity of the input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + The input pin has no type. + + + self.object.type->isEmpty() + + + + + The multiplicity of the output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + The type of the output pin is Boolean + + + self.result.type = Boolean + + + + + + Indicates whether the classifier must directly classify the input object. + + + + + + + The classifier against which the classification of the input object is tested. + + + + + + + + + + After termination of the action, will hold the result of the test. + + + + + + + + + + Holds the object whose classification is to be tested. + + + + + + + + StartClassifierBehaviorAction is an action that starts the classifier behavior of the input. + + + + The multiplicity of the input pin is 1..1 + + + true + + + + + If the input pin has a type, then the type must have a classifier behavior. + + + true + + + + + + + + + Holds the object on which to start the owned behavior. + + + + + + + + A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + + The qualifier attribute must be a qualifier of the association end of the link-end data. + + + self.LinkEndData.end->collect(qualifier)->includes(self.qualifier) + + + + + The type of the qualifier value input pin is the same as the type of the qualifier attribute. + + + self.value.type = self.qualifier.type + + + + + The multiplicity of the qualifier value input pin is "1..1". + + + self.value.multiplicity.is(1,1) + + + + + + Attribute representing the qualifier for which the value is to be specified. + + + + + + + Input pin from which the specified value for the qualifier is taken. + + + + + + + + LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + + + The qualifiers include all and only the qualifiers of the association end. + + + self.qualifier->collect(qualifier) = self.end.qualifier + + + + + The end object input pin is not also a qualifier value input pin. + + + self.value->excludesAll(self.qualifier.value) + + + + + + + + List of qualifier values + + + + + + + + This action reads the object on an end of a link object. The association end to retrieve the object from is specified statically, and the link object to read is provided on the input pin at run time. + + + + The property must be an association end. + + + self.end.association.notEmpty() + + + + + The association of the association end must be an association class. + + + self.end.Association.oclIsKindOf(AssociationClass) + + + + + The ends of the association must not be static. + + + self.end.association.memberEnd->forall(e | not e.isStatic) + + + + + The type of the object input pin is the association class that owns the association end. + + + self.object.type = self.end.association + + + + + The multiplicity of the object input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + The type of the result output pin is the same as the type of the association end. + + + self.result.type = self.end.type + + + + + The multiplicity of the result output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + Gives the input pin from which the link object is obtained. + + + + + + + Link end to be read. + + + + + + + + + + Pin where the result value is placed + + + + + + + + This action reads a qualifier value or values on an end of a link object. The association end to retrieve the qualifier from is specified statically, and the link object to read is provided on the input pin at run time. + + + + The qualifier attribute must be a qualifier attribute of an association end. + + + self.qualifier.associationEnd->size() = 1 + + + + + The association of the association end of the qualifier attribute must be an association class. + + + self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass) + + + + + The ends of the association must not be static. + + + self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic) + + + + + The type of the object input pin is the association class that owns the association end that has the given qualifier attribute. + + + self.object.type = self.qualifier.associationEnd.association + + + + + The multiplicity of the qualifier attribute is 1..1. + + + self.qualifier.multiplicity.is(1,1) + + + + + The multiplicity of the object input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + The type of the result output pin is the same as the type of the qualifier attribute. + + + self.result.type = self.qualifier.type + + + + + The multiplicity of the result output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + (Specialized from Action:input) Gives the input pin from which the link object is obtained. + + + + + + + + + + Pin where the result value is placed + + + + + + + The attribute representing the qualifier to be read. + + + + + + + + This action is exclusively for creating links of association classes. It returns the created link object. + + + + The association must be an association class. + + + self.association().oclIsKindOf(Class) + + + + + The type of the result pin must be the same as the association of the action. + + + self.result.type = self.association() + + + + + The multiplicity of the output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + AcceptEventAction is an action that waits for the occurrence of an event meeting specified conditions. + + + + AcceptEventActions may have no input pins. + + + true + + + + + There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction). + + + true + + + + + If the trigger events are all TimeEvents, there is exactly one output pin. + + + true + + + + + If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute. + + + true + + + + + + Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event. + + + + + + + Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. + + + + + + + + + + The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted. + + + + + + + + AcceptCallAction is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the ReplyAction necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects. + + + + The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order. + + + true + + + + + The trigger event must be a CallEvent. + + + trigger.event.oclIsKindOf(CallEvent) + + + + + isUnmrashall must be true for an AcceptCallAction. + + + isUnmarshall = true + + + + + + Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model. + + + + + + + + ReplyAction is an action that accepts a set of return values and a value containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call. + + + + The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order. + + + true + + + + + The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent) + + + replyToCallEvent.oclIsKindOf(CallEvent) + + + + + + The trigger specifying the operation whose call is being replied to. + + + + + + + + + + A pin containing the return information value produced by an earlier AcceptCallAction. + + + + + + + + + + A list of pins containing the reply values of the operation. These values are returned to the caller. + + + + + + + + The outputs of this action correspond to the structural features of the specified type. The input must be of this type. + + + + The type of the object input pin must be the same as the unmarshall classifier. + + + true + + + + + The multiplicity of the object input pin is 1..1 + + + true + + + + + The number of result output pins must be the same as the number of structural features of the unmarshall classifier. + + + true + + + + + The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier. + + + true + + + + + The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier. + + + + true + + + + + The unmarshall classifier must have at least one structural feature. + + + true + + + + + unmarshallType must be a Classifier with ordered attributes + + + true + + + + + + The values of the structural features of the input object. + + + + + + + The type of the object to be unmarshalled. + + + + + + + + + + The object to be unmarshalled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CreateObjectAction is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime. + + + + The classifier cannot be abstract. + + + not (self.classifier.isAbstract = #true) + + + + + The classifier cannot be an association class + + + not self.classifier.oclIsKindOf(AssociationClass) + + + + + The type of the result pin must be the same as the classifier of the action. + + + self.result.type = self.classifier + + + + + The multiplicity of the output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + Classifier to be instantiated. + + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + This action destroys the object on its input pin at runtime. The object may be a link object, in which case the semantics of DestroyLinkAction also applies. + + + + The multiplicity of the input pin is 1..1. + + + self.target.multiplicity.is(1,1) + + + + + The input pin has no type. + + + self.target.type->size() = 0 + + + + + + Specifies whether links in which the object participates are destroyed along with the object. + + + + + + + Specifies whether objects owned by the object are destroyed along with the object. + + + + + + + + + + The input pin providing the object to be destroyed. + + + + + + + + This action returns true if the two input values are the same identity, false if they are not. + + + + The input pins have no type. + + + self.first.type->size() = 0 +and self.second.type->size() = 0 + + + + + + The multiplicity of the input pins is 1..1. + + + self.first.multiplicity.is(1,1) +and self.second.multiplicity.is(1,1) + + + + + + The type of the result is Boolean. + + + self.result.type.oclIsTypeOf(Boolean) + + + + + + + + + Gives the pin on which an object is placed. + + + + + + + + + + Gives the pin on which an object is placed. + + + + + + + + + + Tells whether the two input objects are identical. + + + + + + + + Every action is ultimately a part of some behavior, which is in turn optionally attached in some way to the specification of a classifier; for example as the body of a method or as part of a state machine. When the behavior executes, it does so in the context of some specific host instance of that classifier. This action produces this host instance, if any, on its output pin. The type of the output pin is the classifier to which the behavior is associated in the user model. + + + + The action must be contained in an behavior that has a host classifier. + + + self.context->size() = 1 + + + + + If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static. + + + true + + + + + The type of the result output pin is the host classifier. + + + self.result.type = self.context + + + + + The multiplicity of the result output pin is 1..1. + + + self.result.multiplicity.is(1,1) + + + + + + + + + Gives the output pin on which the hosting object is placed. + + + + + + + + + This abstract action class statically specifies the structural feature being accessed. The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + + + + The structural feature must not be static. + + + self.structuralFeature.isStatic = #false + + + + + The type of the object input pin is the same as the classifier of the object passed on this pin. + + + true + + + + + The multiplicity of the input pin must be 1..1. + + + self.object.multiplicity.is(1,1) + + + + + Visibility of structural feature must allow access to the object performing the action. + + + let host : Classifier = self.context in +self.structuralFeature.visibility = #public +or host = self.structuralFeature.featuringClassifier.type +or (self.structuralFeature.visibility = #protected and host.allSupertypes +->includes(self.structuralFeature.featuringClassifier.type))) + + + + + + A structural feature has exactly one featuringClassifier. + + + self.structuralFeature.featuringClassifier->size() = 1 + + + + + + Structural feature to be read. + + + + + + + + + + Gives the input pin from which the object whose structural feature is to be read or written is obtained. + + + + + + + + + This action reads the values of a structural feature, in order if the structural feature is ordered. + + + + The type and ordering of the result output pin are the same as the type and ordering of the structural feature. + + + self.result.type = self.structuralFeature.type +and self.result.ordering = self.structuralFeature.ordering + + + + + + The multiplicity of the structural feature must be compatible with the multiplicity of the output pin. + + + self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity) + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + A write structural feature action operates on a structural feature of an object to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write structural feature actions are inherited from StructuralFeatureAction. + + + + The type input pin is the same as the classifier of the structural feature. + + + self.value.type = self.structuralFeature.featuringClassifier + + + + + The multiplicity of the input pin is 1..1. + + + self.value.multiplicity.is(1,1) + + + + + + + + + Value to be added or removed from the structural feature. + + + + + + + + This action removes all values of a structural feature. + + + + + + The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + +Structural features are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values. + + + + + Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin. + + + + true + + + + + + Specifies whether to remove duplicates of the value in nonunique structural features. + + + + + + + + + + Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + + + + + + + + Structural Features are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the structural feature before the new value is added. + +The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + + + + + Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + + + let insertAtPins : Collection = self.insertAt in +if self.structuralFeature.isOrdered = #false +then insertAtPins->size() = 0 +else let insertAtPin : InputPin= insertAt->asSequence()->first() in +insertAtPins->size() = 1 +and insertAtPin.type = UnlimitedNatural +and insertAtPin.multiplicity.is(1,1)) +endif + + + + + + + Specifies whether existing values of the structural feature of the object should be removed before adding the new value. + + + + + + + + + + Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features. + + + + + + + + A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any. + + + + The association ends of the link end data must all be from the same association and include all and only the association ends of that association. + + + self.endData->collect(end) = self.association()->collect(connection)) + + + + + The association ends of the link end data must not be static. + + + self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false + + + + + The input pins of the action are the same as the pins of the link end data and insertion pins. + + + self.input->asSet() = +let ledpins : Set = self.endData->collect(value) in +if self.oclIsKindOf(LinkEndCreationData) +then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt) +else ledpins + + + + + + + + + + Data identifying one end of a link by the objects on its ends and qualifiers. + + + + + + + + + + Pins taking end objects and qualifier values as input. + + + + + + + The association operates on LinkAction. It returns the association of the action. + + + + result = self.endData->asSequence().first().end.association + + + + + + + + LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + + + + The property must be an association end. + + + self.end.association->size() = 1 + + + + + The type of the end object input pin is the same as the type of the association end. + + + self.value.type = self.end.type + + + + + The multiplicity of the end object input pin must be 1..1. + + + self.value.multiplicity.is(1,1) + + + + + + Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading. + + + + + + + Association end for which this link-end data specifies values. + + + + + + + + This action navigates an association towards one end, which is the end that does not have an input pin to take its object (the “open” end). The objects put on the result output pin are the ones participating in the association at the open end, conforming to the specified qualifiers, in order if the end is ordered. The semantics is undefined for reading a link that violates the navigability or visibility of the open end. + + + + Exactly one link-end data specification (the 'open' end) must not have an end object input pin. + + + self.endData->select(ed | ed.value->size() = 0)->size() = 1 + + + + + The type and ordering of the result output pin are same as the type and ordering of the open association end. + + + let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +self.result.type = openend.type +and self.result.ordering = openend.ordering + + + + + + The multiplicity of the open association end must be compatible with the multiplicity of the result output pin. + + + let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +openend.multiplicity.compatibleWith(self.result.multiplicity) + + + + + + The open end must be navigable. + + + let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +openend.isNavigable() + + + + + + Visibility of the open end must allow access to the object performing the action. + + + let host : Classifier = self.context in +let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in +openend.visibility = #public +or self.endData->exists(oed | not oed.end = openend +and (host = oed.end.participant +or (openend.visibility = #protected +and host.allSupertypes->includes(oed.end.participant)))) + + + + + + + + + + The pin on which are put the objects participating in the association at the end not specified by the inputs. + + + + + + + + + This class is required when using CreateLinkAction, to specify insertion points for ordered ends and for replacing all links at end. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + +Qualifier values are used in CompleteActions to identify links to create. + + + + LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations. + + + self.LinkAction.oclIsKindOf(CreateLinkAction) + + + + + Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + + + let insertAtPins : Collection = self.insertAt in +if self.end.ordering = #unordered +then insertAtPins->size() = 0 +else let insertAtPin : InputPin = insertAts->asSequence()->first() in +insertAtPins->size() = 1 +and insertAtPin.type = UnlimitedNatural +and insertAtPin.multiplicity.is(1,1)) +endif + + + + + + + Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link. + + + + + + + Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered. + + + + + + + + This action can be used to create links and link objects. There is no return value in either case. This is so that no change of the action is required if the association is changed to an association class or vice versa. CreateLinkAction uses a specialization of LinkEndData called LinkEndCreationData, to support ordered associations. The insertion point is specified at runtime by an additional input pin, which is required for ordered association ends and omitted for unordered ends. The insertion point is a positive integer giving the position to insert the link, or unlimited, to insert at the end. Reinserting an existing end at a new position in an ordered unique structural feature moves the end to that position. CreateLinkAction also uses LinkEndCreationData to support the destruction of existing links of the association that connect any of the objects of the new link. When the link is created, this option is available on an end-by-end basis, and causes all links of the association emanating from the +specified ends to be destroyed before the new link is created. + + + + The association cannot be an abstract classifier. + + + self.association().isAbstract = #false + + + + + + + + + Specifies ends of association and inputs. + + + + + + + + This action destroys a link or a link object. Link objects can also be destroyed with DestroyObjectAction. The link is specified in the same way as link creation, even for link objects. This allows actions to remain unchanged when their associations are transformed from ordinary ones to association classes and vice versa. + +DestroyLinkAction uses a specialization of LinkEndData, called LinkEndDestructionData, to support ordered nonunique associations. The position of the link to be destroyed is specified at runtime by an additional input pin, which is required for ordered nonunique association ends and omitted for other kinds of ends. This is a positive integer giving the position of the link to destroy. + +DestroyLinkAction also uses LinkEndDestructionData to support the destruction of duplicate links of the association on ends that are nonunique. This option is available on an end-by-end basis, and causes all duplicate links of the association emanating from the specified ends to be destroyed. + + + + + + + + + Specifies ends of association and inputs. + + + + + + + + A write link action takes a complete identification of a link and creates or destroys it. + + + + The visibility of at least one end must allow access to the class using the action. + + + true + + + + + + + This action destroys all links of an association that have a particular object at one end. + + + + The type of the input pin must be the same as the type of at least one of the association ends of the association. + + + self.association->exists(end.type = self.object.type) + + + + + The multiplicity of the input pin is 1..1. + + + self.object.multiplicity.is(1,1) + + + + + + + + + Gives the input pin from which is obtained the object whose participation in the association is to be cleared. + + + + + + + Association to be cleared. + + + + + + + + BroadcastSignalAction is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor. + + + + The number and order of argument pins must be the same as the number and order of attributes in the signal. + + + true + + + + + The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + + + true + + + + + + The specification of signal object transmitted to the target objects. + + + + + + + + SendObjectAction is an action that transmits an object to the target object, where it may invoke behavior such as the firing of state machine transitions or the execution of an activity. The value of the object is available to the execution of invoked behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. + + + + + + + + The target object to which the object is sent. + + + + + + + + + + The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved. (Specialized from InvocationActon.argument) + + + + + + + + This class is required when using DestroyLinkAction, to specify links to destroy for nonunique ordered ends. A link cannot be passed as a runtime value to or from an action. + +Qualifier values are used in CompleteActions to identify links to destroy. + + + + LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations. + + + true + + + + + LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position. + + + true + + + + + + Specifies whether to destroy duplicates of the value in nonunique association ends. + + + + + + + Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + + + + + + + + The action returns the result of evaluating a value specification. + + + + The type of value specification must be compatible with the type of the result pin. + + + true + + + + + The multiplicity of the result pin is 1..1 + + + true + + + + + + + + + Value specification to be evaluated. + + + + + + + + + + Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An action with implementation-specific semantics. + + + + + + + + Specifies the action in one or more languages. + + + + + + + + + + + Languages the body strings use, in the same order as the body strings + + + + + + + + Provides input to the action. + + + + + + + Takes output from the action. + + + + + + + + A pin is a typed element and multiplicity element that provides values to actions and accept result values from them. + + + + + + A value pin is an input pin that provides a value by evaluating a value specification. + + + + The type of value specification must be compatible with the type of the value pin. + + + true + + + + + + + + + Value that the pin will provide. + + + + + + + + An output pin is a pin that holds output values produced by an action. + + + + + + An input pin is a pin that holds input values to be consumed by an action. + + + + + + Invocation is an abstract class for the various actions that invoke behavior. + + + + + + + + Specification of the ordered set of argument values that appears during execution. + + + + + + + + CallAction is an abstract class for actions that invoke behavior and receive return values. + + + + Only synchronous call actions can have result pins. + + + true + + + + + The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order. + + + true + + + + + The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature. + + + true + + + + + + If true, the call is synchronous and the caller waits for completion of the invoked behavior. +If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values. + + + + + + + + + + + A list of output pins where the results of performing the invocation are placed. + + + + + + + + SendSignalAction is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use SendObjectAction. + + + + The number and order of argument pins must be the same as the number and order of attributes in the signal. + + + true + + + + + The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + + + true + + + + + + + + + The target object to which the signal is sent. + + + + + + + The type of signal transmitted to the target object. + + + + + + + + CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete. + + + + The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal. + + + true + + + + + The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal. + + + true + + + + + The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation. + + + + true + + + + + The type of the target pin must be the same as the type that owns the operation. + + + true + + + + + + The operation to be invoked by the action execution. + + + + + + + + + + The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. + + + + + + + + CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity. + + + + The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal. + + + true + + + + + The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal. + + + true + + + + + The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior. + + + + true + + + + + + The invoked behavior. It must be capable of accepting and returning control. + + + + + + + + An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise. + + + + + + + + The ordered set of output pins connected to the Action. The action places its results onto pins in this set. + + + + + + + + + + The ordered set of input pins connected to the Action. These are among the total set of inputs. + + + + + + + + + + The classifier that owns the behavior of which this action is a part. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VariableAction is an abstract class for actions that operate on a statically specified variable. + + + + The action must be in the scope of the variable. + + + self.variable.isAccessibleBy(self) + + + + + + Variable to be read. + + + + + + + + This action reads the values of a variables, in order if the variable is ordered. + + + + The type and ordering of the result output pin of a read-variable action are the same as the type and ordering of the variable. + + + self.result.type =self.variable.type +and self.result.ordering = self.variable.ordering + + + + + + The multiplicity of the variable must be compatible with the multiplicity of the output pin. + + + self.variable.multiplicity.compatibleWith(self.result.multiplicity) + + + + + + + + + Gives the output pin on which the result is put. + + + + + + + + A write variable action operates on a variable to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write variable actions are inherited from VariableAction. + + + + The type input pin is the same as the type of the variable. + + + self.value.type = self.variable.type + + + + + The multiplicity of the input pin is 1..1. + + + self.value.multiplicity.is(1,1) + + + + + + + + + Value to be added or removed from the variable. + + + + + + + + This action removes all values of an variable. + + + + + + Variables are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the variable before the new value is added. + + + + Actions adding values to ordered variables must have a single input pin for the insertion point with type UnlimtedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + + + let insertAtPins : Collection = self.insertAt in +if self.variable.ordering = #unordered +then insertAtPins->size() = 0 +else let insertAtPin : InputPin = insertAt->asSequence()->first() in +insertAtPins->size() = 1 +and insertAtPin.type = UnlimitedNatural +and insertAtPin.multiplicity.is(1,1)) +endif + + + + + + + Specifies whether existing values of the variable should be removed before adding the new value. + + + + + + + + + + Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables. + + + + + + + + One value is removed from the set of possible variable values. Variables are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values. + + + + Actions removing a value from ordered nonunique variables must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type UnlimitedNatural with multiplicity of 1..1, otherwise the action has no removeAt input pin. + + + true + + + + + + Specifies whether to remove duplicates of the value in nonunique variables. + + + + + + + + + + Specifies the position of an existing value to remove in ordered nonunique variables. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + + + + + + + + RaiseExceptionAction is an action that causes an exception to occur. The input value becomes the exception object. + + + + + + + + An input pin whose value becomes an exception object. + + + + + + + + An action input pin is a kind of pin that executes an action to determine the values to input to another. + + + + The fromAction of an action input pin must have exactly one output pin. + + + true + + + + + The fromAction of an action input pin must only have action input pins as input pins. + + + true + + + + + The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins. + + + true + + + + + + + + + The action used to provide values. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section. + + + + All edges coming into or going out of object nodes must be object flow edges. + + + true + + + + + Object nodes are not unique typed elements + + + isUnique = false + + + + + + + + A control node is an activity node used to coordinate the flows between other nodes. It covers initial node, final node and its children, fork node, join node, decision node, and merge node. + + + + + + ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow. + + + + The source and target of an edge must be in the same activity as the edge. + + + true + + + + + Activity edges may be owned only by activities or groups. + + + true + + + + + + Activity containing the edge. + + + + + + + Node from which tokens are taken when they traverse the edge. + + + + + + + Node to which tokens are put when they traverse the edge. + + + + + + + + + + Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivityGroup. + + + + + + + Inherited edges replaced by this edge in a specialization of the activity. + + + + + + + + Objects and data cannot pass along a control flow edge. + + + + Control flows may not have object nodes at either end, except for object nodes with control type. + + + true + + + + + + + An object flow models the flow of values to or from object nodes. + + + + Object flows may not have actions at either end. + + + true + + + + + Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type. + + + + true + + + + + Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds. + + + true + + + + + + + An activity may have more than one initial node. + + + + An initial node has no incoming edges. + + + true + + + + + Only control edges can have initial nodes as source. + + + true + + + + + + + An activity may have more than one activity final node. The first one reached stops all flows in the activity. + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + All nodes and edges of the group must be in the same activity as the group. + + + true + + + + + No node or edge in a group may be contained by its subgroups or its containing groups, transitively. + + + true + + + + + Groups may only be owned by activities or groups. + + + true + + + + + Edges immediately contained in the group. + + + + + + + + Activity parameter nodes are object nodes at the beginning and end of flows that provide a means to accept inputs to an activity and provide outputs from the activity, through the activity parameters. + + + + Activity parameter nodes must have parameters from the containing activity. + + + true + + + + + The type of an activity parameter node is the same as the type of its parameter. + + + true + + + + + An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges. + + + true + + + + + Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction. + + + + true + + + + + Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction. + + + + true + + + + + + The parameter the object node will be accepting or providing values for. + + + + + + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be replaced in generalization. + + + + Activity nodes can only be owned by activities or groups. + + + true + + + + + + Edges that have the node as source. + + + + + + + Edges that have the node as target. + + + + + + + Inherited nodes replaced by this node in a specialization of the activity. + + + + + + + + A pin is an object node for inputs and outputs to actions. + + + + + + An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + +Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: +- occurrences of primitive functions, such as arithmetic functions. +- invocations of behavior, such as activities. +- communication actions, such as sending of signals. +- manipulations of objects, such as reading or writing attributes or associations. + +Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + + + + The nodes of the activity must include one ActivityParameterNode for each parameter. + + + true + + + + + An activity cannot be autonomous and have a classifier or behavioral feature context at the same time. + + + true + + + + + + If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes). + + + + + + + + + + Edges expressing flow between nodes of the activity. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A fork node has one incoming edge and multiple outgoing edges. + + + + A fork node has one incoming edge. + + + true + + + + + The edges coming into and out of a fork node must be either all object flows or all control flows. + + + true + + + + + + + A flow final destroys all tokens that arrive at it. It has no effect on other flows in the activity. + + + + + + A central buffer node accepts tokens from upstream objects nodes and passes them along to downstream object nodes. They act as a buffer for multiple in flows and out flows from other object nodes. They do not connect directly to actions. + + + + + + Partitions divide the nodes and edges to constrain and show a view of the contained nodes. Partitions can share contents. They often correspond to organizational units in a business model. They may be used to allocate characteristics or resources among the nodes of an activity. + + + + A partition with isDimension = true may not be contained by another partition. + + + true + + + + + No node or edge of a partition may be in another partition in the same dimension. + + + true + + + + + If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier. + + + true + + + + + If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition. + + + true + + + + + If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition. + + + true + + + + + + + Tells whether the partition groups other partitions along a dimension. + + + + + + + Tells whether the partition represents an entity to which the partitioning structure does not apply. + + + + + + + Edges immediately contained in the group. + + + + + + + Nodes immediately contained in the group. + + + + + + + + + + Partitions immediately contained in the partition. Specialized from Activity-Group::subgroup. + + + + + + + Partition immediately containing the partition. + + + + + + + An element constraining behaviors invoked by nodes in the partition. + + + + + + + + ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow. + + + + + Partitions containing the edge. + + + + + + + + + + Specification evaluated at runtime to determine if the edge can be traversed. + + + + + + + + + + Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. + + + + + Partitions containing the node. + + + + + + + + + + Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + + A merge node has multiple incoming edges and a single outgoing edge. + + + + A merge node has one outgoing edge. + + + true + + + + + The edges coming into and out of a merge node must be either all object flows or all control flows. + + + true + + + + + + + A decision node has one incoming edge and multiple outgoing activity edges. + + + + A decision node has one incoming edge. + + + true + + + + + A decision input behavior has zero or one input parameter and one output parameter. Any input parameter must be the same as or a supertype of the type of object tokens coming along the incoming edge. The behavior cannot have side effects. + + + true + + + + + The edges coming into and out of a decision node must be either all object flows or all control flows. + + + true + + + + + + Provides input to guard specifications on edges outgoing from the decision node. + + + + + + + + A final node is an abstract control node at which a flow in an activity stops. + + + + A final node has no outgoing edges. + + + true + + + + + + + An activity may have more than one activity final node. The first one reached stops all flows in the activity. + + + + + + A join node has multiple incoming edges and one outgoing edge. + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + Nodes immediately contained in the group. + + + + + + + Edges immediately contained in the group. + + + + + Activity containing the group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + +Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: +- occurrences of primitive functions, such as arithmetic functions. +- invocations of behavior, such as activities. +- communication actions, such as sending of signals. +- manipulations of objects, such as reading or writing attributes or associations. + +Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + + + + Top-level partitions in the activity. + + + + + + + + + + Top-level groups in the activity. + + + + + + + + + + + + + + + + + + + + + A join node has multiple incoming edges and one outgoing edge. In CompleteActivities, Join nodes have a Boolean value specification using the names of the incoming edges to specify the conditions under which the join will emit a token. + + + + A join node has one outgoing edge. + + + self.outgoing->size() = 1 + + + + + If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow. + + + (self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies + self.outgoing.isTypeOf(ObjectFlow)) and + (self.incoming.select(e | e.isTypeOf(ObjectFlow)->empty() implies + self.outgoing.isTypeOf(ControlFlow)) + + + + + + Tells whether tokens having objects with the same identity are combined into one by the join. + + + + + + + + + + A specification giving the conditions under which the join with emit a token. Default is "and". + + + + + + + + A data store keeps all tokens that enter it, copying them when they are chosen to move downstream. Incoming tokens containing a particular object replace any tokens in the object node containing that object. + + + + + + An object flow models the flow of values to or from object nodes. + + + + An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight. + + + true + + + + + A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects. + + + true + + + + + An object flow may have a selection behavior only if has an object node as a source. + + + true + + + + + A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects. + + + true + + + + + isMulticast and isMultireceive cannot both be true. + + + true + + + + + Tells whether the objects in the flow are passed by multicasting. + + + + + + + Tells whether the objects in the flow are gathered from respondents to multicasting. + + + + + + + Changes or replaces data tokens flowing along edge. + + + + + + + Selects tokens from a source object node. + + + + + + + + The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters. + + + + + + + + + ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow. + + + + + + + + Number of tokens consumed from the source node on each traversal. + + + + + + + Region that the edge can interrupt. + + + + + + + + An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section. +Complete object nodes add support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values. + + + + + If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa. + + + true + + + + + A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects. + + + true + + + + + + Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node. + + + FIFO + + + + + Tells whether the type of the object node is to be treated as control. + + + + + + + + + + The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached. + + + + + + + The required states of the object available at this point in the activity. + + + + + + + Selects tokens for outgoing edges. + + + + + + + + ObjectNodeOrderingKind is an enumeration indicating queuing order within a node. + + + + + + + + + An parameter set acts as a complete set of inputs and outputs to a behavior, exclusive of other parameter sets on the behavior. + + + + The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity. + + + true + + + + + If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters. + + + true + + + + + Two parameter sets cannot have exactly the same set of parameters. + + + true + + + + + + Parameters in the parameter set. + + + + + + + + + + Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied. + + + + + + + + An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + +Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: +- occurrences of primitive functions, such as arithmetic functions. +- invocations of behavior, such as activities. +- communication actions, such as sending of signals. +- manipulations of objects, such as reading or writing attributes or associations. + +Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + + + + If true, all invocations of the activity are handled by the same execution. + + + + + + + Parameters are extended in complete activities to add support for streaming, exceptions, and parameter sets. + + + + A parameter cannot be a stream and exception at the same time. + + + true + + + + + An input parameter cannot be an exception. + + + true + + + + + Reentrant behaviors cannot have stream parameters. + + + true + + + + + Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect. + + + true + + + + + Tells whether an output parameter may emit a value to the exclusion of the other outputs. + + + + + + + Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing. + + + + + + + Specifies the effect that the owner of the parameter has on values passed in or out of the parameter. + + + + + The parameter sets containing the parameter. See ParameterSet. + + + + + + + + An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. In CompleteActivities, action is extended to have pre- and postconditions. + + + + + + + + Constraint that must be satisfied when execution is started. + + + + + + + + + + Constraint that must be satisfied when executed is completed. + + + + + + + + An interruptible region contains activity nodes. When a token leaves an interruptible region via edges designated by the region as interrupting edges, all tokens and behaviors in the region are terminated. + + + + Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region. + + + + true + + + + + + The edges leaving the region that will abort other tokens flowing in the region. + + + + + + + Nodes immediately contained in the group. + + + + + + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be contained in interruptible regions. + + + + Interruptible regions containing the node. + + + + + + + + + + Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + + The concept of BehavioralFeature is extended to own ParameterSets. + + + + + + + + + The ParameterSets owned by this BehavioralFeature. + + + + + + + + The concept of Behavior is extended to own ParameterSets. + + + + + + + + The ParameterSets owned by this Behavior. + + + + + + + + A pin is an object node for inputs and outputs to actions. + + + + Control pins have a control type + + + isControl implies isControlType + + + + + Tells whether the pins provide data to the actions, or just controls when it executes it. + + + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + Nodes immediately contained in the group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A variable specifies data storage shared by the actions within a group. There are actions to write and read variables. These actions are treated as side effecting actions, similar to the actions to write and read object attributes and associations. There are no sequencing constraints among actions that access the same variable. Such actions must be explicitly coordinated by control flows or other constraints. + +Any values contained by a variable must conform to the type of the variable and have cardinalities allowed by the multiplicity of the variable. + + + + + A variable is owned by a StructuredNode or Activity, but not both. + + + true + + + + + + + A structured activity node that owns the variable. + + + + + + + An activity that owns the variable. + + + + + + + The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable. + + + + + result = true + + + + + + + + + + + + A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins when merged with CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution. + +Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of "atomicity", which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results. + + + + + + + + + + + A variable defined in the scope of the structured activity node. It has no value and may not be accessed + + + + + + + + + + Nodes immediately contained in the group. + + + + + + + + + + Activity immediately containing the node. + + + + + + + + A conditional node consists of one or more clauses. Each clause consists of a test section and a body section. When the conditional node begins execution, the test sections of the clauses are executed. If one or more test sections yield a true value, one of the corresponding body sections will be executed. If more than one test section yields a true value, only one body section will be executed. The choice is nondeterministic unless the test sequence of clauses is specified. If no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node. + +In general, test section may be executed in any order, including simultaneously (if the underlying execution architecture supports it). The result may therefore be nondeterministic if more than one test section can be true concurrently. To enforce ordering of evaluation, sequencing constraints may be specified among clauses. One frequent case is a total ordering of clauses, in which case the clause execution order is determinate. If it is impossible for more than one test section to evaluate true simultaneously, the result is deterministic and it is unnecessary to order the clauses, as ordering may impose undesirable and unnecessary restrictions on implementation. Note that, although evaluation of test sections may be specified as concurrent, this does not require that the implementation evaluate them in parallel; it merely means that the model does not impose any order on evaluation. + +An "else" clause is a clause that is a successor to all other clauses in the conditional and whose test part always returns true. + +Output values created in the test or body section of a clause are potentially available for use outside the conditional. However, any value used outside the conditional must be created in every clause, otherwise an undefined value would be accessed if a clause not defining the value were executed. + + + + + If true, the modeler asserts that at most one test will succeed. + + + + + + If true, the modeler asserts that at least one test will succeed. + + + + + + + + + Set of clauses composing the conditional. + + + + + + + + Each section is a well-nested subregion of the activity whose nodes follow any predecessors of the loop and precede any successors of the loop. The test section may precede or follow the body section. The setup section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the test produces a false value. The results of the final execution of the test or body are available after completion of execution of the loop. + + + + + If true, the test is performed before the first execution of the body. +If false, the body is executed once before the test is performed. + + + + + + + The set of nodes and edges that perform the repetitive computations of the loop. The body section is executed as long as the test section produces a true value. + + + + + + + The set of nodes and edges that initialize values or perform other setup computations for the loop. + + + + + + + An output pin within the test fragment the value of which is examined after execution of the test to determine whether to execute the loop body. + + + + + + + The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed. + + + + + + + + A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true. + + + + The decider output pin must be for the test body or a node contained by the test body as a structured node. + + + true + + + + + + A nested activity fragment with a designated output pin that specifies the result of the test. + + + + + + + A nested activity fragment that is executed if the test evaluates to true and the clause is chosen over any concurrent clauses that also evaluate to true. + + + + + + + A set of clauses whose tests must all evaluate false before the current clause can be tested. + + + + + + + A set of clauses which may not be tested unless the current clause tests false. + + + + + + + An output pin within the test fragment the value of which is examined after execution of the test to determine whether the body should be executed. + + + + + + + + An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + +Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: +- occurrences of primitive functions, such as arithmetic functions. +- invocations of behavior, such as activities. +- communication actions, such as sending of signals. +- manipulations of objects, such as reading or writing attributes or associations. + +Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + + + + + + + + Top-level structured nodes in the activity. + + + + + + + + + + Top-level variables in the activity. + + + + + + + + + + Top-level groups in the activity. + + + + + + + + + + Nodes coordinated by the activity. + + + + + + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. + + + + Activity nodes may be owned by at most one structured node. + + + true + + + + + + Structured activity node containing the node. + + + + + + + + + + Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + Activity containing the node. + + + + + + + + An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers. + + + + + + A sequence node is a structured activity node that executes its actions in order. + + + + + + + + An ordered set of executable nodes. + + + + + + + + An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + + Nodes immediately contained in the group. + + + + + + + Activity containing the group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An expansion node is an object node used to indicate a flow across the boundary of an expansion region. A flow into a region contains a collection that is broken into its individual elements inside the region, which is executed once per element. A flow out of a region combines individual elements into a collection for use outside the region. + + + + + The expansion region for which the node is an output. + + + + + + + The expansion region for which the node is an input. + + + + + + + + An expansion region is a strictly nested region of an activity with explicit input and outputs (modeled as ExpansionNodes). Each input is a collection of values. If there are multiple inputs, each of them must hold the same kind of collection, although the types of the elements in the different collections may vary. The expansion region is executed once for each element (or position) in the input collection. + +The number of output collections can differ from the number of input collections. On each execution of the region, an output value from the region is inserted into an output collection at the same position as the input elements. If the region execution ends with no output, then nothing is added to the output collection. When this happens the output collection will not have the same number of elements as the input collections, the region acts as a filter. If all the executions provide an output to the collection, then the output collections will have the same number of elements as the input collections. + +The inputs and outputs to an expansion region are modeled as ExpansionNodes. From "outside" of the region, the values on these nodes appear as collections. From "inside" the region the values appear as elements of the collections. Object flow edges connect pins outside the region to input and output expansion nodes as collections. Object flow edges connect pins inside the region to input and output expansion nodes as individual elements. From the inside of the region, these nodes are visible as individual values. If an expansion node has a name, it is the name of the individual element within the region. + +Any object flow edges that cross the boundary of the region, without passing through expansion nodes, provide values that are fixed within the different executions of the region. + + + + An ExpansionRegion must have one or more argument ExpansionNodes and zero or more result ExpansionNodes. + + + true + + + + + + The way in which the executions interact: +parallel: all interactions are independent +iterative: the interactions occur in order of the elements +stream: a stream of values flows into a single execution + + + + + + An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete. + + + + + + + An object node that holds a separate element of the input collection during each of the multiple executions of the region. + + + + + + + + ExpansionKind is an enumeration type used to specify how multiple executions of an expansion region interact. + + + + The executions are independent. They may be executed concurrently. + + + + + The executions are dependent and must be executed one at a time, in order of the collection elements. + + + + + A stream of collection elements flows into a single execution, in order of the collection elements. + + + + + + An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers. + + + + + + + + A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node. + + + + + + + + An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node. + + + + The exception handler and its input object node are not the source or target of any edge. + + + true + + + + + The result pins of the exception handler body must correspond in number and types to the result pins of the protected node. + + + true + + + + + The handler body has one input, and that input is the same as the exception input. + + + true + + + + + An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa. + + + true + + + + + + The node protected by the handler. The handler is examined if an exception propagates to the outside of the node. + + + + + + + A node that is executed if the handler satisfies an uncaught exception. + + + + + + + An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute. + + + + + + + The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body. + + + + + + + + + + + + + + + + + + + + + + + + + A conditional node consists of one or more clauses. Each clause consists of a test section and a body section. When the conditional node begins execution, the test sections of the clauses are executed. If one or more test sections yield a true value, one of the corresponding body sections will be executed. If more than one test section yields a true value, only one body section will be executed. The choice is nondeterministic unless the test sequence of clauses is specified. If no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node. + +In general, test section may be executed in any order, including simultaneously (if the underlying execution architecture supports it). The result may therefore be nondeterministic if more than one test section can be true concurrently. To enforce ordering of evaluation, sequencing constraints may be specified among clauses. One frequent case is a total ordering of clauses, in which case the clause execution order is determinate. If it is impossible for more than one test section to evaluate true simultaneously, the result is deterministic and it is unnecessary to order the clauses, as ordering may impose undesirable and unnecessary restrictions on implementation. Note that, although evaluation of test sections may be specified as concurrent, this does not require that the implementation evaluate them in parallel; it merely means that the model does not impose any order on evaluation. + +An "else" clause is a clause that is a successor to all other clauses in the conditional and whose test part always returns true. + +Output values created in the test or body section of a clause are potentially available for use outside the conditional. However, any value used outside the conditional must be created in every clause, otherwise an undefined value would be accessed if a clause not defining the value were executed. + + + + The result output pins have no incoming edges. + + + true + + + + + + + + + A list of output pins that constitute the data flow outputs of the conditional. + + + + + + + + A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins in CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution. + +Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node. + +Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of "atomicity", which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results. + + + + + The edges owned by a structured node must have source and target nodes in the structured node, and vice versa. + + + true + + + + + + + If true, then the actions in the node execute in isolation from actions outside the node. + + + + + + + + + Edges immediately contained in the structured node. + + + + + + + + Each section is a well-nested subregion of the activity whose nodes follow any predecessors of the loop and precede any successors of the loop. The test section may precede or follow the body section. The setup section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the test produces a false value. The results of the final execution of the test or body are available after completion of execution of the loop. + + + + Loop variable inputs must not have outgoing edges. + + + true + + + + + The bodyOutput pins are output pins on actions in the body of the loop node. + + + true + + + + + The result output pins have no incoming edges. + + + true + + + + + + + + + A list of output pins that constitute the data flow output of the entire loop. + + + + + + + + + + A list of output pins owned by the loop that hold the values of the loop variables during an execution of the loop. When the test fails, the values are movied to the result pins of the loop. + + + + + + + A list of output pins within the body fragment the values of which are moved to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits. + + + + + + + + + + A list of values that are moved into the loop variable pins before the first iteration of the loop. + + + + + + + + A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true. + + + + The bodyOutput pins are output pins on actions in the body of the clause. + + + true + + + + + A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node or conditional node after execution of the clause body. + + + + + + + + ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow. + + + + Activity edges may be owned by at most one structured node. + + + true + + + + + Structured activity node containing the edge. + + + + + + + + + + Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + Edges immediately contained in the group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + +Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: +- occurrences of primitive functions, such as arithmetic functions. +- invocations of behavior, such as activities. +- communication actions, such as sending of signals. +- manipulations of objects, such as reading or writing attributes or associations. + +Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + + + + The groups of an activity have no supergroups. + + + true + + + + + + + + + Nodes coordinated by the activity. + + + + + + + + + + Top-level groups in the activity. + + + + + + + + Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. +They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + + + + + + Nodes immediately contained in the group. + + + + + + + Activity containing the group. + + + + + + + + + + Groups immediately contained in the group. + + + + + + + + + + Group immediately containing the group. + + + + + + + + An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. + + + + + + An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. + + + + + Activity containing the node. + + + + + + + + + + Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated. One purpose of InformationItems is to be able to define preliminary models, before having made detailed modeling decisions on types or structures. One other purpose of information items and information flows is to abstract complex models by a less precise but more general representation of the information exchanged betwen entities of a system. + + + + + The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component. + + + (self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p | + p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and + p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and + (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or + oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))) + + + + + An informationItem has no feature, no generalization, and no associations. + + + self.generalization->isEmpty() and self.feature->isEmpty() + + + + + It is not instantiable. + + + isAbstract + + + + + + Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers. + + + + + + + + An information flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of InstanceSpecification), they may be represented by a link that joins the two, and so on. + + + + The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link). + + + (self.source->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and + (self.target->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) + + + + + The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships. + + + true + + + + + An information flow can only convey classifiers that are allowed to represent an information item. + + + + self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) + or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)) + + + + + + + Determines which Relationship will realize the specified flow + + + + + + + Specifies the information items that may circulate on this information flow. + + + + + + + Defines from which source the conveyed InformationItems are initiated. + + + + + + + Defines to which target the conveyed InformationItems are directed. + + + + + + + Determines which ActivityEdges will realize the specified flow. + + + + + + + Determines which Connectors will realize the specified flow. + + + + + + + Determines which Messages will realize the specified flow. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Model construct is defined as a Package. It contains a (hierarchical) set of elements that together describe the physical system being modeled. A Model may also contain a set of elements that represents the environment of the system, typically Actors, together with their interrelationships, such as Associations and Dependencies + + + + + The name of the viewpoint that is expressed by a model (This name may refer to a profile definition). + + + + + + + + + + TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding. + + + + Parameters must own the elements they parameter or those elements must be owned by the element being templated. + + + templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement) + + + + + + The ordered set of all formal template parameters for this template signature. + + + + + + + + + + The formal template parameters that are owned by this template signature. + + + + + + + The element that owns this template signature. + + + + + + + + NamedElement specializes Kernel::NamedElement and adds a composition association to Expression. + + + + + + + + The string expression used to define the name of this named element. + + + + + + + + TemplateParameter references a ParameterableElement which is exposed as a formal template parameter in the containing template. + + + + The default must be compatible with the formal template parameter. + + + default->notEmpty() implies default->isCompatibleWith(parameteredElement) + + + + + + The template signature that owns this template parameter. + + + + + + + The element exposed by this template parameter. + + + + + + + + + + The element that is owned by this template parameter. + + + + + + + The element that is the default for this formal template parameter. + + + + + + + + + + The element that is owned by this template parameter for the purpose of providing a default. + + + + + + + + StringExpression is a specialization of the general Expression metaclass which adds the ability to contain sub-expressions and whose operands are exclusively LiteralStrings. + + + + All the operands of a StringExpression must be LiteralStrings + + + operand->forAll (op | op.oclIsKindOf (LiteralString)) + + + + + If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to +define a collating sequence between operands and subexpressions). + + + + if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty() + + + + + + + + + + The StringExpressions that constitute this StringExpression. + + + + + + + The string expression of which this expression is a substring. + + + + + + + The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression. + + + + + result = if subExpression->notEmpty() +then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue())) +else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value)) + + + + + + + + + + + TemplateBinding is a directed relationship from a bound templateable element to the template signature of the target template. A TemplateBinding owns a set of template parameter substitutions. + + + + Each parameter substitution must refer to a formal template parameter of the target template signature. + + + parameterSubstitution->forAll(b | template.parameter->includes(b.formal)) + + + + + A binding contains at most one parameter substitution for each formal template parameter of the target template signature. + + + template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() <= 1) + + + + + + The element that is bound by this binding. + + + + + + + The template signature for the template that is the target of the binding. + + + + + + + + + + The parameter substitutions owned by this template binding. + + + + + + + + TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding. + + + + The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class. + + + actual->forAll(a | a.isCompatibleWith(formal.parameteredElement)) + + + + + + The formal template parameter that is associated with this substitution. + + + + + + + The optional bindings from this element to templates. + + + + + + + The elements that are the actual parameters for this substitution. + + + + + + + + + + The actual parameters that are owned by this substitution. + + + + + + + + TemplateableElement may contain a template signature which specifies the formal template parameters. A TemplateableElement that contains a template signature is often referred to as a template. TemplateableElement may contain bindings to templates that describe how the templateable element is constructed by replacing the formal template parameters with actual parameters. A TemplateableElement containing bindings is oftenreferred to as a bound element. + + + + + + + + The optional bindings from this element to templates. + + + + + + + + + + The optional template signature specifying the formal template parameters. + + + + + + + The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements. + + + + result = allOwnedElements->select(oclIsKindOf(ParameterableElement)) + + + + + + + + + + The query isTemplate() returns whether this templateable element is actually a template. + + + + result = ownedSignature->notEmpty() + + + + + + + + + + + A ParameterableElement can be referenced by a TemplateParameter when defining a formal template parameter for a template. A ParameterableElement can be referenced by a TemplateParameterSubstitution when used as an actual parameter in a binding of a template. +ParameterableElement is an abstract metaclass. + + + + + + The template parameter that exposes this element as a formal parameter. + + + + + + + The formal template parameter that owns this element. + + + + + + + The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints. + + + + result = p->oclIsKindOf(self.oclType) + + + + + + + + + + + The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter. + + + + result = templateParameter->notEmpty() + + + + + + + + + + + Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. + + + + A binding of a property template parameter representing an attribute must be to an attribute. + + + (isAttribute(self) and (templateParameterSubstitution->notEmpty()) + implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal))) + + + + + + + + ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. + + + + + The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element. + + + + + result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type) + + + + + + + + + + + + Operation specializes TemplateableElement in order to support specification of template operations and bound operations. + + + + + + The template parameter that exposes this element as a formal parameter. + + + + + + + + OperationTemplateParameter is a template parameter where the parametered element is an Operation. + + + + + The operation for this template parameter. + + + + + + + + PackageableElements are extended to enable any such element to serve as a template parameter. + + + + + + A classifier can be parameterized, exposed as a formal template parameter, and specified as an actual parameter in a binding of a template. + + + + + + + + + + The optional template signature specifying the formal template parameters. + + + + + + + The template parameter that exposes this element as a formal parameter. + + + + + + + The query isTemplate() returns whether this templateable element is actually a template. + + + + result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate()) + + + + + + + + + + + ClassifierTemplateParameter is a template parameter where the parametered element is a Classifier in its capacity of being a kind of ParameterableElement. + + + + If "allowSubstitutable" is true, then there must be a constrainingClassifier. + + + allowSubstitutable implies constrainingClassifier->notEmpty() + + + + + + Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter. + + + + + + + The parameterable classifier for this template parameter. + + + + + + + The classifier that is used by default if no argument is provided during template binding. If this property is empty, then there is no default. + + + + + + + The classifier that constrains the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted, otherwise it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument. + + + + + + + + RedefinableTemplateSignature specializes both TemplateSignature and RedefinableElement in order to allow the addition of new formal template parameters in the context of a specializing template Classifier. + + + + The inherited parameters are the parameters of the extended template signature. + + + if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif + + + + + + + The classifier that owns this template signature. + + + + + + + The template signature that is extended by this template signature. + + + + + + + + + + The formal template parameters of the extendedSignature. + + + + + + + The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = redefinee.oclIsKindOf(RedefineableTemplateSignature) + + + + + + + + + + + + ConnectableElement is the connectable element of a ConnectableElementTemplateParameter. +The ConnectableElements attached as role to each ConnectorEnd owned by a Connector must be roles of the classifier that owned the Connector, or they must be ports of such roles. + + + + + + The ConnectableElementTemplateParameter for this ConnectableElement parameter. + + + + + + + + ConnectableElementTemplateParameter is a template parameter where the parametered element is a ConnectableElement. + + + + + The ConnectableElement for this template parameter. + + + + + + + + Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Element is an abstract metaclass with no superclass. It is used as the common superclass for all metaclasses in the infrastructure library. Element has a derived composition association to itself to support the general capability for elements to own other elements. + + + + An element may not directly or indirectly own itself. + + + not self.allOwnedElements()->includes(self) + + + + + Elements that must be owned must have an owner. + + + self.mustBeOwned() implies owner->notEmpty() + + + + + + + + The Elements owned by this element. + + + + + + + + + + The Element that owns this element. + + + + + + + + + + The Comments owned by this element. + + + + + + + The query allOwnedElements() gives all of the direct and indirect owned elements of an element. + + + + result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements())) + + + + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation. + + + + result = true + + + + + + + + + + + A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment can be owned by any element. + + + + + + + + Specifies a string that is the comment. + + + + + + References the Element(s) being commented. + + + + + + + + A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass. + + + + + + + + Specifies the sources of the DirectedRelationship. + + + + + + + + + + Specifies the targets of the DirectedRelationship. + + + + + + + + A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass. + + + + If there is no name, or one of the containing namespaces has no name, there is no qualified name. + + + (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) + implies self.qualifiedName->isEmpty() + + + + + When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + + + (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies + self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + + + + + If a NamedElement is not owned by a Namespace, it does not have a visibility. + + + namespace->isEmpty() implies visibility->isEmpty() + + + + + + + + + The name of the NamedElement. + + + + + + + + Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility. + + + + + + + + + + A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself. + + + + + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. + + + + result = if self.namespace->isEmpty() +then Sequence{} +else self.namespace.allNamespaces()->prepend(self.namespace) +endif + + + + + + + + + + The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. + + + + result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) +then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty() +else true +endif + + + + + + + + + + + + The query separator() gives the string that is used to separate names when constructing a qualified name. + + + + result = '::' + + + + + + + + + + + A packageable element indicates a named element that may be owned directly by a package. + + + + + Indicates that packageable elements must always have a visibility, i.e., visibility is not optional. + + + + + + VisibilityKind is an enumeration of the following literal values: + - public + - private + - protected + - package + + + + The query bestVisibility() examines a set of VisibilityKinds that includes only public and private, and returns public as the preferred visibility. + + + + pre: not vis->includes(#protected) and not vis->includes(#package) + + + + + result = if vis->includes(#public) then #public else #private endif + + + + + + + + + + + + + An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. +One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. + + + + + If the language attribute is not empty, then the size of the body and language arrays must be the same. + + + language->notEmpty() implies (body->size() = language->size()) + + + + + The there is only one body then the size of the language is exactly 0 (corresponding to the default language). + + + language->isEmpty() implies (body->size() = 1) + + + + + + + + + + The text of the expression, possibly in multiple languages. + + + + + + + + + + + Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order. + + + + + + + + + + The query value() gives an integer value for an expression intended to produce one. + + + + self.isIntegral() + + + + + true + + + + + + + + + + The query isIntegral() tells whether an expression is intended to produce an integer. + + + + result = false + + + + + + + + + + + The query isPositive() tells whether an integer expression has a positive value. + + + + self.isIntegral() + + + + + result = false + + + + + + + + + + The query isNonNegative() tells whether an integer expression has a non-negative value. + + + + self.isIntegral() + + + + + result = false + + + + + + + + + + + A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled. + + + + + + A literal integer contains an Integer-valued attribute. + + + + + The specified Integer value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query integerValue() gives the value. + + + + result = value + + + + + + + + + + + A literal string contains a String-valued attribute. + + + + + The specified String value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query stringValue() gives the value. + + + + result = value + + + + + + + + + + + A literal boolean contains a Boolean-valued attribute. + + + + + The specified Boolean value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query booleanValue() gives the value. + + + + result = value + + + + + + + + + + + A literal null is used to represent null, i.e., the absence of a value. + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query isNull() returns true. + + + + result = true + + + + + + + + + + + Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. +Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to that element. Constraint contains an optional name, although they are commonly unnamed. + + + + The value specification for a constraint must evaluate to a Boolean value. + + + true + + + + + Evaluating the value specification for a constraint must not have side effects. + + + true + + + + + A constraint cannot be applied to itself. + + + not constrainedElement->includes(self) + + + + + + The ordered set of Elements referenced by this Constraint. + + + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + + An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It is also possible to control whether the imported element can be further imported. + + + + The visibility of an ElementImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + An importedElement has either public visibility or no visibility at all. + + + self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public + + + + + + Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import. + + + + + Specifies the name that should be added to the namespace of the importing Pack-age in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used. + + + + + + + + Specifies the PackageableElement whose name is to be added to a Namespace. + + + + + + + Specifies the Namespace that imports a PackageableElement from another Package. + + + + + + + The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace. + + + + result = if self.alias->notEmpty() then + self.alias +else + self.importedElement.name +endif + + + + + + + + + + + A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered. + + + + A multiplicity must define at least one valid cardinality that is greater than zero. + + + upperBound()->notEmpty() implies upperBound() > 0 + + + + + The lower bound must be a non-negative integer literal. + + + lowerBound()->notEmpty() implies lowerBound() >= 0 + + + + + The upper bound must be greater than or equal to the lower bound. + + + (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + + + + + If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects. + + + true + + + + + If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression. + + + true + + + + + + For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered. + + + + + + + For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. + + + + + + + + + + Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural. + + + + + + + + + + + + Specifies the lower bound of the multiplicity interval, if it is expressed as an integer. + + + + + + + + + + + + The specification of the upper bound for this multiplicity. + + + + + + + + + + The specification of the lower bound for this multiplicity. + + + + + + + + + + The derived lower attribute must equal the lowerBound. + + + + result = lowerBound() + + + + + + + + + + + + + The derived upper attribute must equal the upperBound. + + + + result = upperBound() + + + + + + + + + + The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + + + + upperBound()->notEmpty() + + + + + result = upperBound() > 1 + + + + + + + + + + The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + + + + upperBound()->notEmpty() and lowerBound()->notEmpty() + + + + + result = (lowerBound() <= C) and (upperBound() >= C) + + + + + + + + + + + + + The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + + + + self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() +and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + + + + + + result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + + + + + + + + + + + The query lowerBound() returns the lower bound of the multiplicity as an integer. + + + + result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif + + + + + + + + + + The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + + + + result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif + + + + + + + + + + + A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. +Typed element is an abstract metaclass. + + + + + + The type of the TypedElement. + + + + + + + + A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. +A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers. +A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. + + + + + Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + + + not self.allParents()->includes(self) + + + + + A classifier may only specialize classifiers of a valid type. + + + self.parents()->forAll(c | self.maySpecializeType(c)) + + + + + + + + If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. + + + + + + + + + + + Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy. + + + + + + + + + + Specifies each feature defined in the classifier. + + + + + + + + + + Specifies all elements inherited by this classifier from the general classifiers. + + + + + + + + + + Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier. + + + + + + + References the Classifiers that are redefined by this Classifier. + + + + + + + + + + Specifies the general Classifiers for this Classifier. + + + + + + + + + + The general classifiers are the classifiers referenced by the generalization relationships. + + + + result = self.parents() + + + + + + + + + + + + + The inheritedMember association is derived by inheriting the inheritable members of the parents. + + + + result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self)) + + + + + + + + + + The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. + + + + result = member->select(oclIsKindOf(Feature)) + + + + + + + + + + The query parents() gives all of the immediate ancestors of a generalized Classifier. + + + + result = generalization.general + + + + + + + + + + The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. + + + + c.allParents()->includes(self) + + + + + c.allParents()->includes(self) + + + + + result = member->select(m | c.hasVisibilityOf(m)) + + + + + + + + + + + The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. + + + + self.allParents()->collect(c | c.member)->includes(n) + + + + + result = if (self.inheritedMember->includes(n)) then (n.visibility <> #private) else true + + + + + + + + + + + The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. + + + + result = (self=other) or (self.allParents()->includes(other)) + + + + + + + + + + + The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. + + + + result = inhs + + + + + + + + + + + + + + The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + + + + result = self.oclIsKindOf(c.oclType) + + + + + + + + + + The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. + + + + result = self.parents()->union(self.parents()->collect(p | p.allParents()) + + + + + + + + + + + A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass. + + + + + Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true). + + + + + + + + + + The Classifiers that have this Feature as a feature. + + + + + + + + A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass. + + + + At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. + + + self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e)) + + + + + A redefining element must be consistent with each redefined element. + + + self.redefinedElement->forAll(re | re.isConsistentWith(self)) + + + + + + Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement. + + + + + + + + + + The redefinable element that is being redefined by this element. + + + + + + + + + + References the contexts that this element may be redefined from. + + + + + + + The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. + + + + redefinee.isRedefinitionContextValid(self) + + + + + + + result = false + + + + + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + + + + result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)) + + + + + + + + + + + A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier. +A generalization can be designated as being a member of a particular generalization set. + + + + + + Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier. + + + + + + References the specializing classifier in the Generalization relationship. + + + + + + + References the general classifier in the Generalization relationship. + + + + + + + + A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior. +BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + + + + + + + + + + Specifies the ordered set of formal parameters owned by this BehavioralFeature. The parameter direction can be 'in', 'inout', 'out', pr 'return' to specify input, output, or return parameters. + + + + + + + References the Types representing exceptions that may be raised during an invocation of this feature. + + + + + + + The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures. + + + + result = if n.oclIsKindOf(BehavioralFeature) +then + if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty() + then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type)) + else true + endif +else true +endif + + + + + + + + + + + + + A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature. It has a type, and may have a multiplicity and an optional default value. + + + + + + Indicates whether a parameter is being sent into or out of a behavioral element. + + + in + + + + + + + + Specifies a String that represents a value to be used when no argument is supplied for the Parameter. + + + + + + + + + + + Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter. + + + + + + + References the Operation owning this parameter. + + + + + + + + A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier. Structural feature is an abstract metaclass. +By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature. + + + + + + + + States whether the feature's value may be modified by a client. + + + + + + + + An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity. +The description may include: + +- Classification of the entity by one or more classifiers of which the entity is an instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity. +- The kind of instance, based on its classifier or classifiers -- for example, an instance specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association. +- Specification of values of structural features of the entity. Not all structural features of all classifiers of the instance specification need be represented by slots, in which case the instance specification is a partial description. +- Specification of how to compute, derive or construct the instance (optional). + +InstanceSpecification is a concrete class. + + + + + The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification. + + + slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature))) + + + + + One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification. + + + classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() <= 1))) + + + + + + The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them. + + + + + + + + + + A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description. + + + + + + + + + + A specification of how to compute, derive, or construct the instance. + + + + + + + + A slot is owned by an instance specification. It specifies the value or values for its defining feature, which must be a structural feature of a classifier of the instance specification owning the slot. + + + + + The instance specification that owns this slot. + + + + + + + The structural feature that specifies the values that may be held by the slot. + + + + + + + + + + The value or values corresponding to the defining feature for the owning instance specification. + + + + + + + + A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. +In addition a package can be merged with other packages. + + + + + If an element that is owned by a package has visibility, it is public or private. + + + self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private) + + + + + + + + + + References the PackageMerges that are owned by this Package. + + + + + + + + + + Specifies the packageable elements that are owned by this Package. + + + + + + + + + + References the packaged elements that are Types. + + + + + + + + + + References the packaged elements that are Packages. + + + + + + + + + + References the Package that owns this Package. + + + + + + + The query mustBeOwned() indicates whether elements of this type must have an owner. + + + + result = false + + + + + + + + + + The query visibleMembers() defines which members of a Package can be accessed outside it. + + + + result = member->select( m | self.makesVisible(m)) + + + + + + + + + + The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. + + + + self.member->includes(el) + + + + + result = (ownedMember->includes(el)) or +(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or +(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty()) + + + + + + + + + + + + A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace. + + + + The visibility of a PackageImport is either public or private. + + + self.visibility = #public or self.visibility = #private + + + + + + Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not. + + + + + Specifies the Namespace that imports the members from a Package. + + + + + + + Specifies the Package whose members are imported into a Namespace. + + + + + + + + Class is a kind of classifier whose features are attributes and operations. Attributes of a class are represented by instances of Property that are owned by the class. Some of these attributes may represent the navigable ends of binary associations. + + + + + If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. + + + + + + + + + + References all the Classifiers that are defined (nested) within the Class. + + + + + + + + + + The attributes (i.e. the properties) owned by the class. + + + + + + + + + + The operations owned by the class. + + + + + + + + + + This gives the superclasses of a class. + + + + + + + The inherit operation is overridden to exclude redefined properties. + + + + result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + + + + + + + + + + + + + + + A property is a structural feature. +A property related to a classifier by ownedAttribute represents an attribute, and it may also represent an association end. It relates an instance of the class to a value or collection of values of the type of the attribute. +A property related to an Association by memberEnd or its specializations represents an end of the association. The type of property is the type of the end of the association. + + + + + A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1. + + + isComposite implies (upperBound()->isEmpty() or upperBound() <= 1) + + + + + Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. + + + self.subsettedProperty->notEmpty() implies + (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc | + self.subsettedProperty->forAll(sp | + sp.subsettingContext()->exists(c | sc.conformsTo(c))))) + + + + + A navigable property can only be redefined or subsetted by a navigable property. + + + (self.subsettedProperty->exists(sp | sp.isNavigable()) implies self.isNavigable()) + and (self.redefinedProperty->exists(rp | rp.isNavigable()) implies self.isNavigable()) + + + + + A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less. + + + self.subsettedProperty->forAll(sp | + self.type.conformsTo(sp.type) and + ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies + self.upperBound()<=sp.upperBound() )) + + + + + Only a navigable property can be marked as readOnly. + + + isReadOnly implies isNavigable() + + + + + A derived union is derived. + + + isDerivedUnion implies isDerived + + + + + A derived union is read only. + + + isDerivedUnion implies isReadOnly + + + + + + Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. + + + + + + + If true, the attribute may only be read, and not written. + + + + + + + Specifies whether the property is derived as the union of all of the properties that are constrained to subset it. + + + + + + + + + + A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated. + + + + + + + + Specifies the kind of aggregation that applies to the Property. + + + none + + + + + + + + This is a derived value, indicating whether the aggregation of the Property is composite or not. + + + + + + + + + + + + + References the properties that are redefined by this property. + + + + + + + References the owning association of this property. + + + + + + + The DataType that owns this Property. + + + + + + + + + + + A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated. + + + + + + + + + + In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end. + + + + + + + References the properties of which this property is constrained to be a subset. + + + + + + + References the association of which this property is a member, if any. + + + + + + + The query isAttribute() is true if the Property is defined as an attribute of some classifier. + + + + result = Classifier.allInstances->exists(c | c.attribute->includes(p)) + + + + + + + + + + + + + + If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end. + + + + result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2 + then + let otherEnd = (association.memberEnd - self)->any() in + if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif + else Set {} + endif + + + + + + + The value of isComposite is true only if aggregation is composite. + + + + result = (self.aggregation = #composite) + + + + + + + + + + The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined attribute is property. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = redefinee.oclIsKindOf(Property) and + let prop : Property = redefinee.oclAsType(Property) in + (prop.type.conformsTo(self.type) and + ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and + ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() <= self.lowerBound()) and + (self.isDerived implies prop.isDerived) and + (self.isComposite implies prop.isComposite)) + + + + + + + + + + + The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends. + + + + result = if association->notEmpty() +then association.endType-type +else if classifier->notEmpty() then Set{classifier} else Set{} endif +endif + + + + + + + + + + The query isNavigable() indicates whether it is possible to navigate across the property. + + + + result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self) + + + + + + + + + + + An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. +One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. + + + + + An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' + + + self.ownedParameter->select(par | par.direction = #return)->size() <= 1 + + + + + A bodyCondition can only be specified for a query operation. + + + bodyCondition->notEmpty() implies isQuery + + + + + + Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false). + + + + + + + + + + Specifies whether the return parameter is ordered or not, if present. + + + + + + + + + + Specifies whether the return parameter is unique or not, if present. + + + + + + + + + + Specifies the lower multiplicity of the return parameter, if present. + + + + + + + + + + + + Specifies the upper multiplicity of the return parameter, if present. + + + + + + + + + + + + The class that owns this operation. + + + + + + + + + + An optional set of Constraints on the state of the system when the Operation is invoked. + + + + + + + + + + An optional set of Constraints specifying the state of the system when the Operation is completed. + + + + + + + References the Operations that are redefined by this Operation. + + + + + + + The DataType that owns this Property. + + + + + + + + + + An optional Constraint on the result values of an invocation of this Operation. + + + + + + + + + + Specifies the return result of the operation, if present. + + + + + + + + + + Specifies the parameters owned by this Operation. + + + + + + + References the Types representing exceptions that may be raised during an invocation of this operation. + + + + + + + If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false. + + + + result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif + + + + + + + + + + If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true. + + + + + result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif + + + + + + + + + + + + + If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + + + + + result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif + + + + + + + + + + + + + If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + + + + + result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif + + + + + + + + + + If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined. + + + + result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif + + + + + + + The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter. + + + + redefinee.isRedefinitionContextValid(self) + + + + + result = (redefinee.oclIsKindOf(Operation) and +let op: Operation = redefinee.oclAsType(Operation) in +self.ownedParameter.size() = op.ownedParameter.size() and +forAll(i | op.ownedParameter[i].type.conformsTo(self.ownedParameter[i].type)) +) + + + + + + + + + + + The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set + + + + result = ownedParameter->select (par | par.direction = #return) + + + + + + + + + + + A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types. +A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types. + + + + + + + + + The Attributes owned by the DataType. + + + + + + + + + + The Operations owned by the DataType. + + + + + + + + Enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals. +It is possible to extend the set of applicable enumeration literals in other packages or profiles. + + + + + + + + + The ordered set of literals for this Enumeration. + + + + + + + + An enumeration literal is a user-defined data value for an enumeration. + + + + + The Enumeration that this EnumerationLiteral is a member of. + + + + + + + + A primitive type defines a predefined data type, without any relevant substructure (i.e. it has no parts in the context of the UML). A primitive datatype may have an algebra and operations defined out of UML, for example, mathematically. + + + + + + An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of an association may have the same type. + +An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends. + + + + An association specializing another association has the same number of ends as the other association. + + + self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size()) + + + + + When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end. + + + true + + + + + Only binary associations can be aggregations. + + + self.memberEnd->exists(aggregation <> Aggregation::none) implies self.memberEnd->size() = 2 + + + + + Association ends of associations with more than two ends must be owned by the association. + + + if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd) + + + + + + + Specifies whether the association is derived from other model elements such as other associations or constraints. + + + + + + + + + + The ends that are owned by the association itself. + + + + + + + + + + References the classifiers that are used as types of the ends of the association. + + + + + + + Each end represents participation of instances of the classifier connected to the end in links of the association. + + + + + + + The navigable ends that are owned by the association itself. + + + + + + + endType is derived from the types of the member ends. + + + + result = self.memberEnd->collect(e | e.type) + + + + + + + + + + + A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + +A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace. + +A namespace has the ability to import either individual members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements. + + + + + + All the members of a Namespace are distinguishable within it. + + + membersAreDistinguishable() + + + + + + + + + References the ElementImports owned by the Namespace. + + + + + + + + + + References the PackageImports owned by the Namespace. + + + + + + + + + + Specifies a set of Constraints owned by this Namespace. + + + + + + + + + + A collection of NamedElements owned by the Namespace. + + + + + + + + + + A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance. + + + + + + + + + + References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + + + + + + + + + + The importedMember property is derived from the ElementImports and the PackageImports. + + + + result = self.importMembers(self.elementImport.importedElement.asSet()- +>union(self.packageImport.importedPackage->collect(p | p.visibleMembers()))) + + + + + + + + + + The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + + + + result = if self.ownedMember ->includes(element) +then Set{}->include(element.name) +else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in + if elementImports->notEmpty() + then elementImports->collect(el | el.getName()) + else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element)) + endif +endif + + + + + + + + + + + + + The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it. + + + + result = self.member->forAll( memb | +self.member->excluding(memb)->forAll(other | +memb.isDistinguishableFrom(other, self))) + + + + + + + + + + The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported. + + + + result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem | +mem.imp.isDistinguishableFrom(mem, self))) + + + + + + + + + + + The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace. + + + + result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self))) + + + + + + + + + + + + ParameterDirectionKind is an enumeration of the following literal values: +• in Indicates that parameter values are passed into the behavioral element by the caller. +• inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. +• out Indicates that parameter values are passed from a behavioral element out to the caller. +• return Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + Indicates that parameter values are passed into the behavioral element by the caller. + + + + + Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + + + + + + Indicates that parameter values are passed as return values from a behavioral element back to the caller. + + + + + + ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. + + + + + + The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals. + + + + result = false + + + + + + + + + + The query integerValue() gives a single Integer value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query booleanValue() gives a single Boolean value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query stringValue() gives a single String value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed. + + + + result = Set{} + + + + + + + + + + The query isNull() returns true when it can be computed that the value is null. + + + + result = false + + + + + + + + + + + A relationship references one or more related elements. Relationship is an abstract metaclass. + + + + + + + + Specifies the elements related by the Relationship. + + + + + + + + A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel. + +Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed. + + + + + + References the Package that is being extended with the contents of the merged package of the PackageMerge. + + + + + + + References the Package that is to be merged with the receiving package of the PackageMerge. + + + + + + + + An instance value specifies the value modeled by an instance specification. + + + + + The instance that is the specified value. + + + + + + + + AggregationKind is an enumeration of the following literal values: +• none Indicates that the property has no aggregation. +• shared Indicates that the property has a shared aggregation. +• composite Indicates that the property is aggregated compositely, i.e., the composite object has +responsibility for the existence and storage of the composed objects (parts). + + + + + Indicates that the property has no aggregation. + + + + + Indicates that the property has a shared aggregation. + + + + + Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts). + + + + + + A literal unlimited natural contains a UnlimitedNatural-valued attribute. + + + + + The specified UnlimitedNatural value. + + + + + + The query isComputable() is redefined to be true. + + + + result = true + + + + + + + + + + The query unlimitedValue() gives the value. + + + + result = value + + + + + + + + + + + A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass. + + + + + + + + Specifies the owning package of this classifier, if any. + + + + + + + The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations. + + + + result = false + + + + + + + + + + + + An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications. + + + + + The symbol associated with the node in the expression tree. + + + + + + + + + Specifies a sequence of operands. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface. +Since interfaces are declarations, they are not instantiable. Instead, an interface specification is implemented by an instance of an instantiable classifier, which means that the instantiable classifier presents a public facade that conforms to the interface specification. Note that a given classifier may implement more than one interface and that an interface may be implemented by a number of different classifiers. + + + + + The visibility of all features owned by an interface must be public. + + + self.feature->forAll(f | f.visibility = #public) + + + + + + + + + The attributes (i.e. the properties) owned by the class. + + + + + + + + + + The operations owned by the class. + + + + + + + + + + References all the Classifiers that are defined (nested) within the Class. + + + + + + + References all the Interfaces redefined by this Interface. + + + + + + + + An InterfaceRealization is a specialized Realization relationship between a Classifier and an Interface. This relationship signifies that the realizing classifier conforms to the contract specified by the Interface. + + + + + References the Interface specifying the conformance contract. + + + + + + + References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points). + + + + + + + + A BehavioredClassifier may have an interface realization. + + + + + + + + + + + + + + + An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior. + + + + + The Interface that owns this Operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a Usage is a Dependency in which the client requires the presence of the supplier. + + + + + + + An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. In the metamodel, an Abstraction is a Dependency in which there is a mapping between the supplier and the client. + + + + + + + + An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified. + + + + + + + + A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s). + + + + + + The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific. + + + + + + + The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation. + + + + + + + + Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc. + + + + + + A substitution is a relationship between two classifiers signifies that the substitutingClassifier complies with the contract specified by the contract classifier. This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract classifier are expected. + + + + + + + + + + + + + + + + A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. +A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers. +A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. + + + + + + + + + + References the substitutions that are owned by this Classifier. + + + + + + + + A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass. + + + + + Indicates the dependencies that reference the client. + + + + + + + + + + Specifies the namespace that owns the NamedElement. + + + + + + + + A packageable element indicates a named element that may be owned directly by a package. + + + + + + A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + + + + + + + + A collection of NamedElements owned by the Namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates the dependencies that reference the supplier. + + + + + + + + + + + + + + + Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., from a class to its superclasses). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a general Classifier (or superclass) may be divided using specific subtypes. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the general classifier, however one Generalization would involve Male Person as the specific Classifier and the other would involve Female Person as the specific classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be divided into North American Person, Asian Person, European Person, or something else. This collection of subsets would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the general Classifier; only the specific classifiers would differ: i.e., North American Person, Asian Person, and European Person. + + + + Every Generalization associated with a particular GeneralizationSet must have the same general Classifier. + + + generalization->collect(g | g.general)->asSet()->size() <= 1 + + + + + The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses. + + + true + + + + + + Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet. For example, Person could have two Generalization relationships each with a different specific Classifier: Male Person and Female Person. This GeneralizationSet would be covering because every instance of Person would be an instance of Male Person or Female Person. In contrast, Person could have a three Generalization relationships involving three specific Classifiers: North American Person, Asian Person, and European Person. This GeneralizationSet would not be covering because there are instances of Person for which these three specific Classifiers do not apply. The first example, then, could be read: any Person would be specialized as either being a Male Person or a Female Person—and nothing else; the second could be read: any Person would be specialized as being North American Person, Asian Person, European Person, or something else. + + + + + + Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager. + + + + + + Designates the Classifier that is defined as the power type for the associated GeneralizationSet. + + + + + + + Designates the instances of Generalization which are members of a given GeneralizationSet. + + + + + + + + A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. +A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers. +A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. + + + + + The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses. + + + true + + + + + Designates the GeneralizationSet of which the associated Classifier is a power type. + + + + + + + + A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier. + + + + + + Every Generalization associated with a given GeneralizationSet must have the same general Classifier. That is, all Generalizations for a particular GeneralizationSet must have the same superclass. + + + true + + + + + Designates a set in which instances of Generalization is considered members. + + + + + + + + + + + + + In the metamodel, an AssociationClass is a declaration of a semantic relationship between Classifiers, which has a set of features of its own. AssociationClass is both an Association and a Class. + + + + An AssociationClass cannot be defined between itself and something else. + + + self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self)) + + + + + + + The operation allConnections results in the set of all AssociationEnds of the Association. + + + + result = memberEnd->union ( self.parents ()->collect (p | p.allConnections () ) + + + + + + + + + + + Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type. + + + + + + + + + An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified. + + + + + + + Designates the optional association end that owns a qualifier attribute. + + + + + + + + + + + + + + + + + + A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method. + + + + Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features. + + + + + The signals that the behavioral feature raises as exceptions. + + + + + + + + A call event represents the reception of a request to invoke a specific operation. A call event is distinct from the call action that caused it. A call event may cause the invocation of a behavior that is the method of the operation referenced by the call request, if that operation is owned or inherited by the classifier that specified the receiver object. + + + + + Designates the operation whose invocation raised the call event. + + + + + + + + A change event occurs when a Boolean-valued expression becomes true, for example, as a result of a change in the value held in a slot corresponding to an attribute, or a change in the value referenced by a link corresponding to an association. A change event is raised implicitly and is not the result of an explicit action. + + + + + + + + A Boolean-valued expression that will result in a change event whenever its value changes from false to true. + + + + + + + + A class may be designated as active, i.e., each of its instances having its own thread of control, or passive, i.e., each of its instance executing within the context of some other object. A class may also specify which signals the instances of this class handle. + + + + A passive class may not own receptions. + + + not self.isActive implies self.ownedReception.isEmpty() + + + + + + Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class. + + + + + + + + + Receptions that objects of this class are willing to accept. + + + + + + + + A trigger specifies an event that may cause the execution of an associated behavior. An event is often ultimately caused by the execution of an action, but need not be. + + + + + The event that causes the trigger. + + + + + + + + Adds the capability for interfaces to include receptions (in addition to operations). + + + + + + + + Receptions that objects providing this interface are willing to accept. + + + + + + + + A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself. + + + + A Reception can not be a query. + + + not self.isQuery + + + + + + The signal that this reception handles. + + + + + + + + A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence. + + + + + + + + The attributes owned by the signal. + + + + + + + + A signal event represents the receipt of an asynchronous signal. A signal event may cause a response, such as a state machine transition as specified in the classifier behavior of the classifier that specified the receiver object, if the signal referenced by the send request is mentioned in a reception owned or inherited by the classifier that specified the receiver object. + + + + + The specific signal that is associated with this event. + + + + + + A time event specifies a point in time by an expression. The expression might be absolute or might be relative to some other point in time. + + + + + Specifies whether it is relative or absolute time. + + + + + + + + + Specifies the corresponding time deadline. + + + + + + + + CallConcurrencyKind is an enumeration with the following literals: +• sequential No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once. +• guarded Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. +• concurrent Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. + + + + + + No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once. + + + + + Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. + + + + + Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. + + + + + + A message event specifies the receipt by an object of either a call or a signal. MessageEvent is an abstract metaclass. + + + + + + A transition trigger associated with AnyReceiveEvent specifies that the transition is to be triggered by the receipt of any message that is not explicitly referenced in another transition from the same vertex. + + + + + + A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself. + + + + + + + + References Trigger descriptions owned by a Classifier. + + + + + + + + An event is the specification of some occurrence that may potentially trigger effects by an object. + + + + + + An operation may invoke both the execution of method behaviors as well as other behavioral responses. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution. + +A classifier behavior is always a definition of behavior and not an illustration. It describes the sequence of state changes an instance of a classifier may undergo in the course of its lifetime. Its precise semantics depends on the kind of classifier. For example, the classifier behavior of a collaboration represents emergent behavior of all the parts, whereas the classifier behavior of a class is just the behavior of instances of the class separated from the behaviors of any of its parts. +When a behavior is associated as the method of a behavioral feature, it defines the implementation of that feature; i.e., the computation that generates the effects of the behavioral feature. + +As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as "invoking" the behavior, an instantiated behavior is also called a behavior "execution." A behavior may be invoked directly or its invocation may be the result of invoking the behavioral feature that specifies this behavior. A behavior can also be instantiated as an object in virtue of it being a class. The specification of a behavior can take a number of forms, as described in the subclasses of Behavior. Behavior is an abstract metaclass factoring out the commonalities of these different specification mechanisms. + +When a behavior is invoked, its execution receives a set of input values that are used to affect the course of execution and as a result of its execution it produces a set of output values which are returned, as specified by its parameters. The observable effects of a behavior execution may include changes of values of various objects involved in the execution, the creation and destruction of objects, generation of communications between objects, as well as an explicit set of output values. + + + + + The parameters of the behavior must match the parameters of the implemented behavioral feature. + + + true + + + + + The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior. + + + true + + + + + If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature. + + + true + + + + + There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior). + + + true + + + + + + Tells whether the behavior can be invoked while it is still executing from a previous invocation. + + + + + + References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior. + + + + + + + Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. If a behavior does not have a specification, it is directly associated with a classifier (i.e., it is the behavior of the classifier as a whole). + + + + + + + + + + References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution. + + + + + + + + The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the owner of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior. + + + + + + + + A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself. + + + + If a behavior is classifier behavior, it does not have a specification. + + + self.classifierBehavior.notEmpty() implies self.specification.isEmpty() + + + + + + + + + References behavior specifications owned by a classifier. + + + + + + + A behavior specification that specifies the behavior of the classifier itself. + + + + + + + + Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result. + + + + The behavior may only have return result parameters. + + + self.behavior.notEmpty() implies + self.behavior.ownedParameters->select(p | p.direction<>#return)->isEmpty() + + + + + The behavior must have exactly one return result parameter. + + + self.behavior.notEmpty() implies + self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1 + + + + + + + + Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior. + + + + + + + Specifies the behavior of the opaque expression. + + + + + + + + A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method. + + + + If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element. + + + + + + A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior). + + + + + + + + An behavior with implementation-specific semantics. + + + + + + + + Specifies the behavior in one or more languages. + + + + + + + + + + + Languages the body strings use in the same order as the body strings. + + + + + + + + + A function behavior is an opaque behavior that does not access or modify any objects or other external data. + + + + A function behavior has at least one output parameter. + + + self.ownedParameters-> + select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1 + + + + + The types of parameters are all data types, which may not nest anything but other datatypes. + + + def: hasAllDataTypeAttributes(d : DataType) : Boolean = + d.ownedAttribute->forAll(a | + a.type.oclIsTypeOf(DataType) and + hasAllDataTypeAttributes(a.type)) +self.ownedParameters->forAll(p | p.type.notEmpty() and + p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p)) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A TimeExpression defines a value specification that represents a time value. + + + + + True if the TimeExpression describes the first point in time of the NamedElement referenced by event, in cases where the NamedElement describes something which extends in time. False if the TimeExpression describes the last point in time for the referenced NamedElement. + + + + + + + Refers to the specification of the event occurrence that the TimeExpression describes + + + + + + + + A duration defines a value specification that specifies the temporal distance between two time expressions that specify time instants. + + + + + If the duration is between times of two NamedElements, there are two Boolean attributes, one for the start of the duration and one for the end of the duration. For each of these it holds that firstTime is true if the time information is associated with the first point in time of the NamedElement referenced by event, and false if it represents the last point in time of the NamedElement. If there is only one NamedElement referenced by event, then this attribute is irrelevant. + + + + + + + Refers to the specification(s) that describes the starting TimeExpression and the ending TimeExpression of the Duration. If only one NamedElement is referenced, the duration is from the first point in time of that NamedElement until the last point in time of that NamedElement. + + + + + + + + A TimeObservationAction defines an action that observes the current point in time and writes this value to a structural feature. + + + + The value of a TimeObservationAction’s input must be a TimeExpression. + + + self.value.value.oclIsKindOf(TimeExpression) + + + + + + + + + Represents the current point in time and the value which is observed given by the keyword now. + + + + + + + + Input whose time expression is to be written to the structural feature. + + + + + + + + + + + self.value.value.oclAsType(TimeExpression) + + + + + + + + A DurationInterval defines the range between two Durations. + + + + + Refers to the Duration denoting the minimum value of the range. + + + + + Refers to the Duration denoting the maximum value of the range. + + + + + + A TimeConstraint defines a Constraint that refers to a TimeInterval. + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + + A TimeInterval defines the range between two TimeExpressions. + + + + + Refers to the TimeExpression denoting the maximum value of the range. + + + + + Refers to the TimeExpression denoting the minimum value of the range. + + + + + + A DurationObservationAction defines an action that observes duration in time and writes this value to a structural feature. + + + + The value of a DurationObservationAction’s input must be a Duration. + + + self.value.value.oclIsKindOf(Duration) + + + + + + + + + Represents the measured Duration + + + + + + + + Input whose duration is to be written to the structural feature. + + + + + + + + + + + result = self.value.value.oclAsType(Duration) + + + + + + + + A DurationConstraint defines a Constraint that refers to a DurationInterval. + + + + + + + + The interval constraining the duration. + + + + + + + + A IntervalConstraint defines a Constraint that refers to an Interval. + + + + + + + + A condition that must be true when evaluated in order for the constraint to be satisfied. + + + + + + + + An Interval defines the range between two value specifications. + + + + + Refers to the ValueSpecification denoting the minimum value of the range. + + + + + + + Refers to the ValueSpecification denoting the maximum value of the range. + + + + + + + + A time event specifies a point in time by an expression. The expression might be absolute or might be relative to some other point in time. + + + + + + + + Specifies the corresponding time deadline. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A component is a subtype of Class which provides for a Component having attributes and operations, and being able to participate in Associations and Generalizations. A Component may form the abstraction for a set of realizingClassifiers that realize its behavior. In addition, because a Class itself is a subtype of an EncapsulatedClassifier, a Component may optionally have an internal structure and own a set of Ports that formalize its interaction points. + +A component has a number of provided and required Interfaces, that form the basis for wiring components together, either using Dependencies, or by using Connectors. A provided Interface is one that is either implemented directly by the component or one of its realizingClassifiers, or it is the type of a provided Port of the Component. A required interface is designated by a Usage Dependency from the Component or one of its realizingClassifiers, or it is the type of a required Port. + + + + + + + + + The set of PackageableElements that a Component owns. In the namespace of a component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g. Classes, Interfaces, Components, Packages, Use cases, Dependencies (e.g. mappings), and Artifacts. + + + + + + + + + + + + + + + + + + A component is a subtype of Class which provides for a Component having attributes and operations, and being able to participate in Associations and Generalizations. A Component may form the abstraction for a set of realizingClassifiers that realize its behavior. In addition, because a Class itself is a subtype of an EncapsulatedClassifier, a Component may optionally have an internal structure and own a set of Ports that formalize its interaction points. + +A component has a number of provided and required Interfaces, that form the basis for wiring components together, either using Dependencies, or by using Connectors. A provided Interface is one that is either implemented directly by the component or one of its realizingClassifiers, or it is the type of a provided Port of the Component. A required interface is designated by a Usage Dependency from the Component or one of its realizingClassifiers, or it is the type of a required Port. + + + + + + + The kind of instantiation that applies to a Component. If false, the component is instantiated as an addressable object. If true, the Component is defined at design-time, but at runtime (or execution-time) an object specified by the Component does not exist, that is, the component is instantiated indirectly, through the instantiation of its realizing classifiers or parts. Several standard stereotypes use this meta attribute, e.g. «specification, «focus», «subsystem». + + + + + + + + + The interfaces that the component requires from other components in its environment in order to be able to offer its full set of provided functionality. These interfaces may be Used by the Component or any of its realizingClassifiers, or they may be the Interfaces that are required by its public Ports. + + + + + + + + + + The interfaces that the component exposes to its environment. These interfaces may be Realized by the Component or any of its realizingClassifiers, or they may be the Interfaces that are provided by its public Ports. + + + + + + + + + + The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior. + + + + + + + Utility returning the set of realized interfaces of a component: + + + + result = (classifier.clientDependency-> +select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))-> +collect(dependency|dependency.client) + + + + + + + + + + Utility returning the set of used interfaces of a component: + + + + result = (classifier.supplierDependency-> +select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))-> +collect(dependency|dependency.supplier) + + + + + + + + + + + + + + result = let usedInterfaces = UsedInterfaces(self) and + let realizingClassifierUsedInterfaces = UsedInterfaces(self.realizingClassifier) and + let typesOfUsedPorts = self.ownedPort.required in + ((usedInterfaces->union(realizingClassifierUsedInterfaces))-> + union(typesOfUsedPorts))->asSet() + + + + + + + + + + + + + + result = let implementedInterfaces = self.implementation->collect(impl|impl.contract) and + let realizedInterfaces = RealizedInterfaces(self) and + let realizingClassifierInterfaces = RealizedInterfaces(self.realizingClassifier) and + let typesOfRequiredPorts = self.ownedPort.provided in + (((implementedInterfaces->union(realizedInterfaces)->union(realizingClassifierInterfaces))-> + union(typesOfRequiredPorts))->asSet() + + + + + + + + + + + In the metamodel, a ComponentRealization is a subtype of Dependencies::Realization. + + + + + + + + + + + + + + In the metamodel, a connector kind attribute is added to the Connector metaclass. Its value is an enumeration type with valid values 'assembly' or 'delegation'. + + + + A delegation connector must only be defined between used Interfaces or Ports of the same kind, e.g. between two provided Ports or between two required Ports. + + + true + + + + + If a delegation connector is defined between a used Interface or Port and an internal Part Classifier, then that Classifier must have an 'implements' relationship to the Interface type of that Port. + + + true + + + + + If a delegation connector is defined between a source Interface or Port and a target Interface or Port, then the target Interface must support a signature compatible subset of Operations of the source Interface or Port. + + + true + + + + + In a complete model, if a source Port has delegation connectors to a set of delegated target Ports, then the union of the Interfaces of these target Ports must be signature compatible with the Interface that types the source Port. + + + true + + + + + An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port. + + + true + + + + + Indicates the kind of connector. + + + + + + + + + + + + ConnectorKind is an enumeration of the following literal values: +• assembly Indicates that the connector is an assembly connector. +• delegation Indicates that the connector is a delegation connector. + + + + + Indicates that the connector is an assembly connector. + + + + + Indicates that the connector is a delegation connector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extends the metaclass Class with the capability to have an internal structure and ports. + + + + + + + + + A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. + +Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration. + + + + + All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible. + + + true + + + + + Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation. + + + true + + + + + The connectors in the classifier connect according to the connectors in the collaboration + + + true + + + + + + The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use. + + + + + + + + + + A mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles). + + + + + + + + + A collaboration is represented as a kind of classifier and defines a set of cooperating entities to be played by instances (its roles), as well as a set of connectors that define communication paths between the participating instances. The cooperating entities are the properties of the collaboration. + +A collaboration specifies a view (or projection) of a set of cooperating classifiers. It describes the required links between instances that play the roles of the collaboration, as well as the features required of the classifiers that specify the participating instances. Several collaborations may describe different projections of the same set of classifiers. + + + + + + + + References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration. + + + + + + + + Classifier is extended with the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier. + + + + + + + References a collaboration use which indicates the collaboration that represents this classifier. + + + + + + + + + + References the collaboration uses owned by the classifier. + + + + + + + + Parameters are allowed to be treated as connectable elements. + + + + A parameter may only be associated with a connector end within the context of a collaboration. + + + self.end.notEmpty() implies self.collaboration.notEmpty() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ports represent interaction points between a classifier and its environment. The interfaces associated with a port specify the nature of the interactions that may occur over a port. The required interfaces of a port characterize the requests which may be made from the classifier to its environment through this port. The provided interfaces of a port characterize requests to the classifier that its environment may make through this port. + +A port has the ability to specify that any requests arriving at this port are handled by the behavior of the instance of the owning classifier, rather than being forwarded to any contained instances, if any. + + + + + The required interfaces of a port must be provided by elements to which the port is connected. + + + true + + + + + Port.aggregation must be composite. + + + true + + + + + When a port is destroyed, all connectors attached to this port will be destroyed also. + + + true + + + + + A defaultValue for port cannot be specified when the type of the Port is an Interface + + + true + + + + + + Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain. + + + + + + + If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation. + + + + + + + + + + References the interfaces specifying the set of operations and receptions which the classifier expects its environment to handle. This association is derived as the set of interfaces required by the type of the port or its supertypes. + + + + + + + A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes. + + + + + + + + + + References the interfaces specifying the set of operations and receptions which the classifier offers to its environment, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived from the interfaces realized by the type of the port or by the type of the port, if the port was typed by an interface. + + + + + + + + + Extends a classifier with the ability to own ports as specific and type checked interaction points. + + + + + + + + References a set of ports that an encapsulated classifier owns. + + + + + + + + A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector. + + + + If a connector end is attached to a port of the containing classifier, partWithPort will be empty. + + + true + + + + + If a connector end references both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort. + + + true + + + + + The property held in self.partWithPort must not be a Port. + + + true + + + + + Indicates the role of the internal structure of a classifier with the port to which the connector end is attached. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object. + + + + The onPort must be a port on the receiver object. + + + true + + + + + A optional port of the receiver object on which the behavioral feature is invoked. + + + + + + + + A trigger specification may be qualified by the port on which the event occurred. + + + + A optional port of the receiver object on which the behavioral feature is invoked. + + + + + + + + + + + + + + + + + + + + + + + + A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector. + + + + The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector. + + + true + + + + + + + + + A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end. + + + + + + + + The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element. + + + + + + + + + Each connector may be attached to two or more connectable elements, each representing a set of instances. Each connector end is distinct in the sense that it plays a distinct role in the communication realized over a connector. The communications realized over a connector may be constrained by various constraints (including type constraints) that apply to the attached connectable elements. + + + + The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any. + + + true + + + + + The connectable elements attached to the ends of a connector must be compatible. + + + true + + + + + The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles. + + + true + + + + + + An optional association that specifies the link corresponding to this connector. + + + + + + + A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. +The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced. + + + + + + + + + + A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered. + + + + + + + + A property represents a set of instances that are owned by a containing classifier instance. + + + + + + + A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances. + + + + The multiplicities on connected elements must be consistent. + + + true + + + + + + + + + References the properties owned by the classifier. + + + + + + + + + + References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true. + + + + + + + + + + References the roles that instances may play in this classifier. + + + + + + + + + + References the connectors owned by the classifier. + + + + + + + + A ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier. + + + + + Denotes a connector that attaches to this connectable element. + + + + + + + + Classifier is extended with the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier. + + + + + + + Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A variable is considered a connectable element. + + + + + + + + + + + + + + A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files. + + + + + + + + The specification of properties that parameterize the deployment and execution of one or more Artifacts. This association is specialized from the ownedMember association. + + + + + + + + In the metamodel, a DeploymentSpecification is a subtype of Artifact. It defines a set of deployment properties that are specific to a certain Container type. An instance of a DeploymentSpecification with specific values for these properties may be contained in a complex Artifact. + + + + The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components). + + + self.deployment->forAll (d | d.location.deployedElements->forAll (de | + de.oclIsKindOf(Component))) + + + + + The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment. + + + result = self.deployment->forAll (d | d.location..oclIsKindOf(ExecutionEnvironment)) + + + + + + The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'. + + + + + + The location where a component Artifact executes. This may be a local or remote location. + + + + + + The deployment with which the DeploymentSpecification is associated. + + + + + + + + + + + + + + In the metamodel, Deployment is a subtype of Dependency. + + + + + The Artifacts that are deployed onto a Node. This association specializes the supplier association. + + + + + + + The DeployedTarget which is the target of a Deployment. + + + + + + + + In the metamodel, a Node is a subclass of Class. It is associated with a Deployment of an Artifact. It is also associated with a set of Elements that are deployed on it. This is a derived association in that these PackageableElements are involved in a Manifestation of an Artifact that is deployed on the Node. Nodes may have an internal structure defined in terms of parts and connectors associated with them for advanced modeling applications. + + + + The internal structure of a Node (if defined) consists solely of parts of type Node. + + + true + + + + + + + + + + The Nodes that are defined (nested) within the Node. + + + + + + + + A Device is a physical computational resource with processing capability upon which artifacts may be deployed for execution. Devices may be complex, i.e. they may consist of other devices. In the metamodel, a Device is a subclass of Node. + + + + + + In the metamodel, a ExecutionEnvironment is a subclass of Node. It is usually part of a general Node, representing the physical hardware environment on which the ExecutionEnvironment resides. In that environment, the ExecutionEnvironment implements a standard set of services that Components require at execution time (at the modeling level these services are usually implicit). For each component Deployment, aspects of these services may be determined by properties in a DeploymentSpecification for a particular kind of ExecutionEnvironment. + + + + + + In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments. + + + + + + + + The set of Deployments for a DeploymentTarget. + + + + + + + + + + The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget. + + + + + + + + + + + result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement) + + + + + + + + + + + In the metamodel, DeployedArtifact is an abstract metaclass that is a specialization of NamedElement. A DeployedArtifact is involved in one or more Deployments to a DeploymentTarget. + + + + + + In the metamodel, CommunicationPath is a subclass of Association. + + + + The association ends of a CommunicationPath are typed by DeploymentTargets. + + + result = self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget)) + + + + + + + In the metamodel, Property is a specialization of DeploymentTarget. + + + + A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node. + + + true + + + + + + + In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact. + + + + An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node. + + + true + + + + + An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact. + + + true + + + + + + + + As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by specializing the abstract superclass. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations to other Artifacts, e.g. composition associations. Artifacts can be instantiated to represent detailed copy semantics, where different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values, e.g. for a 'time-stamp' property. + + + + + + A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator. + + + + + + + + + The Artifacts that are defined (nested) within the Artifact. +The association is a specialization of the ownedMember association from Namespace to NamedElement. + + + + + + + + + + + The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact. + + + + + + + + + + The Operations defined for the Artifact. The association is a specialization of the ownedMember association. + + + + + + + + + + The attributes or association ends defined for the Artifact. +The association is a specialization of the ownedMember association. + + + + + + + + + In the metamodel, a Manifestation is a subtype of Abstraction. A Manifestation is owned by an Artifact. + + + + + The model element that is utilized in the manifestation in an Artifact. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An interaction is a unit of behavior that focuses on the observable exchange of information between ConnectableElements. An Interaction is a specialization of InteractionFragment and of Behavior. + + + + + + + + + Specifies the participants in this Interaction. + + + + + + + + + + The Messages contained in this Interaction. + + + + + + + + + + The ordered set of fragments in the Interaction. + + + + + + + + + + Actions owned by the Interaction. + + + + + + + + A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen. + + + + If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations. + + + true + + + + + The selector for a Lifeline must only be specified if the referenced Part is multivalued. + + + (self.selector->isEmpty() implies not self.represents.isMultivalued()) or +(not self.selector->isEmpty() implies self.represents.isMultivalued()) + + + + + + The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline. + + + if (represents->notEmpty()) then +(if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued()) + + + + + + + + + + + References the ConnectableElement within the classifier that contains the enclosing interaction. + + + + + + + References the Interaction enclosing this Lifeline. + + + + + + + + + + If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set. + + + + + + + + InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. InteractionFragment is an abstract class and a specialization of NamedElement. + + + + + References the Lifelines that the InteractionFragment involves. + + + + + + + + + + The general ordering relationships contained in this fragment. + + + + + + + The Interaction enclosing this InteractionFragment. + + + + + + + + A Message is a NamedElement that defines a particular communication between Lifelines of an Interaction. A communication can be e.g. raising a signal, invoking an Operation, creating or destroying an Instance. The Message specifies not only the kind of communication given by the dispatching ExecutionSpecification, but also the sender and the receiver. A Message associates normally two OccurrenceSpecifications - one sending OccurrenceSpecification and one receiving OccurrenceSpecification. + + + + + If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent. + + + true + + + + + The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message. + + + true + + + + + In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter. + + + true + + + + + In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute. + + + true + + + + + Arguments of a Message must only be: +i) attributes of the sending lifeline +ii) constants +iii) symbolic values (which are wildcard values representing any legal value) +iv) explicit parameters of the enclosing Interaction +v) attributes of the class owning the Interaction + + + + true + + + + + Messages cannot cross bounderies of CombinedFragments or their operands. + + + true + + + + + If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds. + + + true + + + + + + + + + The derived kind of the Message (complete, lost, found or unknown) + + + + + The sort of communication reflected by the Message + + + + + References the Receiving of the Message + + + + + + + References the Sending of the Message. + + + + + + + The Connector on which this Message is sent. + + + + + + + The enclosing Interaction owning the Message + + + + + + + + + + The arguments of the Message + + + + + + + + + + The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event. + + + + + + + + A GeneralOrdering represents a binary relation between two OccurrenceSpecifications, to describe that one OccurrenceSpecification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of OccurrenceSpecifications that may otherwise not have a specified order. A GeneralOrdering is a specialization of NamedElement. + + + + + The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after. + + + + + + + The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before. + + + + + + + + An ExecutionSpecification is a specification of the execution of a unit of behavior or action within the Lifeline. The duration of an ExecutionSpecification is represented by two ExecutionOccurrenceSpecifications, the start ExecutionOccurrenceSpecification and the finish ExecutionOccurrenceSpecification. + + + + The startEvent and the finishEvent must be on the same Lifeline + + + start.lifeline = finish.lifeline + + + + + + References the OccurrenceSpecification that designates the start of the Action or Behavior + + + + + + + References the OccurrenceSpecification that designates the finish of the Action or Behavior. + + + + + + + + An OccurrenceSpecification is the basic semantic unit of Interactions. The sequences of occurrences specified by them are the meanings of Interactions. +OccurrenceSpecifications are ordered along a Lifeline. +The namespace of an OccurrenceSpecification is the Interaction in which it is contained. + + + + + + References the Lifeline on which the OccurrenceSpecification appears. + + + + + + + References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification + + + + + + + + References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification + + + + + + + + References a specification of the occurring event. + + + + + + + + A MessageEnd is an abstract NamedElement that represents what can occur at the end of a Message. + + + + + References a Message. + + + + + + + + MessageKind is an enumeration of the following values: +- complete = sendEvent and receiveEvent are present +- lost = sendEvent present and receiveEvent absent +- found = sendEvent absent and receiveEvent present +- unknown = sendEvent and receiveEvent absent (should not appear) + + + + sendEvent and receiveEvent are present + + + + + sendEvent present and receiveEvent absent + + + + + sendEvent absent and receiveEvent present + + + + + sendEvent and receiveEvent absent (should not appear) + + + + + + A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on. A StateInvariant is an InteractionFragment and it is placed on a Lifeline. + + + + + + + + A Constraint that should hold at runtime for this StateInvariant + + + + + + + References the Lifeline on which the StateInvariant appears. + + + + + + + + MessageSort is an enumeration of the following values: +• synchCall - the message was generated by a synchronous call to an operation +• asynchCall - the message was generated by an asynchronous call to an operation; i.e., a CallAction with “isSynchronous= false” +• asynchSignal -the message was generated by an asynchronous send action + + + + + The message was generated by a synchronous call to an operation + + + + + The message was generated by an asynchronous call to an operation; i.e., a CallAction with “isSynchronous += false” + + + + + + The message was generated by an asynchronous send action + + + + + + ActionExecutionSpecification is a kind of ExecutionSpecification representing the execution of an action. + + + + The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence. + + + true + + + + + + Action whose execution is occurring. + + + + + + + + BehaviorExecutionSpecification is a kind of ExecutionSpecification representing the execution of a behavior. + + + + + Behavior whose execution is occurring. + + + + + + + + An ExecutionEvent models the start or finish of an execution occurrence. + + + + + + A CreationEvent models the creation of an object. + + + + No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand. + + + true + + + + + + + A DestructionEvent models the destruction of an object. + + + + No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand. + + + true + + + + + + + A SendOperationEvent models the invocation of an operation call. + + + + + The operation associated with this event. + + + + + + + + A SendSignalEvent models the sending of a signal. + + + + + The signal associated with this event. + + + + + + + + Specifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions. + + + + + + Redefines the event referenced to be restricted to a message event. + + + + + + + + An ExecutionOccurrenceSpecification represents moments in time at which actions or behaviors start or finish. + + + + + References the execution specification describing the execution that is started or finished at this execution event. + + + + + + + Redefines the event referenced to be restricted to an execution event. + + + + + + + + This association shows the lifelines that make up an interaction. A lifeline may be part of more than one interaction use. + + + + + The event shows the time point at which the action begins execution. + + + + + + + + + The event shows the time point at which the action completes execution. + + + + + + + + + If a Part has multiplicity, multiple lifelines might be used to show it. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ordered + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An InteractionUse refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referred Interaction where the InteractionUse is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones. + +It is common to want to share portions of an interaction between several other interactions. An InteractionUse allows multiple interactions to reference an interaction that represents a common portion of their specification. + + + + + Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal. + + + true + + + + + The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction. + + + true + + + + + The arguments of the InteractionUse must correspond to parameters of the referred Interaction + + + true + + + + + The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction. + + + true + + + + + + Refers to the Interaction that defines its meaning + + + + + + + + + + The actual gates of the InteractionUse + + + + + + + + + + The actual arguments of the Interaction + + + + + + + + PartDecomposition is a description of the internal interactions of one Lifeline relative to an Interaction. + +A Lifeline has a class associated as the type of the ConnectableElement that the Lifeline represents. That class may have an internal structure and the PartDecomposition is an Interaction that describes the behavior of that internal structure relative to the Interaction where the decomposition is referenced. + +A PartDecomposition is a specialization of InteractionUse. It associates with the ConnectableElement that it decomposes. + + + + + PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations. + + + true + + + + + Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order. + +i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D +ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D. +iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D + + + + true + + + + + Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an +InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition) + + + + true + + + + + + + An InteractionOperand is contained in a CombinedFragment. An InteractionOperand represents one operand of the expression given by the enclosing CombinedFragment. + +An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be +guarded by a InteractionConstraint. Only InteractionOperands with a guard that evaluates to true at this point in the interaction will be considered for the production of the traces for the enclosing CombinedFragment. + +InteractionOperand contains an ordered set of InteractionFragments. + +In Sequence Diagrams these InteractionFragments are ordered according to their geometrical position vertically. The geometrical position of the InteractionFragment is given by the topmost vertical coordinate of its contained OccurrenceSpecifications or symbols. + + + + The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand. + + + true + + + + + The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction. + + + true + + + + + + + + + + Constraint of the operand. + + + + + + + + + + The fragments of the operand. + + + + + + + + An InteractionConstraint is a Boolean expression that guards an operand in a CombinedFragment. InteractionConstraint is a specialization of Constraint. Furthermore the InteractionConstraint contains two expressions designating the minimum and maximum number of times a loop CombinedFragment should execute. + + + + The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline. + + + true + + + + + The constraint may contain references to global data or write-once data. + + + true + + + + + Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment. + + + true + + + + + If minint is specified, then the expression must evaluate to a non-negative integer. + + + true + + + + + If maxint is specified, then the expression must evaluate to a positive integer. + + + true + + + + + If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint + + + true + + + + + + + + + The minimum number of iterations of a loop + + + + + + + + + + The maximum number of iterations of a loop + + + + + + + + InteractionOperatorKind is an enumeration designating the different kinds of operators of CombinedFragments. The InteractionOperand defines the type of operator of a CombinedFragment. + + + + The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands. + + + + + The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no guard. + + + + + The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment where there is one operand with non-empty content and the second operand is empty. + + + + + The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done non-deterministically. + + + + + The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the ordering imposed by each operand as such is preserved. + + + + + The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing CombinedFragment. + + + + + The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times. + + + + + The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave into the region, such as e.g. with par-operator, this is prevented by defining a region. + + + + + The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid. + + + + + The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the operand of the assertion are the only valid continuations. All other continuations result in an invalid trace. + + + + + The interacionOperator ignore designates that there are some message types that are not shown within this combined fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can appear anywhere in the traces. + + + + + The interactionOperator consider designates which messages should be considered within this combined fragment. This is equivalent to defining every other message to be ignored. + + + + + + A Gate is a connection point for relating a Message outside an InteractionFragment with a Message inside the InteractionFragment. Gate is a specialization of MessageEnd. Gates are connected through Messages. A Gate is actually a representative of an OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments. + + + + The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse. + + + true + + + + + The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside. + + + true + + + + + + + A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner. CombinedFragment is a specialization of InteractionFragment. + + + + If the interactionOperator is opt, loop, break, or neg there must be exactly one operand + + + true + + + + + The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop. + + + true + + + + + If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment. + + + true + + + + + The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment + + + ((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment) + + + + + + Specifies the operation which defines the semantics of this combination of InteractionFragments. + + + + + + + + The set of operands of the combined fragment. + + + + + + + + + + Specifies the gates that form the interface between this CombinedFragment and its surroundings + + + + + + + + An interaction is a unit of behavior that focuses on the observable exchange of information between ConnectableElements. An Interaction is a specialization of InteractionFragment and of Behavior. + + + + + + + + Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it. + + + + + + + + + A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. + +If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. + +If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen. + + + + + References the Interaction that represents the decomposition. + + + + + + + + A Continuation is a syntactic way to define continuations of different branches of an Alternative CombinedFragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control. + + + + Continuations with the same name may only cover the same set of Lifelines (within one Classifier). + + + true + + + + + Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment. + + + true + + + + + Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment. + + + true + + + + + + True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning. + + + + + + + + InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. InteractionFragment is an abstract class and a specialization of NamedElement. + + + + + The operand enclosing this InteractionFragment (they may nest recursively) + + + + + + + + A ConsiderIgnoreFragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified. + + + + The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'. + + + (interactionOperator = #consider) or (interactionOperator = #ignore) + + + + + The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal). + + + message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal)) + + + + + + The set of messages that apply to this fragment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ordered + + + + + + + + + + + + + + + + + + + + + + A state machine owns one or more regions, which in turn own vertices and transitions. +The behaviored classifier context owning a state machine defines which signal and call triggers are defined for the state machine, and which attributes and operations are available in activities of the state machine. Signal triggers and call triggers for the state machine are defined according to the receptions and operations of this classifier. + +As a kind of behavior, a state machine may have an associated behavioral feature (specification) and be the method of this behavioral feature. In this case the state machine specifies the behavior of this behavioral feature. The parameters of the state machine in this case match the parameters of the behavioral feature and provide the means for accessing (within the state machine) the behavioral feature parameters. + +A state machine without a context classifier may use triggers that are independent of receptions or operations of a classifier, i.e. either just signal triggers or call triggers based upon operation template parameters of the (parameterized) statemachine. + + + + + The classifier context of a state machine cannot be an interface. + + + context->notEmpty() implies not context.oclIsKindOf(Interface) + + + + + The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature. + + + specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context)) + + + + + The connection points of a state machine are pseudostates of kind entry point or exit point. + + + conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint) + + + + + A state machine as the method for a behavioral feature cannot have entry/exit connection points. + + + specification->notEmpty() implies connectionPoint->isEmpty() + + + + + + + + + The regions owned directly by the state machine. + + + + + + + + + + The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state. + + + + + + + The state machines of which this is an extension. + + + + + + + + The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy. + + + + true + + + + + + + + + The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean + + + + + result = if (s2 = s1) then +true +else if (s1.container->isEmpty) then +true +else if (s2.container->isEmpty) then +false +else (ancestor (s1, s2.container)) + + + + + + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine. + + + + result = true + + + + + + + + + + + The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines. + + + + result = true + + + + + + + + + + + + A state models a situation during which some (usually implicit) invariant condition holds. The invariant may represent a static situation such as an object waiting for some external event to occur. However, it can also model dynamic conditions such as the process of performing some behavior (i.e., the model element under consideration enters the state when the behavior commences and leaves it as soon as the behavior is completed). The following kinds of states are distinguished: +o Simple state, +o composite state, and +o submachine state. +A composite state is either a simple composite state (with just one region) or an orthogonal state (with more than one region). + +Simple state +A simple state is a state that does not have substates, i.e. it has no regions and it has no submachine state machine. + +Composite state +A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions. A given state may only be decomposed in one of these two ways. +Any state enclosed within a region of a composite state is called a substate of that composite state. It is called a direct substate when it is not contained by any other state; otherwise it is referred to as a indirect substate. +Each region of a composite state may have an initial pseudostate and a final state. A transition to the enclosing state represents a transition to the initial pseudostate in each region. A newly-created object takes it's topmost default transitions, originating from the topmost initial pseudostates of each region. + +A transition to a final state represents the completion of behavior in the enclosing region. Completion of behavior in all orthogonal regions represents completion of behavior by the enclosing state and triggers a completion event on the enclosing state. Completion of the topmost regions of an object corresponds to its termination. + +An entry pseudostate is used to join an external transition terminating on that entry point to an internal transition emanating from that entry point. An exit pseudostate is used to join an internal transition terminating on that exit point to an external transition emanating from that exit point. The main purpose of such entry and exit points is to execute the state entry and exit actions respectively in between the actions that are associated with the joined transitions. + +Semantic variation point (default entry rule) +If a transition terminates on an enclosing state and the enclosed regions do not have an initial pseudostate, the interpretation of this situation is a semantic variation point. In some interpretations, this is considered an ill-formed model. That is, in those cases the initial pseudostate is mandatory. +An alternative interpretation allows this situation and it means that, when such a transition is taken, the state machine stays in the composite state, without entering any of the regions or their substates. + +Submachine state +A submachine state specifies the insertion of the specification of a submachine state machine. The state machine that contains the submachine state is called the containing state machine. The same state machine may be a submachine more than once in the context of a single containing state machine. + +A submachine state is semantically equivalent to a composite state. The regions of the submachine state machine are the regions of the composite state. The entry, exit and behavior actions, and internal transitions, are defined as part of the state. Submachine state is a decomposition mechanism that allows factoring of common behaviors and their reuse. +Transitions in the containing state machine can have entry/exit points of the inserted state machine as targets/sources. + + + + + There have to be at least two regions in an orthogonal composite state. + + + (self.isOrthogonal) implies +(self.region->size >= 2) + + + + + + Only submachine states can have connection point references. + + + isSubmachineState implies connection->notEmpty ( ) + + + + + The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine. + + + true + + + + + A state is not allowed to have both a submachine and regions. + + + isComposite implies not isSubmachineState + + + + + Only composite states can have entry or exit pseudostates defined. + + + connectionPoint->notEmpty() implies isComoposite + + + + + Only entry or exit pseudostates can serve as connection points. + + + connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit) + + + + + + + + + + + A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region. + + + + + + + + + A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions. + + + + + + + + + A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine. + + + + + + + + + A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine). + + + + + + The state machine that is to be inserted in place of the (submachine) state. + + + + + + + + + + The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate. + + + + + + + The state of which this state is a redefinition. + + + + + + + + + + The regions owned directly by the state. + + + + + + + + + + References the classifier in which context this element may be redefined. + + + + + + + + + + Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions. + + + + + + + + + + + An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state. + + + + + + + + + + + An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution. + + + + + + + + + + An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first. + + + + + + + + + + The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states. + + + + + + + + + + A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred. + + + + + + + + A simple state is a state without any regions. + + + + result = region.isEmpty() + + + + + + + + + + A composite state is a state with at least one region. + + + + result = region.notEmpty() + + + + + + + + + + An orthogonal state is a composite state with at least 2 regions + + + + result = (region->size () > 1) + + + + + + + + + + Only submachine states can have a reference statemachine. + + + + result = submachine.notEmpty() + + + + + + + + + + The redefinition context of a state is the nearest containing statemachine. + + + + result = let sm = containingStateMachine() in +if sm.context->isEmpty() or sm.general->notEmpty() then +sm +else +sm.context +endif + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state. + + + + result = true + + + + + + + + + + The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions. + + + + result = true + + + + + + + + + + + The query containingStateMachine() returns the state machine that contains the state either directly or transitively. + + + + result = container.containingStateMachine() + + + + + + + + A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type. + + + + A fork segment must not have guards or triggers. + + + (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty()) + + + + + A join segment must not have guards or triggers. + + + (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty()) + + + + + A fork segment must always target a state. + + + (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State)) + + + + + A join segment must always originate from a state. + + + (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State)) + + + + + Transitions outgoing pseudostates may not have a trigger. + + + source.oclIsKindOf(Pseudostate) and +((source.kind <> #junction) and (source.kind <> #join) and (source.kind <> #initial)) implies trigger->isEmpty() + + + + + + An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype “create”. + + + self.source.oclIsKindOf(Pseudostate) implies +(self.source.oclAsType(Pseudostate).kind = #initial) implies +(self.source.container = self.stateMachine.top) implies +((self.trigger->isEmpty) or +(self.trigger.stereotype.name = 'create')) + + + + + + In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes. + + + + true + + + + + + + Indicates the precise type of the transition. + + + + + Designates the region that owns this transition. + + + + + + + Designates the originating vertex (state or pseudostate) of the transition. + + + + + + + Designates the target vertex that is reached when the transition is taken. + + + + + + + The transition that is redefined by this transition. + + + + + + + + + + A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed. + + + + + + + + + + References the classifier in which context this element may be redefined. + + + + + + + + + + Specifies an optional behavior to be performed when the transition fires. + + + + + + + + + + Specifies the triggers that may fire the transition. + + + + + + + The redefinition context of a transition is the nearest containing statemachine. + + + + result = let sm = containingStateMachine() in +if sm.context->isEmpty() or sm.general->notEmpty() then +sm +else +sm.context +endif + + + + + + + The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger. + + + + result = (redefinee.oclIsKindOf(Transition) and + let trans: Transition = redefinee.oclAsType(Transition) in + (source() = trans.source() and trigger() = tran.trigger()) + + + + + redefinee.isRedefinitionContextValid(self) + + + + + + + + + + + The query containingStateMachine() returns the state machine that contains the transition either directly or transitively. + + + + result = container.containingStateMachine() + + + + + + + + A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions. + + + + + The region that contains this vertex. + + + + + + + Specifies the transitions departing from this vertex. + + + + + + + Specifies the transitions entering this vertex. + + + + + + + The operation containingStatemachine() returns the state machine in which this Vertex is defined + + + + result = if not container->isEmpty() +then +-- the container is a region +container.containingStateMachine() +else if (oclIsKindOf(Pseudostate)) then +-- entry or exit point? +if (kind = #entryPoint) or (kind = #exitPoint) then +stateMachine +else if (oclIsKindOf(ConnectionPointReference)) then +state.containingStateMachine() -- no other valid cases possible +endif + + + + + + + + + Pseudostates are typically used to connect multiple transitions into more complex state transitions paths. For example, by combining a transition entering a fork pseudostate with a set of transitions exiting the fork pseudostate, we get a compound transition that leads to a set of orthogonal target states. + + + + An initial vertex can have at most one outgoing transition. + + + (self.kind = #initial) implies (self.outgoing->size <= 1) + + + + + History vertices can have at most one outgoing transition. + + + ((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies +(self.outgoing->size <= 1) + + + + + + In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition. + + + (self.kind = #join) implies +((self.outgoing->size = 1) and (self.incoming->size >= 2)) + + + + + + All transitions incoming a join vertex must originate in different regions of an orthogonal state. + + + (self.kind = #join) implies + self.incoming->forAll (t1, t2 | t1<>t2 implies + (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal)) + + + + + In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition. + + + (self.kind = #fork) implies +((self.incoming->size = 1) and (self.outgoing->size >= 2)) + + + + + + All transitions outgoing a fork vertex must target states in different regions of an orthogonal state. + + + (self.kind = #fork) implies + self.outgoing->forAll (t1, t2 | t1<>t2 implies + (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal)) + + + + + In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition. + + + (self.kind = #junction) implies +((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + + + + + + In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition. + + + (self.kind = #choice) implies +((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + + + + + + The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard. + + + (self.kind = #initial) implies (self.outgoing.guard->isEmpty() + and self.outgoing.trigger->isEmpty()) + + + + + + Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice. + + + + + The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint. + + + + + + + The State that owns the pseudostate. If a Pseudostat is owned by a State, then it cannot also be owned by a StateMachine. + + + + + + + + A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed. + + + + A final state cannot have any outgoing transitions. + + + self.outgoing->size() = 0 + + + + + A final state cannot have regions. + + + self.region->size() = 0 + + + + + A final state cannot reference a submachine. + + + self.submachine->isEmpty() + + + + + A final state has no entry behavior. + + + self.entry->isEmpty() + + + + + A final state has no exit behavior. + + + self.exit->isEmpty() + + + + + A final state has no state (doActivity) behavior. + + + self.doActivity->isEmpty() + + + + + + + Connection point references of a submachine state can be used as sources/targets of transitions. They represent entries into or exits out of the submachine state machine referenced by the submachine state. + + + + The entry Pseudostates must be Pseudostates with kind entryPoint. + + + entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint) + + + + + The exit Pseudostates must be Pseudostates with kind exitPoint. + + + exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint) + + + + + + The entryPoint kind pseudo states corresponding to this connection point. + + + + + + + The State in which the connection point refreshens are defined. + + + + + + + The exitPoints kind pseudo states corresponding to this connection point. + + + + + + + + PseudoStateKind is an enumeration of the following literal values: +• initial +• deepHistory +• shallowHistory +• join +• fork +• junction +• choice +• entryPoint +• exitPoint +• terminate + + + + + An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard. + + + + + DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed. + + + + + ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed. + + + + + Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers. + + + + + Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices +(i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers. + + + + + Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted “else” may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below). + + + + + Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above). + + + + + An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region. + + + + + An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state. + + + + + Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction. + + + + + + A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions. + + + + A region can have at most one initial vertex + + + self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> +select(p : Pseudostate | p.kind = #initial)->size() <= 1 + + + + + + A region can have at most one deep history vertex + + + self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> +select(p : Pseudostate | p.kind = #deepHistory)->size() <= 1 + + + + + + A region can have at most one shallow history vertex + + + self.subvertex->select(v | v.oclIsKindOf(Pseudostate))-> +select(p : Pseudostate | p.kind = #shallowHistory)->size() <= 1 + + + + + + If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa. + + + (stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty()) + + + + + + + + + + The set of vertices that are owned by this region. + + + + + + + + + + The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state. + + + + + + + The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State. + + + + + + + The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine. + + + + + + + The region of which this region is an extension. + + + + + + + + + + References the classifier in which context this element may be redefined. + + + + + + + The redefinition context of a region is the nearest containing statemachine + + + + result = let sm = containingStateMachine() in +if sm.context->isEmpty() or sm.general->notEmpty() then +sm +else +sm.context +endif + + + + + + + The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region. + + + + result = true + + + + + + + + + + The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region. + + + + result = true + + + + + + + + + + + The operation containingStateMachine() returns the sate machine in which this Region is defined + + + + result = if stateMachine->isEmpty() +then +state.containingStateMachine() +else +stateMachine +endif + + + + + + + + TransitionKind is an enumeration of the following literal values: +• external +• internal +• local + + + + + The source state of a transition with transition kind local must be a composite state. + + + kind=#local implies owner.source.isComposite + + + + + The source state of a transition with transition kind external must be a composite state. + + + kind=#external implies owner.source.isComposite + + + + + kind=internal implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state. + + + + + kind=local implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered. + + + + + kind=external implies that the transition, if triggered, will exit the composite (source) state. + + + + + + Extends TimeEvent to be defined relative to entering the current state of the executing state machine. + + + + The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine. + + + true + + + + + + + + + + + + + + + substate kind = stub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. + +Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine. + +A protocol state machine is owned by a classifier. The classifiers owning a general state machine and an associated specific state machine are generally also connected by a generalization or a realization link. + + + + + + Specifies the state machine which conforms to the general state machine. + + + + + + + Specifies the protocol state machine to which the specific state machine conforms. + + + + + + + + Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface. + + + + + + + + References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface. + + + + + + + + Port is defined as a specialization of the general Port, adding an association to a protocol state machine. + + + + References an optional protocol state machine which describes valid interactions at this interaction point. + + + + + + + + A protocol transition (transition as specialized in the ProtocolStateMachines package) specifies a legal transition for an operation. Transitions of protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation (referred BehavioralFeature) that belongs to the context classifier of the protocol state machine. + +The protocol transition specifies that the associated (referred) operation can be called for an instance in the origin state under the initial condition (guard), and that at the end of the transition, the destination state will be reached under the final condition (post). + + + + + A protocol transition always belongs to a protocol state machine. + + + container.belongsToPSM() + + + + + A protocol transition never has associated actions. + + + effect->isEmpty() + + + + + If a protocol transition refers to an operation (i. e. has a call trigger corresponding to an operation), then that operation should apply to the context classifier of the state machine of the protocol transition. + + + true + + + + + + + + + Specifies the post condition of the transition which is the condition that should be obtained once the transition is triggered. This post condition is part of the post condition of the operation connected to the transition. + + + + + + + + + + + This association refers to the associated operation. It is derived from the operation of the call trigger when applicable. + + + + + + + + + + Specifies the precondition of the transition. It specifies the condition that should be verified before triggering the transition. This guard condition added to the source state will be evaluated as part of the precondition of the operation referred by the transition if any. + + + + + + + The operation belongsToPSM () checks if the region belongs to a protocol state machine + + + + result = if not stateMachine->isEmpty() then +oclIsTypeOf(ProtocolStateMachine) +else if not state->isEmpty() then +state.container.belongsToPSM () +else false + + + + + + + + + + + A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence. + + + + A protocol state machine must only have a classifier context, not a behavioral feature context. + + + (not context->isEmpty( )) and specification->isEmpty() + + + + + All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package) + + + region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition))) + + + + + The states of a protocol state machine cannot have entry, exit, or do activity actions. + + + region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies +(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty()))) + + + + + + Protocol state machines cannot have deep or shallow history pseudostates. + + + region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies +((v.kind <> #deepHistory) and (v.kind <> #shallowHistory))))) + + + + + + If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined). + + + true + + + + + + + + + Conformance between protocol state machines. + + + + + + + + The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration. + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the namespace in which the protocol state machine is defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An Actor models a type of role played by an entity that interacts with the subject (e.g., by exchanging signals and data), but which is external to the subject (i.e., in the sense that an instance of an actor is not a part of the instance of its corresponding subject). Actors may represent roles played by human users, external hardware, or other subjects. Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., “role”) of some entity that is relevant to the specification of its associated use cases. Thus, a single physical instance may play the role of several different actors and, conversely, a given actor may be played by multiple different instances. + +Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier. + + + + + An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary. + + + self.ownedAttribute->forAll ( a | +(a.association->notEmpty()) implies +((a.association.memberEnd.size() = 2) and +(a.opposite.class.oclIsKindOf(UseCase) or +(a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior)))) + + + + + + An actor must have a name. + + + name->notEmpty() + + + + + + + This relationship specifies that the behavior of a use case may be extended by the behavior of another (usually supplementary) use case. The extension takes place at one or more specific extension points defined in the extended use case. Note, however, that the extended use case is defined independently of the extending use case and is meaningful independently of the extending use case. On the other hand, the extending use case typically defines behavior that may not necessarily be meaningful by itself. Instead, the extending use case defines a set of modular behavior increments that augment an execution of the extended use case under specific conditions. + +Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended. + +It is a kind of DirectedRelationship, such that the source is the extending use case and the destination is the extended use case. It is also a kind of NamedElement so that it can have a name in the context of its owning use case. The extend relationship itself is owned by the extending use case. + + + + + The extension points referenced by the extend relationship must belong to the use case that is being extended. + + + + + extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp)) + + + + + + + References the use case that is being extended. + + + + + + + References the use case that represents the extension and owns the extend relationship. + + + + + + + + + + References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional. + + + + + + + + An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.) + + + + + + + + + Note that the included use case is not optional, and is always required for the including use case to execute correctly. + + + + + + + + References the use case which will include the addition and owns the include relationship. + + + + + + + References the use case that is to be included. + + + + + + + + + A UseCase is a kind of behaviored classifier that represents a declaration of an offered behavior. Each use case specifies some behavior, possibly including variants, that the subject can perform in collaboration with one or more actors. Use cases define the offered behavior of the subject without reference to its internal structure. These behaviors, involving +interactions between the actor and the subject, may result in changes to the state of the subject and communications with its environment. A use case can include possible variations of its basic behavior, including exceptional behavior and error handling. + +The subject of a use case could be a physical system or any other element that may have behavior, such as a component, subsystem or class. Each use case specifies a unit of useful functionality that the subject provides to its users, i.e., a specific way of interacting with the subject. This functionality, which is initiated by an actor, must always be completed for the use case to complete. It is deemed complete if, after its execution, the subject will be in a state in which no further inputs or actions are expected and the use case can be initiated again or in an error state. + +Use cases can be used both for specification of the (external) requirements on a subject and for the specification of the functionality offered by a subject. Moreover, the use cases also state the requirements the specified subject poses on its environment by defining how they should interact with the subject so that it will be able to perform its services. + +The behavior of a use case can be described by a specification that is some kind of Behavior (through its ownedBehavior relationship), such as interactions, activities, and state machines, or by pre-conditions and post-conditions as well as by natural language text where appropriate. It may also be described indirectly through a Collaboration that uses the use case and its actors as the classifiers that type its parts. Which of these techniques to use depends on the nature of the use case behavior as well as on the intended reader. These descriptions can be combined. + + + + + A UseCase must have a name. + + + self.name -> notEmpty () + + + + + UseCases can only be involved in binary Associations. + + + true + + + + + UseCases can not have Associations to UseCases specifying the same subject. + + + true + + + + + A use case cannot include use cases that directly or indirectly include it. + + + not self.allIncludedUseCases()->includes(self) + + + + + + + + + References the Include relationships owned by this use case. + + + + + + + + + + References the Extend relationships owned by this use case. + + + + + + + + + + References the ExtensionPoints owned by the use case. + + + + + + + References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it. + + + + + + + The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case. + + + + result = self.include->union(self.include->collect(in | in.allIncludedUseCases())) + + + + + + + + + + + An ExtensionPoint is a feature of a use case that identifies a point where the behavior of a use case can be augmented with elements of another (extending) use case. + + + + An ExtensionPoint must have a name. + + + self.name->notEmpty () + + + + + + References the use case that owns this extension point. + + + + + + + + Extends a classifier with the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a UseCase. + + + + + + + + References the use cases owned by this classifier. + + + + + + + The set of use cases for which this Classifier is the subject. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/plugin.properties b/plugins/org.eclipse.uml2.uml/plugin.properties new file mode 100644 index 00000000..2fb7cb04 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/plugin.properties @@ -0,0 +1,26 @@ +# Copyright (c) 2005 IBM Corporation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# IBM - initial API and implementation +# +# $Id: plugin.properties,v 1.1 2005/11/14 22:26:07 khussey Exp $ + +# ==================================================================== +# To code developer: +# Do NOT change the properties between this line and the +# "%%% END OF TRANSLATED PROPERTIES %%%" line. +# Make a new property name, append to the end of the file and change +# the code to use the new property. +# ==================================================================== + +# ==================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# ==================================================================== + +pluginName = UML +providerName = Eclipse.org + diff --git a/plugins/org.eclipse.uml2.uml/plugin.xml b/plugins/org.eclipse.uml2.uml/plugin.xml new file mode 100644 index 00000000..ac6301a2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/plugin.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Abstraction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Abstraction.java new file mode 100644 index 00000000..549b7702 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Abstraction.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Abstraction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Abstraction'. + * + * + * + * An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. In the metamodel, an Abstraction is a Dependency in which there is a mapping between the supplier and the client. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Abstraction#getMapping Mapping}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAbstraction() + * @model + * @generated + */ +public interface Abstraction + extends Dependency { + + /** + * Returns the value of the 'Mapping' containment reference. + * + * + * + * An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified. + * + * @return the value of the 'Mapping' containment reference. + * @see #setMapping(OpaqueExpression) + * @see org.eclipse.uml2.uml.UMLPackage#getAbstraction_Mapping() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + OpaqueExpression getMapping(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Abstraction#getMapping Mapping}' containment reference. + * + * + * @param value the new value of the 'Mapping' containment reference. + * @see #getMapping() + * @generated + */ + void setMapping(OpaqueExpression value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OpaqueExpression} and sets the 'Mapping' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OpaqueExpression}. + * @see #getMapping() + * @generated + */ + OpaqueExpression createMapping(); + +} // Abstraction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptCallAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptCallAction.java new file mode 100644 index 00000000..c6f3b45b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptCallAction.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AcceptCallAction.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Accept Call Action'. + * + * + * + * AcceptCallAction is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the ReplyAction necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AcceptCallAction#getReturnInformation Return Information}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAcceptCallAction() + * @model + * @generated + */ +public interface AcceptCallAction + extends AcceptEventAction { + + /** + * Returns the value of the 'Return Information' reference. + * + * + * + * Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model. + * + * @return the value of the 'Return Information' reference. + * @see #setReturnInformation(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getAcceptCallAction_ReturnInformation() + * @model required="true" ordered="false" + * @generated + */ + OutputPin getReturnInformation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.AcceptCallAction#getReturnInformation Return Information}' reference. + * + * + * @param value the new value of the 'Return Information' reference. + * @see #getReturnInformation() + * @generated + */ + void setReturnInformation(OutputPin value); + + /** + * + * + * + * The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order. + * true + * + * @model + * @generated + */ + boolean validateResultPins(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The trigger event must be a CallEvent. + * trigger.event.oclIsKindOf(CallEvent) + * + * @model + * @generated + */ + boolean validateTriggerCallEvent(DiagnosticChain diagnostics, Map context); + +} // AcceptCallAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptEventAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptEventAction.java new file mode 100644 index 00000000..eeeb0f32 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AcceptEventAction.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AcceptEventAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Accept Event Action'. + * + * + * + * AcceptEventAction is an action that waits for the occurrence of an event meeting specified conditions. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#isUnmarshall Is Unmarshall}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#getResults Result}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#getTriggers Trigger}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAcceptEventAction() + * @model + * @generated + */ +public interface AcceptEventAction + extends Action { + + /** + * Returns the value of the 'Is Unmarshall' attribute. + * The default value is "false". + * + * + * + * Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event. + * + * @return the value of the 'Is Unmarshall' attribute. + * @see #setIsUnmarshall(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getAcceptEventAction_IsUnmarshall() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isUnmarshall(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.AcceptEventAction#isUnmarshall Is Unmarshall}' attribute. + * + * + * @param value the new value of the 'Is Unmarshall' attribute. + * @see #isUnmarshall() + * @generated + */ + void setIsUnmarshall(boolean value); + + /** + * Returns the value of the 'Result' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. + * + * @return the value of the 'Result' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAcceptEventAction_Result() + * @model type="org.eclipse.uml2.uml.OutputPin" ordered="false" + * @generated + */ + List getResults(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Result' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getResults() + * @generated + */ + OutputPin getResult(String name); + + /** + * Returns the value of the 'Trigger' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Trigger}. + * + * + * + * The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted. + * + * @return the value of the 'Trigger' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAcceptEventAction_Trigger() + * @model type="org.eclipse.uml2.uml.Trigger" containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + List getTriggers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Trigger} and appends it to the 'Trigger' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Trigger}. + * @see #getTriggers() + * @generated + */ + Trigger createTrigger(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name' from the 'Trigger' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Trigger} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name', or null. + * @see #getTriggers() + * @generated + */ + Trigger getTrigger(String name); + + /** + * + * + * + * AcceptEventActions may have no input pins. + * true + * + * @model + * @generated + */ + boolean validateNoInputPins(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction). + * true + * + * @model + * @generated + */ + boolean validateNoOutputPins(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If the trigger events are all TimeEvents, there is exactly one output pin. + * true + * + * @model + * @generated + */ + boolean validateTriggerEvents(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute. + * true + * + * @model + * @generated + */ + boolean validateIsUnmarshall(DiagnosticChain diagnostics, Map context); + +} // AcceptEventAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java new file mode 100644 index 00000000..6c742047 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Action.java @@ -0,0 +1,208 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Action.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Action'. + * + * + * + * An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise. + * An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. In CompleteActivities, action is extended to have pre- and postconditions. + * An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Action#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.Action#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.Action#getContext Context}
  • + *
  • {@link org.eclipse.uml2.uml.Action#getLocalPreconditions Local Precondition}
  • + *
  • {@link org.eclipse.uml2.uml.Action#getLocalPostconditions Local Postcondition}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAction() + * @model + * @generated + */ +public interface Action + extends ExecutableNode { + + /** + * Returns the value of the 'Output' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * The ordered set of output pins connected to the Action. The action places its results onto pins in this set. + * + * @return the value of the 'Output' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAction_Output() + * @model type="org.eclipse.uml2.uml.OutputPin" resolveProxies="false" transient="true" changeable="false" derived="true" + * @generated + */ + List getOutputs(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Output' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getOutputs() + * @generated + */ + OutputPin getOutput(String name); + + /** + * Returns the value of the 'Input' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InputPin}. + * + * + * + * The ordered set of input pins connected to the Action. These are among the total set of inputs. + * + * @return the value of the 'Input' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAction_Input() + * @model type="org.eclipse.uml2.uml.InputPin" resolveProxies="false" transient="true" changeable="false" derived="true" + * @generated + */ + List getInputs(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name' from the 'Input' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name', or null. + * @see #getInputs() + * @generated + */ + InputPin getInput(String name); + + /** + * Returns the value of the 'Context' reference. + * + * + * + * The classifier that owns the behavior of which this action is a part. + * + * @return the value of the 'Context' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getAction_Context() + * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + Classifier getContext(); + + /** + * Returns the value of the 'Local Precondition' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Constraint}. + * + * + * + * Constraint that must be satisfied when execution is started. + * + * @return the value of the 'Local Precondition' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAction_LocalPrecondition() + * @model type="org.eclipse.uml2.uml.Constraint" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getLocalPreconditions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Local Precondition' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getLocalPreconditions() + * @generated + */ + Constraint createLocalPrecondition(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Local Precondition' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getLocalPreconditions() + * @generated + */ + Constraint createLocalPrecondition(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name' from the 'Local Precondition' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Constraint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name', or null. + * @see #getLocalPreconditions() + * @generated + */ + Constraint getLocalPrecondition(String name); + + /** + * Returns the value of the 'Local Postcondition' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Constraint}. + * + * + * + * Constraint that must be satisfied when executed is completed. + * + * @return the value of the 'Local Postcondition' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAction_LocalPostcondition() + * @model type="org.eclipse.uml2.uml.Constraint" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getLocalPostconditions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Local Postcondition' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getLocalPostconditions() + * @generated + */ + Constraint createLocalPostcondition(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Local Postcondition' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getLocalPostconditions() + * @generated + */ + Constraint createLocalPostcondition(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name' from the 'Local Postcondition' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Constraint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name', or null. + * @see #getLocalPostconditions() + * @generated + */ + Constraint getLocalPostcondition(String name); + +} // Action diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionExecutionSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionExecutionSpecification.java new file mode 100644 index 00000000..392e68cd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionExecutionSpecification.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionExecutionSpecification.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Action Execution Specification'. + * + * + * + * ActionExecutionSpecification is a kind of ExecutionSpecification representing the execution of an action. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActionExecutionSpecification#getAction Action}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActionExecutionSpecification() + * @model + * @generated + */ +public interface ActionExecutionSpecification + extends ExecutionSpecification { + + /** + * Returns the value of the 'Action' reference. + * + * + * + * Action whose execution is occurring. + * + * @return the value of the 'Action' reference. + * @see #setAction(Action) + * @see org.eclipse.uml2.uml.UMLPackage#getActionExecutionSpecification_Action() + * @model required="true" ordered="false" + * @generated + */ + Action getAction(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActionExecutionSpecification#getAction Action}' reference. + * + * + * @param value the new value of the 'Action' reference. + * @see #getAction() + * @generated + */ + void setAction(Action value); + + /** + * + * + * + * The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence. + * true + * + * @model + * @generated + */ + boolean validateActionReferenced(DiagnosticChain diagnostics, Map context); + +} // ActionExecutionSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionInputPin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionInputPin.java new file mode 100644 index 00000000..871b5584 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActionInputPin.java @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionInputPin.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Action Input Pin'. + * + * + * + * An action input pin is a kind of pin that executes an action to determine the values to input to another. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActionInputPin#getFromAction From Action}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActionInputPin() + * @model + * @generated + */ +public interface ActionInputPin + extends InputPin { + + /** + * Returns the value of the 'From Action' containment reference. + * + * + * + * The action used to provide values. + * + * @return the value of the 'From Action' containment reference. + * @see #setFromAction(Action) + * @see org.eclipse.uml2.uml.UMLPackage#getActionInputPin_FromAction() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + Action getFromAction(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActionInputPin#getFromAction From Action}' containment reference. + * + * + * @param value the new value of the 'From Action' containment reference. + * @see #getFromAction() + * @generated + */ + void setFromAction(Action value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Action} and sets the 'From Action' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Action} to create. + * @return The new {@link org.eclipse.uml2.uml.Action}. + * @see #getFromAction() + * @generated + */ + Action createFromAction(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Action} and sets the 'From Action' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Action}. + * @see #getFromAction() + * @generated + */ + Action createFromAction(); + + /** + * + * + * + * The fromAction of an action input pin must have exactly one output pin. + * true + * + * @model + * @generated + */ + boolean validateOneOutputPin(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The fromAction of an action input pin must only have action input pins as input pins. + * true + * + * @model + * @generated + */ + boolean validateInputPin(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins. + * true + * + * @model + * @generated + */ + boolean validateNoControlOrDataFlow(DiagnosticChain diagnostics, Map context); + +} // ActionInputPin diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java new file mode 100644 index 00000000..aa3162c9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Activity.java @@ -0,0 +1,361 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Activity.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Activity'. + * + * + * + * An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. + * + * + * + * Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds: + * + * - occurrences of primitive functions, such as arithmetic functions. + * + * - invocations of behavior, such as activities. + * + * - communication actions, such as sending of signals. + * + * - manipulations of objects, such as reading or writing attributes or associations. + * + * + * + * Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Activity#isReadOnly Is Read Only}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#getPartition Partition}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#getGroups Group}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#isSingleExecution Is Single Execution}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#getStructuredNodes Structured Node}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#getVariables Variable}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#getEdges Edge}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActivity() + * @model + * @generated + */ +public interface Activity + extends Behavior { + + /** + * Returns the value of the 'Is Read Only' attribute. + * The default value is "false". + * + * + * + * If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes). + * + * @return the value of the 'Is Read Only' attribute. + * @see #setIsReadOnly(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_IsReadOnly() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isReadOnly(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Activity#isReadOnly Is Read Only}' attribute. + * + * + * @param value the new value of the 'Is Read Only' attribute. + * @see #isReadOnly() + * @generated + */ + void setIsReadOnly(boolean value); + + /** + * Returns the value of the 'Partition' reference. + * + * + * + * Top-level partitions in the activity. + * + * @return the value of the 'Partition' reference. + * @see #setPartition(ActivityPartition) + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Partition() + * @model resolveProxies="false" required="true" ordered="false" + * @generated + */ + ActivityPartition getPartition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Activity#getPartition Partition}' reference. + * + * + * @param value the new value of the 'Partition' reference. + * @see #getPartition() + * @generated + */ + void setPartition(ActivityPartition value); + + /** + * Returns the value of the 'Group' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityGroup}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity In Activity}'. + * + * + * + * Top-level groups in the activity. + * + * @return the value of the 'Group' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Group() + * @see org.eclipse.uml2.uml.ActivityGroup#getInActivity + * @model type="org.eclipse.uml2.uml.ActivityGroup" opposite="inActivity" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getGroups(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityGroup} and appends it to the 'Group' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityGroup} to create. + * @return The new {@link org.eclipse.uml2.uml.ActivityGroup}. + * @see #getGroups() + * @generated + */ + ActivityGroup createGroup(EClass eClass); + + /** + * Returns the value of the 'Is Single Execution' attribute. + * + * + * + * If true, all invocations of the activity are handled by the same execution. + * + * @return the value of the 'Is Single Execution' attribute. + * @see #setIsSingleExecution(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_IsSingleExecution() + * @model required="true" ordered="false" + * @generated + */ + boolean isSingleExecution(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Activity#isSingleExecution Is Single Execution}' attribute. + * + * + * @param value the new value of the 'Is Single Execution' attribute. + * @see #isSingleExecution() + * @generated + */ + void setIsSingleExecution(boolean value); + + /** + * Returns the value of the 'Structured Node' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.StructuredActivityNode}. + * + * + * + * Top-level structured nodes in the activity. + * + * @return the value of the 'Structured Node' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_StructuredNode() + * @model type="org.eclipse.uml2.uml.StructuredActivityNode" resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getStructuredNodes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified 'Name' from the 'Structured Node' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.StructuredActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.StructuredActivityNode} with the specified 'Name', or null. + * @see #getStructuredNodes() + * @generated + */ + StructuredActivityNode getStructuredNode(String name); + + /** + * Returns the value of the 'Variable' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Variable}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Variable#getActivityScope Activity Scope}'. + * + * + * + * Top-level variables in the activity. + * + * @return the value of the 'Variable' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Variable() + * @see org.eclipse.uml2.uml.Variable#getActivityScope + * @model type="org.eclipse.uml2.uml.Variable" opposite="activityScope" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getVariables(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Variable} and appends it to the 'Variable' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Variable}. + * @see #getVariables() + * @generated + */ + Variable createVariable(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Variable} with the specified 'Name' from the 'Variable' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Variable} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Variable} with the specified 'Name', or null. + * @see #getVariables() + * @generated + */ + Variable getVariable(String name); + + /** + * Returns the value of the 'Node' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getActivity Activity}'. + * + * + * + * Nodes coordinated by the activity. + * + * @return the value of the 'Node' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Node() + * @see org.eclipse.uml2.uml.ActivityNode#getActivity + * @model type="org.eclipse.uml2.uml.ActivityNode" opposite="activity" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getNodes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityNode} and appends it to the 'Node' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityNode} to create. + * @return The new {@link org.eclipse.uml2.uml.ActivityNode}. + * @see #getNodes() + * @generated + */ + ActivityNode createNode(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name' from the 'Node' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name', or null. + * @see #getNodes() + * @generated + */ + ActivityNode getNode(String name); + + /** + * Returns the value of the 'Edge' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getActivity Activity}'. + * + * + * + * Edges expressing flow between nodes of the activity. + * + * @return the value of the 'Edge' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivity_Edge() + * @see org.eclipse.uml2.uml.ActivityEdge#getActivity + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="activity" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getEdges(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityEdge} and appends it to the 'Edge' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityEdge} to create. + * @return The new {@link org.eclipse.uml2.uml.ActivityEdge}. + * @see #getEdges() + * @generated + */ + ActivityEdge createEdge(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityEdge} and appends it to the 'Edge' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ActivityEdge}. + * @see #getEdges() + * @generated + */ + ActivityEdge createEdge(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Edge' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getEdges() + * @generated + */ + ActivityEdge getEdge(String name); + + /** + * + * + * + * The groups of an activity have no supergroups. + * true + * + * @model + * @generated + */ + boolean validateNoSupergroups(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The nodes of the activity must include one ActivityParameterNode for each parameter. + * true + * + * @model + * @generated + */ + boolean validateActivityParameterNode(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * An activity cannot be autonomous and have a classifier or behavioral feature context at the same time. + * true + * + * @model + * @generated + */ + boolean validateAutonomous(DiagnosticChain diagnostics, Map context); + +} // Activity diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java new file mode 100644 index 00000000..14fd28fb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityEdge.java @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityEdge.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Activity Edge'. + * + * + * + * ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getActivity Activity}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getInGroups In Group}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getInPartitions In Partition}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode In Structured Node}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getRedefinedEdges Redefined Edge}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getWeight Weight}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getInterrupts Interrupts}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#getSource Source}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge() + * @model + * @generated + */ +public interface ActivityEdge + extends RedefinableElement { + + /** + * Returns the value of the 'Activity' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Activity#getEdges Edge}'. + * + * + * + * Activity containing the edge. + * + * @return the value of the 'Activity' container reference. + * @see #setActivity(Activity) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_Activity() + * @see org.eclipse.uml2.uml.Activity#getEdges + * @model opposite="edge" ordered="false" + * @generated + */ + Activity getActivity(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getActivity Activity}' container reference. + * + * + * @param value the new value of the 'Activity' container reference. + * @see #getActivity() + * @generated + */ + void setActivity(Activity value); + + /** + * Returns the value of the 'In Group' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityGroup}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityGroup#getContainedEdges Contained Edge}'. + * + * + * + * Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivityGroup. + * Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivity-Group. + * + * @return the value of the 'In Group' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_InGroup() + * @see org.eclipse.uml2.uml.ActivityGroup#getContainedEdges + * @model type="org.eclipse.uml2.uml.ActivityGroup" opposite="containedEdge" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getInGroups(); + + /** + * Returns the value of the 'In Partition' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityPartition}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityPartition#getEdges Edge}'. + * + * + * + * Partitions containing the edge. + * + * @return the value of the 'In Partition' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_InPartition() + * @see org.eclipse.uml2.uml.ActivityPartition#getEdges + * @model type="org.eclipse.uml2.uml.ActivityPartition" opposite="edge" ordered="false" + * @generated + */ + List getInPartitions(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityPartition} with the specified 'Name' from the 'In Partition' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityPartition} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityPartition} with the specified 'Name', or null. + * @see #getInPartitions() + * @generated + */ + ActivityPartition getInPartition(String name); + + /** + * Returns the value of the 'In Structured Node' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StructuredActivityNode#getEdges Edge}'. + * + * + * + * Structured activity node containing the edge. + * + * @return the value of the 'In Structured Node' container reference. + * @see #setInStructuredNode(StructuredActivityNode) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_InStructuredNode() + * @see org.eclipse.uml2.uml.StructuredActivityNode#getEdges + * @model opposite="edge" ordered="false" + * @generated + */ + StructuredActivityNode getInStructuredNode(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode In Structured Node}' container reference. + * + * + * @param value the new value of the 'In Structured Node' container reference. + * @see #getInStructuredNode() + * @generated + */ + void setInStructuredNode(StructuredActivityNode value); + + /** + * Returns the value of the 'Target' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getIncomings Incoming}'. + * + * + * + * Node to which tokens are put when they traverse the edge. + * + * @return the value of the 'Target' reference. + * @see #setTarget(ActivityNode) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_Target() + * @see org.eclipse.uml2.uml.ActivityNode#getIncomings + * @model opposite="incoming" required="true" ordered="false" + * @generated + */ + ActivityNode getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getTarget Target}' reference. + * + * + * @param value the new value of the 'Target' reference. + * @see #getTarget() + * @generated + */ + void setTarget(ActivityNode value); + + /** + * Returns the value of the 'Redefined Edge' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * + * + * + * Inherited edges replaced by this edge in a specialization of the activity. + * + * @return the value of the 'Redefined Edge' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_RedefinedEdge() + * @model type="org.eclipse.uml2.uml.ActivityEdge" ordered="false" + * @generated + */ + List getRedefinedEdges(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Redefined Edge' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getRedefinedEdges() + * @generated + */ + ActivityEdge getRedefinedEdge(String name); + + /** + * Returns the value of the 'Guard' containment reference. + * + * + * + * Specification evaluated at runtime to determine if the edge can be traversed. + * + * @return the value of the 'Guard' containment reference. + * @see #setGuard(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_Guard() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getGuard(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getGuard Guard}' containment reference. + * + * + * @param value the new value of the 'Guard' containment reference. + * @see #getGuard() + * @generated + */ + void setGuard(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Guard' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getGuard() + * @generated + */ + ValueSpecification createGuard(EClass eClass); + + /** + * Returns the value of the 'Weight' containment reference. + * + * + * + * Number of tokens consumed from the source node on each traversal. + * + * @return the value of the 'Weight' containment reference. + * @see #setWeight(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_Weight() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getWeight(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getWeight Weight}' containment reference. + * + * + * @param value the new value of the 'Weight' containment reference. + * @see #getWeight() + * @generated + */ + void setWeight(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Weight' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getWeight() + * @generated + */ + ValueSpecification createWeight(EClass eClass); + + /** + * Returns the value of the 'Interrupts' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InterruptibleActivityRegion#getInterruptingEdges Interrupting Edge}'. + * + * + * + * Region that the edge can interrupt. + * + * @return the value of the 'Interrupts' reference. + * @see #setInterrupts(InterruptibleActivityRegion) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_Interrupts() + * @see org.eclipse.uml2.uml.InterruptibleActivityRegion#getInterruptingEdges + * @model opposite="interruptingEdge" ordered="false" + * @generated + */ + InterruptibleActivityRegion getInterrupts(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getInterrupts Interrupts}' reference. + * + * + * @param value the new value of the 'Interrupts' reference. + * @see #getInterrupts() + * @generated + */ + void setInterrupts(InterruptibleActivityRegion value); + + /** + * Returns the value of the 'Source' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getOutgoings Outgoing}'. + * + * + * + * Node from which tokens are taken when they traverse the edge. + * + * @return the value of the 'Source' reference. + * @see #setSource(ActivityNode) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityEdge_Source() + * @see org.eclipse.uml2.uml.ActivityNode#getOutgoings + * @model opposite="outgoing" required="true" ordered="false" + * @generated + */ + ActivityNode getSource(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityEdge#getSource Source}' reference. + * + * + * @param value the new value of the 'Source' reference. + * @see #getSource() + * @generated + */ + void setSource(ActivityNode value); + + /** + * + * + * + * The source and target of an edge must be in the same activity as the edge. + * true + * + * @model + * @generated + */ + boolean validateSourceAndTarget(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Activity edges may be owned only by activities or groups. + * true + * + * @model + * @generated + */ + boolean validateOwned(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Activity edges may be owned by at most one structured node. + * true + * + * @model + * @generated + */ + boolean validateStructuredNode(DiagnosticChain diagnostics, Map context); + +} // ActivityEdge diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityFinalNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityFinalNode.java new file mode 100644 index 00000000..592d92f5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityFinalNode.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityFinalNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Activity Final Node'. + * + * + * + * An activity may have more than one activity final node. The first one reached stops all flows in the activity. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getActivityFinalNode() + * @model + * @generated + */ +public interface ActivityFinalNode + extends FinalNode { +} // ActivityFinalNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java new file mode 100644 index 00000000..0c97d73a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityGroup.java @@ -0,0 +1,203 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityGroup.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Activity Group'. + * + * + * + * Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group. + * + * They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#getSubgroups Subgroup}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#getSuperGroup Super Group}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#getContainedNodes Contained Node}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#getInActivity In Activity}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#getContainedEdges Contained Edge}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup() + * @model abstract="true" + * @generated + */ +public interface ActivityGroup + extends Element { + + /** + * Returns the value of the 'Subgroup' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityGroup}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityGroup#getSuperGroup Super Group}'. + * + * + * + * Groups immediately contained in the group. + * + * @return the value of the 'Subgroup' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup_Subgroup() + * @see org.eclipse.uml2.uml.ActivityGroup#getSuperGroup + * @model type="org.eclipse.uml2.uml.ActivityGroup" opposite="superGroup" resolveProxies="false" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getSubgroups(); + + /** + * Returns the value of the 'Super Group' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityGroup#getSubgroups Subgroup}'. + * + * + * + * Group immediately containing the group. + * + * @return the value of the 'Super Group' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup_SuperGroup() + * @see org.eclipse.uml2.uml.ActivityGroup#getSubgroups + * @model opposite="subgroup" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + ActivityGroup getSuperGroup(); + + /** + * Returns the value of the 'Contained Node' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getInGroups In Group}'. + * + * + * + * Nodes immediately contained in the group. + * + * @return the value of the 'Contained Node' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup_ContainedNode() + * @see org.eclipse.uml2.uml.ActivityNode#getInGroups + * @model type="org.eclipse.uml2.uml.ActivityNode" opposite="inGroup" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getContainedNodes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name' from the 'Contained Node' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name', or null. + * @see #getContainedNodes() + * @generated + */ + ActivityNode getContainedNode(String name); + + /** + * Returns the value of the 'In Activity' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Activity#getGroups Group}'. + * + * + * + * Activity containing the group. + * + * @return the value of the 'In Activity' container reference. + * @see #setInActivity(Activity) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup_InActivity() + * @see org.eclipse.uml2.uml.Activity#getGroups + * @model opposite="group" ordered="false" + * @generated + */ + Activity getInActivity(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity In Activity}' container reference. + * + * + * @param value the new value of the 'In Activity' container reference. + * @see #getInActivity() + * @generated + */ + void setInActivity(Activity value); + + /** + * Returns the value of the 'Contained Edge' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getInGroups In Group}'. + * + * + * + * Edges immediately contained in the group. + * + * @return the value of the 'Contained Edge' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityGroup_ContainedEdge() + * @see org.eclipse.uml2.uml.ActivityEdge#getInGroups + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="inGroup" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getContainedEdges(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Contained Edge' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getContainedEdges() + * @generated + */ + ActivityEdge getContainedEdge(String name); + + /** + * + * + * + * All nodes and edges of the group must be in the same activity as the group. + * true + * + * @model + * @generated + */ + boolean validateNodesAndEdges(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * No node or edge in a group may be contained by its subgroups or its containing groups, transitively. + * true + * + * @model + * @generated + */ + boolean validateNotContained(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Groups may only be owned by activities or groups. + * true + * + * @model + * @generated + */ + boolean validateGroupOwned(DiagnosticChain diagnostics, Map context); + +} // ActivityGroup diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java new file mode 100644 index 00000000..3dba9bca --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityNode.java @@ -0,0 +1,274 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityNode.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Activity Node'. + * + * + * + * An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be replaced in generalization. + * An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be contained in interruptible regions. + * An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getOutgoings Outgoing}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getInGroups In Group}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getInPartitions In Partition}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getInStructuredNode In Structured Node}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getActivity Activity}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getIncomings Incoming}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getInInterruptibleRegions In Interruptible Region}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#getRedefinedNodes Redefined Node}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode() + * @model abstract="true" + * @generated + */ +public interface ActivityNode + extends RedefinableElement { + + /** + * Returns the value of the 'Outgoing' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getSource Source}'. + * + * + * + * Edges that have the node as source. + * + * @return the value of the 'Outgoing' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_Outgoing() + * @see org.eclipse.uml2.uml.ActivityEdge#getSource + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="source" ordered="false" + * @generated + */ + List getOutgoings(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Outgoing' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getOutgoings() + * @generated + */ + ActivityEdge getOutgoing(String name); + + /** + * Returns the value of the 'In Group' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityGroup}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityGroup#getContainedNodes Contained Node}'. + * + * + * + * Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group. + * + * @return the value of the 'In Group' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_InGroup() + * @see org.eclipse.uml2.uml.ActivityGroup#getContainedNodes + * @model type="org.eclipse.uml2.uml.ActivityGroup" opposite="containedNode" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getInGroups(); + + /** + * Returns the value of the 'In Partition' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityPartition}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityPartition#getNodes Node}'. + * + * + * + * Partitions containing the node. + * + * @return the value of the 'In Partition' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_InPartition() + * @see org.eclipse.uml2.uml.ActivityPartition#getNodes + * @model type="org.eclipse.uml2.uml.ActivityPartition" opposite="node" ordered="false" + * @generated + */ + List getInPartitions(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityPartition} with the specified 'Name' from the 'In Partition' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityPartition} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityPartition} with the specified 'Name', or null. + * @see #getInPartitions() + * @generated + */ + ActivityPartition getInPartition(String name); + + /** + * Returns the value of the 'In Structured Node' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StructuredActivityNode#getNodes Node}'. + * + * + * + * Structured activity node containing the node. + * + * @return the value of the 'In Structured Node' container reference. + * @see #setInStructuredNode(StructuredActivityNode) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_InStructuredNode() + * @see org.eclipse.uml2.uml.StructuredActivityNode#getNodes + * @model opposite="node" ordered="false" + * @generated + */ + StructuredActivityNode getInStructuredNode(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityNode#getInStructuredNode In Structured Node}' container reference. + * + * + * @param value the new value of the 'In Structured Node' container reference. + * @see #getInStructuredNode() + * @generated + */ + void setInStructuredNode(StructuredActivityNode value); + + /** + * Returns the value of the 'Activity' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Activity#getNodes Node}'. + * + * + * + * Activity containing the node. + * + * @return the value of the 'Activity' container reference. + * @see #setActivity(Activity) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_Activity() + * @see org.eclipse.uml2.uml.Activity#getNodes + * @model opposite="node" ordered="false" + * @generated + */ + Activity getActivity(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityNode#getActivity Activity}' container reference. + * + * + * @param value the new value of the 'Activity' container reference. + * @see #getActivity() + * @generated + */ + void setActivity(Activity value); + + /** + * Returns the value of the 'Incoming' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getTarget Target}'. + * + * + * + * Edges that have the node as target. + * + * @return the value of the 'Incoming' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_Incoming() + * @see org.eclipse.uml2.uml.ActivityEdge#getTarget + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="target" ordered="false" + * @generated + */ + List getIncomings(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Incoming' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getIncomings() + * @generated + */ + ActivityEdge getIncoming(String name); + + /** + * Returns the value of the 'In Interruptible Region' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InterruptibleActivityRegion}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InterruptibleActivityRegion#getNodes Node}'. + * + * + * + * Interruptible regions containing the node. + * + * @return the value of the 'In Interruptible Region' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_InInterruptibleRegion() + * @see org.eclipse.uml2.uml.InterruptibleActivityRegion#getNodes + * @model type="org.eclipse.uml2.uml.InterruptibleActivityRegion" opposite="node" ordered="false" + * @generated + */ + List getInInterruptibleRegions(); + + /** + * Returns the value of the 'Redefined Node' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}. + * + * + * + * Inherited nodes replaced by this node in a specialization of the activity. + * + * @return the value of the 'Redefined Node' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityNode_RedefinedNode() + * @model type="org.eclipse.uml2.uml.ActivityNode" ordered="false" + * @generated + */ + List getRedefinedNodes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name' from the 'Redefined Node' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name', or null. + * @see #getRedefinedNodes() + * @generated + */ + ActivityNode getRedefinedNode(String name); + + /** + * + * + * + * Activity nodes can only be owned by activities or groups. + * true + * + * @model + * @generated + */ + boolean validateOwned(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Activity nodes may be owned by at most one structured node. + * true + * + * @model + * @generated + */ + boolean validateOwnedStructuredNode(DiagnosticChain diagnostics, Map context); + +} // ActivityNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityParameterNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityParameterNode.java new file mode 100644 index 00000000..47a31e3f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityParameterNode.java @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityParameterNode.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Activity Parameter Node'. + * + * + * + * Activity parameter nodes are object nodes at the beginning and end of flows that provide a means to accept inputs to an activity and provide outputs from the activity, through the activity parameters. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityParameterNode#getParameter Parameter}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActivityParameterNode() + * @model + * @generated + */ +public interface ActivityParameterNode + extends ObjectNode { + + /** + * Returns the value of the 'Parameter' reference. + * + * + * + * The parameter the object node will be accepting or providing values for. + * + * @return the value of the 'Parameter' reference. + * @see #setParameter(Parameter) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityParameterNode_Parameter() + * @model required="true" ordered="false" + * @generated + */ + Parameter getParameter(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityParameterNode#getParameter Parameter}' reference. + * + * + * @param value the new value of the 'Parameter' reference. + * @see #getParameter() + * @generated + */ + void setParameter(Parameter value); + + /** + * + * + * + * Activity parameter nodes must have parameters from the containing activity. + * true + * + * @model + * @generated + */ + boolean validateParameter(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of an activity parameter node is the same as the type of its parameter. + * true + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges. + * true + * + * @model + * @generated + */ + boolean validateNoEdges(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction. + * + * + * true + * + * @model + * @generated + */ + boolean validateNoIncomingEdges(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction. + * + * + * true + * + * @model + * @generated + */ + boolean validateNoOutgoingEdges(DiagnosticChain diagnostics, Map context); + +} // ActivityParameterNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityPartition.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityPartition.java new file mode 100644 index 00000000..ea16e0e5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ActivityPartition.java @@ -0,0 +1,309 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityPartition.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Activity Partition'. + * + * + * + * Partitions divide the nodes and edges to constrain and show a view of the contained nodes. Partitions can share contents. They often correspond to organizational units in a business model. They may be used to allocate characteristics or resources among the nodes of an activity. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#isDimension Is Dimension}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#isExternal Is External}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#getEdges Edge}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#getSubpartitions Subpartition}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#getSuperPartition Super Partition}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#getRepresents Represents}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition() + * @model + * @generated + */ +public interface ActivityPartition + extends NamedElement, ActivityGroup { + + /** + * Returns the value of the 'Is Dimension' attribute. + * The default value is "false". + * + * + * + * Tells whether the partition groups other partitions along a dimension. + * + * @return the value of the 'Is Dimension' attribute. + * @see #setIsDimension(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_IsDimension() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDimension(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityPartition#isDimension Is Dimension}' attribute. + * + * + * @param value the new value of the 'Is Dimension' attribute. + * @see #isDimension() + * @generated + */ + void setIsDimension(boolean value); + + /** + * Returns the value of the 'Is External' attribute. + * The default value is "false". + * + * + * + * Tells whether the partition represents an entity to which the partitioning structure does not apply. + * + * @return the value of the 'Is External' attribute. + * @see #setIsExternal(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_IsExternal() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isExternal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityPartition#isExternal Is External}' attribute. + * + * + * @param value the new value of the 'Is External' attribute. + * @see #isExternal() + * @generated + */ + void setIsExternal(boolean value); + + /** + * Returns the value of the 'Edge' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getInPartitions In Partition}'. + * + * + * + * Edges immediately contained in the group. + * + * @return the value of the 'Edge' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_Edge() + * @see org.eclipse.uml2.uml.ActivityEdge#getInPartitions + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="inPartition" ordered="false" + * @generated + */ + List getEdges(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Edge' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getEdges() + * @generated + */ + ActivityEdge getEdge(String name); + + /** + * Returns the value of the 'Node' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getInPartitions In Partition}'. + * + * + * + * Nodes immediately contained in the group. + * + * @return the value of the 'Node' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_Node() + * @see org.eclipse.uml2.uml.ActivityNode#getInPartitions + * @model type="org.eclipse.uml2.uml.ActivityNode" opposite="inPartition" ordered="false" + * @generated + */ + List getNodes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name' from the 'Node' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name', or null. + * @see #getNodes() + * @generated + */ + ActivityNode getNode(String name); + + /** + * Returns the value of the 'Subpartition' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityPartition}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityPartition#getSuperPartition Super Partition}'. + * + * + * + * Partitions immediately contained in the partition. Specialized from Activity-Group::subgroup. + * + * @return the value of the 'Subpartition' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_Subpartition() + * @see org.eclipse.uml2.uml.ActivityPartition#getSuperPartition + * @model type="org.eclipse.uml2.uml.ActivityPartition" opposite="superPartition" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getSubpartitions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityPartition} and appends it to the 'Subpartition' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ActivityPartition}. + * @see #getSubpartitions() + * @generated + */ + ActivityPartition createSubpartition(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityPartition} with the specified 'Name' from the 'Subpartition' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityPartition} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityPartition} with the specified 'Name', or null. + * @see #getSubpartitions() + * @generated + */ + ActivityPartition getSubpartition(String name); + + /** + * Returns the value of the 'Super Partition' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityPartition#getSubpartitions Subpartition}'. + * + * + * + * Partition immediately containing the partition. + * + * @return the value of the 'Super Partition' container reference. + * @see #setSuperPartition(ActivityPartition) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_SuperPartition() + * @see org.eclipse.uml2.uml.ActivityPartition#getSubpartitions + * @model opposite="subpartition" ordered="false" + * @generated + */ + ActivityPartition getSuperPartition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityPartition#getSuperPartition Super Partition}' container reference. + * + * + * @param value the new value of the 'Super Partition' container reference. + * @see #getSuperPartition() + * @generated + */ + void setSuperPartition(ActivityPartition value); + + /** + * Returns the value of the 'Represents' reference. + * + * + * + * An element constraining behaviors invoked by nodes in the partition. + * + * @return the value of the 'Represents' reference. + * @see #setRepresents(Element) + * @see org.eclipse.uml2.uml.UMLPackage#getActivityPartition_Represents() + * @model ordered="false" + * @generated + */ + Element getRepresents(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ActivityPartition#getRepresents Represents}' reference. + * + * + * @param value the new value of the 'Represents' reference. + * @see #getRepresents() + * @generated + */ + void setRepresents(Element value); + + /** + * + * + * + * A partition with isDimension = true may not be contained by another partition. + * true + * + * @model + * @generated + */ + boolean validateIsDimension(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * No node or edge of a partition may be in another partition in the same dimension. + * true + * + * @model + * @generated + */ + boolean validateNodeOrEdge(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier. + * true + * + * @model + * @generated + */ + boolean validateRepresentsPart(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition. + * true + * + * @model + * @generated + */ + boolean validateRepresentsClassifier(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition. + * true + * + * @model + * @generated + */ + boolean validateRepresentsPartAndIsContained(DiagnosticChain diagnostics, + Map context); + +} // ActivityPartition diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Actor.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Actor.java new file mode 100644 index 00000000..61af88c9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Actor.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Actor.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Actor'. + * + * + * + * An Actor models a type of role played by an entity that interacts with the subject (e.g., by exchanging signals and data), but which is external to the subject (i.e., in the sense that an instance of an actor is not a part of the instance of its corresponding subject). Actors may represent roles played by human users, external hardware, or other subjects. Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., ?role?) of some entity that is relevant to the specification of its associated use cases. Thus, a single physical instance may play the role of several different actors and, conversely, a given actor may be played by multiple different instances. + * + * + * + * Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier. + * + * + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getActor() + * @model + * @generated + */ +public interface Actor + extends BehavioredClassifier { + + /** + * + * + * + * An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary. + * self.ownedAttribute->forAll ( a | + * (a.association->notEmpty()) implies + * ((a.association.memberEnd.size() = 2) and + * (a.opposite.class.oclIsKindOf(UseCase) or + * (a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior)))) + * + * + * @model + * @generated + */ + boolean validateAssociations(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An actor must have a name. + * name->notEmpty() + * + * @model + * @generated + */ + boolean validateMustHaveName(DiagnosticChain diagnostics, Map context); + +} // Actor diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddStructuralFeatureValueAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddStructuralFeatureValueAction.java new file mode 100644 index 00000000..46b74301 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddStructuralFeatureValueAction.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AddStructuralFeatureValueAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Add Structural Feature Value Action'. + * + * + * + * Structural Features are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the structural feature before the new value is added. + * + * + * + * The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#getInsertAt Insert At}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAddStructuralFeatureValueAction() + * @model + * @generated + */ +public interface AddStructuralFeatureValueAction + extends WriteStructuralFeatureAction { + + /** + * Returns the value of the 'Is Replace All' attribute. + * The default value is "false". + * + * + * + * Specifies whether existing values of the structural feature of the object should be removed before adding the new value. + * + * @return the value of the 'Is Replace All' attribute. + * @see #setIsReplaceAll(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getAddStructuralFeatureValueAction_IsReplaceAll() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isReplaceAll(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#isReplaceAll Is Replace All}' attribute. + * + * + * @param value the new value of the 'Is Replace All' attribute. + * @see #isReplaceAll() + * @generated + */ + void setIsReplaceAll(boolean value); + + /** + * Returns the value of the 'Insert At' containment reference. + * + * + * + * Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features. + * + * @return the value of the 'Insert At' containment reference. + * @see #setInsertAt(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getAddStructuralFeatureValueAction_InsertAt() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + InputPin getInsertAt(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#getInsertAt Insert At}' containment reference. + * + * + * @param value the new value of the 'Insert At' containment reference. + * @see #getInsertAt() + * @generated + */ + void setInsertAt(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Insert At' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getInsertAt() + * @generated + */ + InputPin createInsertAt(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Insert At' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getInsertAt() + * @generated + */ + InputPin createInsertAt(); + + /** + * + * + * + * Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + * let insertAtPins : Collection = self.insertAt in + * if self.structuralFeature.isOrdered = #false + * then insertAtPins->size() = 0 + * else let insertAtPin : InputPin= insertAt->asSequence()->first() in + * insertAtPins->size() = 1 + * and insertAtPin.type = UnlimitedNatural + * and insertAtPin.multiplicity.is(1,1)) + * endif + * + * + * @model + * @generated + */ + boolean validateUnlimitedNaturalAndMultiplicity( + DiagnosticChain diagnostics, Map context); + +} // AddStructuralFeatureValueAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddVariableValueAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddVariableValueAction.java new file mode 100644 index 00000000..171c7203 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AddVariableValueAction.java @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AddVariableValueAction.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Add Variable Value Action'. + * + * + * + * Variables are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the variable before the new value is added. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AddVariableValueAction#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.AddVariableValueAction#getInsertAt Insert At}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAddVariableValueAction() + * @model + * @generated + */ +public interface AddVariableValueAction + extends WriteVariableAction { + + /** + * Returns the value of the 'Is Replace All' attribute. + * The default value is "false". + * + * + * + * Specifies whether existing values of the variable should be removed before adding the new value. + * + * @return the value of the 'Is Replace All' attribute. + * @see #setIsReplaceAll(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getAddVariableValueAction_IsReplaceAll() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isReplaceAll(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.AddVariableValueAction#isReplaceAll Is Replace All}' attribute. + * + * + * @param value the new value of the 'Is Replace All' attribute. + * @see #isReplaceAll() + * @generated + */ + void setIsReplaceAll(boolean value); + + /** + * Returns the value of the 'Insert At' containment reference. + * + * + * + * Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables. + * + * @return the value of the 'Insert At' containment reference. + * @see #setInsertAt(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getAddVariableValueAction_InsertAt() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + InputPin getInsertAt(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.AddVariableValueAction#getInsertAt Insert At}' containment reference. + * + * + * @param value the new value of the 'Insert At' containment reference. + * @see #getInsertAt() + * @generated + */ + void setInsertAt(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Insert At' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getInsertAt() + * @generated + */ + InputPin createInsertAt(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Insert At' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getInsertAt() + * @generated + */ + InputPin createInsertAt(); + + /** + * + * + * + * Actions adding values to ordered variables must have a single input pin for the insertion point with type UnlimtedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + * let insertAtPins : Collection = self.insertAt in + * if self.variable.ordering = #unordered + * then insertAtPins->size() = 0 + * else let insertAtPin : InputPin = insertAt->asSequence()->first() in + * insertAtPins->size() = 1 + * and insertAtPin.type = UnlimitedNatural + * and insertAtPin.multiplicity.is(1,1)) + * endif + * + * + * @model + * @generated + */ + boolean validateSingleInputPin(DiagnosticChain diagnostics, Map context); + +} // AddVariableValueAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AggregationKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AggregationKind.java new file mode 100644 index 00000000..23ac8898 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AggregationKind.java @@ -0,0 +1,194 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AggregationKind.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Aggregation Kind', + * and utility methods for working with them. + * + * + * AggregationKind is an enumeration of the following literal values: + * ? none Indicates that the property has no aggregation. + * ? shared Indicates that the property has a shared aggregation. + * ? composite Indicates that the property is aggregated compositely, i.e., the composite object has + * responsibility for the existence and storage of the composed objects (parts). + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getAggregationKind() + * @model + * @generated + */ +public final class AggregationKind + extends AbstractEnumerator { + + /** + * The 'None' literal value. + * + * + * + * Indicates that the property has no aggregation. + * + * @see #NONE_LITERAL + * @model name="none" + * @generated + * @ordered + */ + public static final int NONE = 0; + + /** + * The 'Shared' literal value. + * + * + * + * Indicates that the property has a shared aggregation. + * + * @see #SHARED_LITERAL + * @model name="shared" + * @generated + * @ordered + */ + public static final int SHARED = 1; + + /** + * The 'Composite' literal value. + * + * + * + * Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts). + * + * @see #COMPOSITE_LITERAL + * @model name="composite" + * @generated + * @ordered + */ + public static final int COMPOSITE = 2; + + /** + * The 'None' literal object. + * + * + * @see #NONE + * @generated + * @ordered + */ + public static final AggregationKind NONE_LITERAL = new AggregationKind( + NONE, "none", "none"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Shared' literal object. + * + * + * @see #SHARED + * @generated + * @ordered + */ + public static final AggregationKind SHARED_LITERAL = new AggregationKind( + SHARED, "shared", "shared"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Composite' literal object. + * + * + * @see #COMPOSITE + * @generated + * @ordered + */ + public static final AggregationKind COMPOSITE_LITERAL = new AggregationKind( + COMPOSITE, "composite", "composite"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Aggregation Kind' enumerators. + * + * + * @generated + */ + private static final AggregationKind[] VALUES_ARRAY = new AggregationKind[]{ + NONE_LITERAL, SHARED_LITERAL, COMPOSITE_LITERAL,}; + + /** + * A public read-only list of all the 'Aggregation Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Aggregation Kind' literal with the specified literal value. + * + * + * @generated + */ + public static AggregationKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + AggregationKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Aggregation Kind' literal with the specified name. + * + * + * @generated + */ + public static AggregationKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + AggregationKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Aggregation Kind' literal with the specified integer value. + * + * + * @generated + */ + public static AggregationKind get(int value) { + switch (value) { + case NONE : + return NONE_LITERAL; + case SHARED : + return SHARED_LITERAL; + case COMPOSITE : + return COMPOSITE_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private AggregationKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //AggregationKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AnyReceiveEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AnyReceiveEvent.java new file mode 100644 index 00000000..00bd943d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AnyReceiveEvent.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AnyReceiveEvent.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Any Receive Event'. + * + * + * + * A transition trigger associated with AnyReceiveEvent specifies that the transition is to be triggered by the receipt of any message that is not explicitly referenced in another transition from the same vertex. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getAnyReceiveEvent() + * @model + * @generated + */ +public interface AnyReceiveEvent + extends MessageEvent { +} // AnyReceiveEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java new file mode 100644 index 00000000..c3633662 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Artifact.java @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Artifact.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Artifact'. + * + * + * + * In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations to other Artifacts, e.g. composition associations. Artifacts can be instantiated to represent detailed copy semantics, where different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values, e.g. for a 'time-stamp' property. + * As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by specializing the abstract superclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Artifact#getFileName File Name}
  • + *
  • {@link org.eclipse.uml2.uml.Artifact#getNestedArtifacts Nested Artifact}
  • + *
  • {@link org.eclipse.uml2.uml.Artifact#getManifestations Manifestation}
  • + *
  • {@link org.eclipse.uml2.uml.Artifact#getOwnedOperations Owned Operation}
  • + *
  • {@link org.eclipse.uml2.uml.Artifact#getOwnedAttributes Owned Attribute}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getArtifact() + * @model + * @generated + */ +public interface Artifact + extends Classifier, DeployedArtifact { + + /** + * Returns the value of the 'File Name' attribute. + * + * + * + * A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator. + * + * @return the value of the 'File Name' attribute. + * @see #setFileName(String) + * @see org.eclipse.uml2.uml.UMLPackage#getArtifact_FileName() + * @model required="true" ordered="false" + * @generated + */ + String getFileName(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Artifact#getFileName File Name}' attribute. + * + * + * @param value the new value of the 'File Name' attribute. + * @see #getFileName() + * @generated + */ + void setFileName(String value); + + /** + * Returns the value of the 'Nested Artifact' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Artifact}. + * + * + * + * The Artifacts that are defined (nested) within the Artifact. + * + * The association is a specialization of the ownedMember association from Namespace to NamedElement. + * + * + * + * @return the value of the 'Nested Artifact' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getArtifact_NestedArtifact() + * @model type="org.eclipse.uml2.uml.Artifact" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getNestedArtifacts(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Artifact} and appends it to the 'Nested Artifact' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Artifact} to create. + * @return The new {@link org.eclipse.uml2.uml.Artifact}. + * @see #getNestedArtifacts() + * @generated + */ + Artifact createNestedArtifact(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Artifact} and appends it to the 'Nested Artifact' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Artifact}. + * @see #getNestedArtifacts() + * @generated + */ + Artifact createNestedArtifact(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Artifact} with the specified 'Name' from the 'Nested Artifact' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Artifact} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Artifact} with the specified 'Name', or null. + * @see #getNestedArtifacts() + * @generated + */ + Artifact getNestedArtifact(String name); + + /** + * Returns the value of the 'Manifestation' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Manifestation}. + * + * + * + * The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact. + * + * @return the value of the 'Manifestation' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getArtifact_Manifestation() + * @model type="org.eclipse.uml2.uml.Manifestation" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getManifestations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Manifestation} and appends it to the 'Manifestation' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Manifestation}. + * @see #getManifestations() + * @generated + */ + Manifestation createManifestation(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Manifestation} with the specified 'Name' from the 'Manifestation' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Manifestation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Manifestation} with the specified 'Name', or null. + * @see #getManifestations() + * @generated + */ + Manifestation getManifestation(String name); + + /** + * Returns the value of the 'Owned Operation' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Operation}. + * + * + * + * The Operations defined for the Artifact. The association is a specialization of the ownedMember association. + * + * @return the value of the 'Owned Operation' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getArtifact_OwnedOperation() + * @model type="org.eclipse.uml2.uml.Operation" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedOperations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Operation} and appends it to the 'Owned Operation' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Operation}. + * @see #getOwnedOperations() + * @generated + */ + Operation createOwnedOperation(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified 'Name' from the 'Owned Operation' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Operation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Operation} with the specified 'Name', or null. + * @see #getOwnedOperations() + * @generated + */ + Operation getOwnedOperation(String name); + + /** + * Returns the value of the 'Owned Attribute' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * The attributes or association ends defined for the Artifact. + * + * The association is a specialization of the ownedMember association. + * + * + * + * @return the value of the 'Owned Attribute' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getArtifact_OwnedAttribute() + * @model type="org.eclipse.uml2.uml.Property" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedAttributes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Owned Attribute' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getOwnedAttributes() + * @generated + */ + Property getOwnedAttribute(String name); + +} // Artifact diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java new file mode 100644 index 00000000..23157233 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Association.java @@ -0,0 +1,272 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Association.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Association'. + * + * + * + * An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of an association may have the same type. + * + * + * + * An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Association#isDerived Is Derived}
  • + *
  • {@link org.eclipse.uml2.uml.Association#getEndTypes End Type}
  • + *
  • {@link org.eclipse.uml2.uml.Association#getMemberEnds Member End}
  • + *
  • {@link org.eclipse.uml2.uml.Association#getNavigableOwnedEnds Navigable Owned End}
  • + *
  • {@link org.eclipse.uml2.uml.Association#getOwnedEnds Owned End}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getAssociation() + * @model + * @generated + */ +public interface Association + extends Classifier, Relationship { + + /** + * Returns the value of the 'Is Derived' attribute. + * The default value is "false". + * + * + * + * Specifies whether the association is derived from other model elements such as other associations or constraints. + * + * @return the value of the 'Is Derived' attribute. + * @see #setIsDerived(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getAssociation_IsDerived() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDerived(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Association#isDerived Is Derived}' attribute. + * + * + * @param value the new value of the 'Is Derived' attribute. + * @see #isDerived() + * @generated + */ + void setIsDerived(boolean value); + + /** + * Returns the value of the 'End Type' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Type}. + * + * + * + * References the classifiers that are used as types of the ends of the association. + * + * @return the value of the 'End Type' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAssociation_EndType() + * @model type="org.eclipse.uml2.uml.Type" required="true" transient="true" changeable="false" volatile="true" derived="true" + * @generated + */ + List getEndTypes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Type} with the specified 'Name' from the 'End Type' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Type} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Type} with the specified 'Name', or null. + * @see #getEndTypes() + * @generated + */ + Type getEndType(String name); + + /** + * Returns the value of the 'Member End' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getAssociation Association}'. + * + * + * + * Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association. + * Each end represents participation of instances of the classifier connected to the end in links of the association. + * + * @return the value of the 'Member End' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAssociation_MemberEnd() + * @see org.eclipse.uml2.uml.Property#getAssociation + * @model type="org.eclipse.uml2.uml.Property" opposite="association" lower="2" + * @generated + */ + List getMemberEnds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Member End' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getMemberEnds() + * @generated + */ + Property getMemberEnd(String name); + + /** + * Returns the value of the 'Navigable Owned End' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * The navigable ends that are owned by the association itself. + * + * @return the value of the 'Navigable Owned End' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAssociation_NavigableOwnedEnd() + * @model type="org.eclipse.uml2.uml.Property" resolveProxies="false" ordered="false" + * @generated + */ + List getNavigableOwnedEnds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Navigable Owned End' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getNavigableOwnedEnds() + * @generated + */ + Property getNavigableOwnedEnd(String name); + + /** + * Returns the value of the 'Owned End' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getOwningAssociation Owning Association}'. + * + * + * + * The ends that are owned by the association itself. This is an ordered association. + * The ends that are owned by the association itself. + * + * @return the value of the 'Owned End' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getAssociation_OwnedEnd() + * @see org.eclipse.uml2.uml.Property#getOwningAssociation + * @model type="org.eclipse.uml2.uml.Property" opposite="owningAssociation" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedEnds(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned End' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedEnds() + * @generated + */ + Property createOwnedEnd(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned End' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedEnds() + * @generated + */ + Property createOwnedEnd(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Owned End' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getOwnedEnds() + * @generated + */ + Property getOwnedEnd(String name); + + /** + * + * + * + * An association specializing another association has the same number of ends as the other association. + * self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size()) + * + * @model + * @generated + */ + boolean validateSpecializedEndNumber(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end. + * true + * + * @model + * @generated + */ + boolean validateSpecializedEndTypes(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only binary associations can be aggregations. + * self.memberEnd->exists(aggregation <> Aggregation::none) implies self.memberEnd->size() = 2 + * + * @model + * @generated + */ + boolean validateBinaryAssociations(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Association ends of associations with more than two ends must be owned by the association. + * if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd) + * + * @model + * @generated + */ + boolean validateAssociationEnds(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * endType is derived from the types of the member ends. + * result = self.memberEnd->collect(e | e.type) + * + * @model type="org.eclipse.uml2.uml.Type" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List endType(); + +} // Association diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AssociationClass.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AssociationClass.java new file mode 100644 index 00000000..3afce73f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/AssociationClass.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AssociationClass.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Association Class'. + * + * + * + * In the metamodel, an AssociationClass is a declaration of a semantic relationship between Classifiers, which has a set of features of its own. AssociationClass is both an Association and a Class. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getAssociationClass() + * @model + * @generated + */ +public interface AssociationClass + extends org.eclipse.uml2.uml.Class, Association { + + /** + * + * + * + * An AssociationClass cannot be defined between itself and something else. + * self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self)) + * + * @model + * @generated + */ + boolean validateCannotBeDefined(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The operation allConnections results in the set of all AssociationEnds of the Association. + * result = memberEnd->union ( self.parents ()->collect (p | p.allConnections () ) + * + * @model type="org.eclipse.uml2.uml.Property" lower="2" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allConnections(); + +} // AssociationClass diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Behavior.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Behavior.java new file mode 100644 index 00000000..00f039d3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Behavior.java @@ -0,0 +1,291 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Behavior.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Behavior'. + * + * + * + * Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution. + * + * + * + * A classifier behavior is always a definition of behavior and not an illustration. It describes the sequence of state changes an instance of a classifier may undergo in the course of its lifetime. Its precise semantics depends on the kind of classifier. For example, the classifier behavior of a collaboration represents emergent behavior of all the parts, whereas the classifier behavior of a class is just the behavior of instances of the class separated from the behaviors of any of its parts. + * + * When a behavior is associated as the method of a behavioral feature, it defines the implementation of that feature; i.e., the computation that generates the effects of the behavioral feature. + * + * + * + * As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as "invoking" the behavior, an instantiated behavior is also called a behavior "execution." A behavior may be invoked directly or its invocation may be the result of invoking the behavioral feature that specifies this behavior. A behavior can also be instantiated as an object in virtue of it being a class. The specification of a behavior can take a number of forms, as described in the subclasses of Behavior. Behavior is an abstract metaclass factoring out the commonalities of these different specification mechanisms. + * + * + * + * When a behavior is invoked, its execution receives a set of input values that are used to affect the course of execution and as a result of its execution it produces a set of output values which are returned, as specified by its parameters. The observable effects of a behavior execution may include changes of values of various objects involved in the execution, the creation and destruction of objects, generation of communications between objects, as well as an explicit set of output values. + * + * + * The concept of Behavior is extended to own ParameterSets. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Behavior#isReentrant Is Reentrant}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#getRedefinedBehaviors Redefined Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#getOwnedParameters Owned Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#getContext Context}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#getOwnedParameterSets Owned Parameter Set}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#getSpecification Specification}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior() + * @model + * @generated + */ +public interface Behavior + extends org.eclipse.uml2.uml.Class { + + /** + * Returns the value of the 'Is Reentrant' attribute. + * + * + * + * Tells whether the behavior can be invoked while it is still executing from a previous invocation. + * + * @return the value of the 'Is Reentrant' attribute. + * @see #setIsReentrant(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior_IsReentrant() + * @model required="true" ordered="false" + * @generated + */ + boolean isReentrant(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Behavior#isReentrant Is Reentrant}' attribute. + * + * + * @param value the new value of the 'Is Reentrant' attribute. + * @see #isReentrant() + * @generated + */ + void setIsReentrant(boolean value); + + /** + * Returns the value of the 'Redefined Behavior' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Behavior}. + * + * + * + * References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior. + * + * @return the value of the 'Redefined Behavior' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior_RedefinedBehavior() + * @model type="org.eclipse.uml2.uml.Behavior" ordered="false" + * @generated + */ + List getRedefinedBehaviors(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name' from the 'Redefined Behavior' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Behavior} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name', or null. + * @see #getRedefinedBehaviors() + * @generated + */ + Behavior getRedefinedBehavior(String name); + + /** + * Returns the value of the 'Owned Parameter' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Parameter}. + * + * + * + * References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution. + * + * + * + * @return the value of the 'Owned Parameter' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior_OwnedParameter() + * @model type="org.eclipse.uml2.uml.Parameter" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedParameters(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Parameter} and appends it to the 'Owned Parameter' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Parameter}. + * @see #getOwnedParameters() + * @generated + */ + Parameter createOwnedParameter(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Parameter} with the specified 'Name' from the 'Owned Parameter' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Parameter} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Parameter} with the specified 'Name', or null. + * @see #getOwnedParameters() + * @generated + */ + Parameter getOwnedParameter(String name); + + /** + * Returns the value of the 'Context' reference. + * + * + * + * The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the owner of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior. + * + * @return the value of the 'Context' reference. + * @see #setContext(BehavioredClassifier) + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior_Context() + * @model transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + BehavioredClassifier getContext(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Behavior#getContext Context}' reference. + * + * + * @param value the new value of the 'Context' reference. + * @see #getContext() + * @generated + */ + void setContext(BehavioredClassifier value); + + /** + * Returns the value of the 'Owned Parameter Set' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ParameterSet}. + * + * + * + * The ParameterSets owned by this Behavior. + * + * @return the value of the 'Owned Parameter Set' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior_OwnedParameterSet() + * @model type="org.eclipse.uml2.uml.ParameterSet" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedParameterSets(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ParameterSet} and appends it to the 'Owned Parameter Set' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ParameterSet}. + * @see #getOwnedParameterSets() + * @generated + */ + ParameterSet createOwnedParameterSet(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ParameterSet} with the specified 'Name' from the 'Owned Parameter Set' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ParameterSet} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ParameterSet} with the specified 'Name', or null. + * @see #getOwnedParameterSets() + * @generated + */ + ParameterSet getOwnedParameterSet(String name); + + /** + * Returns the value of the 'Specification' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.BehavioralFeature#getMethods Method}'. + * + * + * + * Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. If a behavior does not have a specification, it is directly associated with a classifier (i.e., it is the behavior of the classifier as a whole). + * + * @return the value of the 'Specification' reference. + * @see #setSpecification(BehavioralFeature) + * @see org.eclipse.uml2.uml.UMLPackage#getBehavior_Specification() + * @see org.eclipse.uml2.uml.BehavioralFeature#getMethods + * @model opposite="method" ordered="false" + * @generated + */ + BehavioralFeature getSpecification(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Behavior#getSpecification Specification}' reference. + * + * + * @param value the new value of the 'Specification' reference. + * @see #getSpecification() + * @generated + */ + void setSpecification(BehavioralFeature value); + + /** + * + * + * + * The parameters of the behavior must match the parameters of the implemented behavioral feature. + * true + * + * @model + * @generated + */ + boolean validateParameters(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior. + * true + * + * @model + * @generated + */ + boolean validateFeatureOfContextClassifier(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature. + * true + * + * @model + * @generated + */ + boolean validateMustRealize(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior). + * true + * + * @model + * @generated + */ + boolean validateMostOneBehaviour(DiagnosticChain diagnostics, Map context); + +} // Behavior diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehaviorExecutionSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehaviorExecutionSpecification.java new file mode 100644 index 00000000..11f63114 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehaviorExecutionSpecification.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehaviorExecutionSpecification.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Behavior Execution Specification'. + * + * + * + * BehaviorExecutionSpecification is a kind of ExecutionSpecification representing the execution of a behavior. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BehaviorExecutionSpecification#getBehavior Behavior}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getBehaviorExecutionSpecification() + * @model + * @generated + */ +public interface BehaviorExecutionSpecification + extends ExecutionSpecification { + + /** + * Returns the value of the 'Behavior' reference. + * + * + * + * Behavior whose execution is occurring. + * + * @return the value of the 'Behavior' reference. + * @see #setBehavior(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getBehaviorExecutionSpecification_Behavior() + * @model ordered="false" + * @generated + */ + Behavior getBehavior(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.BehaviorExecutionSpecification#getBehavior Behavior}' reference. + * + * + * @param value the new value of the 'Behavior' reference. + * @see #getBehavior() + * @generated + */ + void setBehavior(Behavior value); + +} // BehaviorExecutionSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java new file mode 100644 index 00000000..c7aeb51b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioralFeature.java @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehavioralFeature.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Behavioral Feature'. + * + * + * + * A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances. BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + * A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior. + * + * BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. + * + * + * A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method. + * The concept of BehavioralFeature is extended to own ParameterSets. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#getOwnedParameters Owned Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#isAbstract Is Abstract}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#getMethods Method}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#getConcurrency Concurrency}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#getRaisedExceptions Raised Exception}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#getOwnedParameterSets Owned Parameter Set}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature() + * @model + * @generated + */ +public interface BehavioralFeature + extends Namespace, Feature { + + /** + * Returns the value of the 'Owned Parameter' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Parameter}. + * + * + * + * Specifies the ordered set of formal parameters of this BehavioralFeature. + * Specifies the ordered set of formal parameters owned by this BehavioralFeature. The parameter direction can be 'in', 'inout', 'out', pr 'return' to specify input, output, or return parameters. + * + * @return the value of the 'Owned Parameter' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature_OwnedParameter() + * @model type="org.eclipse.uml2.uml.Parameter" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedParameters(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Parameter} and appends it to the 'Owned Parameter' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Parameter}. + * @see #getOwnedParameters() + * @generated + */ + Parameter createOwnedParameter(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Parameter} with the specified 'Name' from the 'Owned Parameter' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Parameter} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Parameter} with the specified 'Name', or null. + * @see #getOwnedParameters() + * @generated + */ + Parameter getOwnedParameter(String name); + + /** + * Returns the value of the 'Is Abstract' attribute. + * + * + * + * If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element. + * + * @return the value of the 'Is Abstract' attribute. + * @see #setIsAbstract(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature_IsAbstract() + * @model required="true" ordered="false" + * @generated + */ + boolean isAbstract(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.BehavioralFeature#isAbstract Is Abstract}' attribute. + * + * + * @param value the new value of the 'Is Abstract' attribute. + * @see #isAbstract() + * @generated + */ + void setIsAbstract(boolean value); + + /** + * Returns the value of the 'Method' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Behavior}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Behavior#getSpecification Specification}'. + * + * + * + * A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior). + * + * @return the value of the 'Method' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature_Method() + * @see org.eclipse.uml2.uml.Behavior#getSpecification + * @model type="org.eclipse.uml2.uml.Behavior" opposite="specification" ordered="false" + * @generated + */ + List getMethods(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name' from the 'Method' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Behavior} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name', or null. + * @see #getMethods() + * @generated + */ + Behavior getMethod(String name); + + /** + * Returns the value of the 'Concurrency' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.CallConcurrencyKind}. + * + * + * + * Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features. + * + * @return the value of the 'Concurrency' attribute. + * @see org.eclipse.uml2.uml.CallConcurrencyKind + * @see #setConcurrency(CallConcurrencyKind) + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature_Concurrency() + * @model required="true" ordered="false" + * @generated + */ + CallConcurrencyKind getConcurrency(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.BehavioralFeature#getConcurrency Concurrency}' attribute. + * + * + * @param value the new value of the 'Concurrency' attribute. + * @see org.eclipse.uml2.uml.CallConcurrencyKind + * @see #getConcurrency() + * @generated + */ + void setConcurrency(CallConcurrencyKind value); + + /** + * Returns the value of the 'Raised Exception' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Type}. + * + * + * + * References the Types representing exceptions that may be raised during an invocation of this feature. + * The signals that the behavioral feature raises as exceptions. + * + * @return the value of the 'Raised Exception' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature_RaisedException() + * @model type="org.eclipse.uml2.uml.Type" ordered="false" + * @generated + */ + List getRaisedExceptions(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Type} with the specified 'Name' from the 'Raised Exception' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Type} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Type} with the specified 'Name', or null. + * @see #getRaisedExceptions() + * @generated + */ + Type getRaisedException(String name); + + /** + * Returns the value of the 'Owned Parameter Set' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ParameterSet}. + * + * + * + * The ParameterSets owned by this BehavioralFeature. + * + * @return the value of the 'Owned Parameter Set' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioralFeature_OwnedParameterSet() + * @model type="org.eclipse.uml2.uml.ParameterSet" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedParameterSets(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ParameterSet} and appends it to the 'Owned Parameter Set' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ParameterSet}. + * @see #getOwnedParameterSets() + * @generated + */ + ParameterSet createOwnedParameterSet(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ParameterSet} with the specified 'Name' from the 'Owned Parameter Set' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ParameterSet} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ParameterSet} with the specified 'Name', or null. + * @see #getOwnedParameterSets() + * @generated + */ + ParameterSet getOwnedParameterSet(String name); + +} // BehavioralFeature diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioredClassifier.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioredClassifier.java new file mode 100644 index 00000000..cb5d40b0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BehavioredClassifier.java @@ -0,0 +1,208 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehavioredClassifier.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Behaviored Classifier'. + * + * + * + * A BehavioredClassifier may have an interface realization. + * A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BehavioredClassifier#getOwnedBehaviors Owned Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioredClassifier#getClassifierBehavior Classifier Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioredClassifier#getInterfaceRealizations Interface Realization}
  • + *
  • {@link org.eclipse.uml2.uml.BehavioredClassifier#getOwnedTriggers Owned Trigger}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioredClassifier() + * @model abstract="true" + * @generated + */ +public interface BehavioredClassifier + extends Classifier { + + /** + * Returns the value of the 'Owned Behavior' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Behavior}. + * + * + * + * References behavior specifications owned by a classifier. + * + * @return the value of the 'Owned Behavior' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioredClassifier_OwnedBehavior() + * @model type="org.eclipse.uml2.uml.Behavior" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedBehaviors(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and appends it to the 'Owned Behavior' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Behavior} to create. + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getOwnedBehaviors() + * @generated + */ + Behavior createOwnedBehavior(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and appends it to the 'Owned Behavior' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getOwnedBehaviors() + * @generated + */ + Behavior createOwnedBehavior(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name' from the 'Owned Behavior' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Behavior} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name', or null. + * @see #getOwnedBehaviors() + * @generated + */ + Behavior getOwnedBehavior(String name); + + /** + * Returns the value of the 'Classifier Behavior' reference. + * + * + * + * A behavior specification that specifies the behavior of the classifier itself. + * + * @return the value of the 'Classifier Behavior' reference. + * @see #setClassifierBehavior(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioredClassifier_ClassifierBehavior() + * @model resolveProxies="false" ordered="false" + * @generated + */ + Behavior getClassifierBehavior(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.BehavioredClassifier#getClassifierBehavior Classifier Behavior}' reference. + * + * + * @param value the new value of the 'Classifier Behavior' reference. + * @see #getClassifierBehavior() + * @generated + */ + void setClassifierBehavior(Behavior value); + + /** + * Returns the value of the 'Interface Realization' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InterfaceRealization}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InterfaceRealization#getImplementingClassifier Implementing Classifier}'. + * + *

+ * If the meaning of the 'Interface Realization' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Interface Realization' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioredClassifier_InterfaceRealization() + * @see org.eclipse.uml2.uml.InterfaceRealization#getImplementingClassifier + * @model type="org.eclipse.uml2.uml.InterfaceRealization" opposite="implementingClassifier" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getInterfaceRealizations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InterfaceRealization} and appends it to the 'Interface Realization' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.InterfaceRealization}. + * @see #getInterfaceRealizations() + * @generated + */ + InterfaceRealization createInterfaceRealization(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InterfaceRealization} with the specified 'Name' from the 'Interface Realization' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InterfaceRealization} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InterfaceRealization} with the specified 'Name', or null. + * @see #getInterfaceRealizations() + * @generated + */ + InterfaceRealization getInterfaceRealization(String name); + + /** + * Returns the value of the 'Owned Trigger' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Trigger}. + * + * + * + * References Trigger descriptions owned by a Classifier. + * + * @return the value of the 'Owned Trigger' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getBehavioredClassifier_OwnedTrigger() + * @model type="org.eclipse.uml2.uml.Trigger" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedTriggers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Trigger} and appends it to the 'Owned Trigger' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Trigger}. + * @see #getOwnedTriggers() + * @generated + */ + Trigger createOwnedTrigger(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name' from the 'Owned Trigger' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Trigger} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name', or null. + * @see #getOwnedTriggers() + * @generated + */ + Trigger getOwnedTrigger(String name); + + /** + * + * + * + * If a behavior is classifier behavior, it does not have a specification. + * self.classifierBehavior.notEmpty() implies self.specification.isEmpty() + * + * @model + * @generated + */ + boolean validateClassBehavior(DiagnosticChain diagnostics, Map context); + +} // BehavioredClassifier diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BroadcastSignalAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BroadcastSignalAction.java new file mode 100644 index 00000000..ead5af7b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/BroadcastSignalAction.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BroadcastSignalAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Broadcast Signal Action'. + * + * + * + * BroadcastSignalAction is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BroadcastSignalAction#getSignal Signal}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getBroadcastSignalAction() + * @model + * @generated + */ +public interface BroadcastSignalAction + extends InvocationAction { + + /** + * Returns the value of the 'Signal' reference. + * + * + * + * The specification of signal object transmitted to the target objects. + * + * @return the value of the 'Signal' reference. + * @see #setSignal(Signal) + * @see org.eclipse.uml2.uml.UMLPackage#getBroadcastSignalAction_Signal() + * @model required="true" ordered="false" + * @generated + */ + Signal getSignal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.BroadcastSignalAction#getSignal Signal}' reference. + * + * + * @param value the new value of the 'Signal' reference. + * @see #getSignal() + * @generated + */ + void setSignal(Signal value); + + /** + * + * + * + * The number and order of argument pins must be the same as the number and order of attributes in the signal. + * true + * + * @model + * @generated + */ + boolean validateNumberAndOrder(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + * true + * + * @model + * @generated + */ + boolean validateTypeOrderingMultiplicity(DiagnosticChain diagnostics, + Map context); + +} // BroadcastSignalAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallAction.java new file mode 100644 index 00000000..8c1c0dea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallAction.java @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Call Action'. + * + * + * + * CallAction is an abstract class for actions that invoke behavior and receive return values. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallAction#isSynchronous Is Synchronous}
  • + *
  • {@link org.eclipse.uml2.uml.CallAction#getResults Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCallAction() + * @model abstract="true" + * @generated + */ +public interface CallAction + extends InvocationAction { + + /** + * Returns the value of the 'Is Synchronous' attribute. + * The default value is "true". + * + * + * + * If true, the call is synchronous and the caller waits for completion of the invoked behavior. + * + * If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values. + * + * + * + * @return the value of the 'Is Synchronous' attribute. + * @see #setIsSynchronous(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getCallAction_IsSynchronous() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isSynchronous(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CallAction#isSynchronous Is Synchronous}' attribute. + * + * + * @param value the new value of the 'Is Synchronous' attribute. + * @see #isSynchronous() + * @generated + */ + void setIsSynchronous(boolean value); + + /** + * Returns the value of the 'Result' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * A list of output pins where the results of performing the invocation are placed. + * + * @return the value of the 'Result' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getCallAction_Result() + * @model type="org.eclipse.uml2.uml.OutputPin" containment="true" resolveProxies="false" + * @generated + */ + List getResults(); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and appends it to the 'Result' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResults() + * @generated + */ + OutputPin createResult(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Result' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getResults() + * @generated + */ + OutputPin getResult(String name); + + /** + * + * + * + * Only synchronous call actions can have result pins. + * true + * + * @model + * @generated + */ + boolean validateSynchronousCall(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order. + * true + * + * @model + * @generated + */ + boolean validateNumberAndOrder(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature. + * true + * + * @model + * @generated + */ + boolean validateTypeOrderingMultiplicity(DiagnosticChain diagnostics, + Map context); + +} // CallAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallBehaviorAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallBehaviorAction.java new file mode 100644 index 00000000..d88f9ec3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallBehaviorAction.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallBehaviorAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Call Behavior Action'. + * + * + * + * CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallBehaviorAction#getBehavior Behavior}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCallBehaviorAction() + * @model + * @generated + */ +public interface CallBehaviorAction + extends CallAction { + + /** + * Returns the value of the 'Behavior' reference. + * + * + * + * The invoked behavior. It must be capable of accepting and returning control. + * + * @return the value of the 'Behavior' reference. + * @see #setBehavior(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getCallBehaviorAction_Behavior() + * @model required="true" ordered="false" + * @generated + */ + Behavior getBehavior(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CallBehaviorAction#getBehavior Behavior}' reference. + * + * + * @param value the new value of the 'Behavior' reference. + * @see #getBehavior() + * @generated + */ + void setBehavior(Behavior value); + + /** + * + * + * + * The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal. + * true + * + * @model + * @generated + */ + boolean validateArgumentPinEqualParameter(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal. + * true + * + * @model + * @generated + */ + boolean validateResultPinEqualParameter(DiagnosticChain diagnostics, + Map context); + +} // CallBehaviorAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallConcurrencyKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallConcurrencyKind.java new file mode 100644 index 00000000..87114d7d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallConcurrencyKind.java @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallConcurrencyKind.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Call Concurrency Kind', + * and utility methods for working with them. + * + * + * CallConcurrencyKind is an enumeration with the following literals: + * + * ? sequential No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once. + * + * ? guarded Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. + * + * ? concurrent Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. + * + * + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getCallConcurrencyKind() + * @model + * @generated + */ +public final class CallConcurrencyKind + extends AbstractEnumerator { + + /** + * The 'Sequential' literal value. + * + * + * + * No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once. + * + * @see #SEQUENTIAL_LITERAL + * @model name="sequential" + * @generated + * @ordered + */ + public static final int SEQUENTIAL = 0; + + /** + * The 'Guarded' literal value. + * + * + * + * Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. + * + * @see #GUARDED_LITERAL + * @model name="guarded" + * @generated + * @ordered + */ + public static final int GUARDED = 1; + + /** + * The 'Concurrent' literal value. + * + * + * + * Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. + * + * @see #CONCURRENT_LITERAL + * @model name="concurrent" + * @generated + * @ordered + */ + public static final int CONCURRENT = 2; + + /** + * The 'Sequential' literal object. + * + * + * @see #SEQUENTIAL + * @generated + * @ordered + */ + public static final CallConcurrencyKind SEQUENTIAL_LITERAL = new CallConcurrencyKind( + SEQUENTIAL, "sequential", "sequential"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Guarded' literal object. + * + * + * @see #GUARDED + * @generated + * @ordered + */ + public static final CallConcurrencyKind GUARDED_LITERAL = new CallConcurrencyKind( + GUARDED, "guarded", "guarded"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Concurrent' literal object. + * + * + * @see #CONCURRENT + * @generated + * @ordered + */ + public static final CallConcurrencyKind CONCURRENT_LITERAL = new CallConcurrencyKind( + CONCURRENT, "concurrent", "concurrent"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Call Concurrency Kind' enumerators. + * + * + * @generated + */ + private static final CallConcurrencyKind[] VALUES_ARRAY = new CallConcurrencyKind[]{ + SEQUENTIAL_LITERAL, GUARDED_LITERAL, CONCURRENT_LITERAL,}; + + /** + * A public read-only list of all the 'Call Concurrency Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Call Concurrency Kind' literal with the specified literal value. + * + * + * @generated + */ + public static CallConcurrencyKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + CallConcurrencyKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Call Concurrency Kind' literal with the specified name. + * + * + * @generated + */ + public static CallConcurrencyKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + CallConcurrencyKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Call Concurrency Kind' literal with the specified integer value. + * + * + * @generated + */ + public static CallConcurrencyKind get(int value) { + switch (value) { + case SEQUENTIAL : + return SEQUENTIAL_LITERAL; + case GUARDED : + return GUARDED_LITERAL; + case CONCURRENT : + return CONCURRENT_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private CallConcurrencyKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //CallConcurrencyKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallEvent.java new file mode 100644 index 00000000..a7d23def --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallEvent.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallEvent.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Call Event'. + * + * + * + * A call event represents the reception of a request to invoke a specific operation. A call event is distinct from the call action that caused it. A call event may cause the invocation of a behavior that is the method of the operation referenced by the call request, if that operation is owned or inherited by the classifier that specified the receiver object. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallEvent#getOperation Operation}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCallEvent() + * @model + * @generated + */ +public interface CallEvent + extends MessageEvent { + + /** + * Returns the value of the 'Operation' reference. + * + * + * + * Designates the operation whose invocation raised the call event. + * + * @return the value of the 'Operation' reference. + * @see #setOperation(Operation) + * @see org.eclipse.uml2.uml.UMLPackage#getCallEvent_Operation() + * @model required="true" ordered="false" + * @generated + */ + Operation getOperation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CallEvent#getOperation Operation}' reference. + * + * + * @param value the new value of the 'Operation' reference. + * @see #getOperation() + * @generated + */ + void setOperation(Operation value); + +} // CallEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallOperationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallOperationAction.java new file mode 100644 index 00000000..bf01628b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CallOperationAction.java @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallOperationAction.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Call Operation Action'. + * + * + * + * CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallOperationAction#getOperation Operation}
  • + *
  • {@link org.eclipse.uml2.uml.CallOperationAction#getTarget Target}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCallOperationAction() + * @model + * @generated + */ +public interface CallOperationAction + extends CallAction { + + /** + * Returns the value of the 'Operation' reference. + * + * + * + * The operation to be invoked by the action execution. + * + * @return the value of the 'Operation' reference. + * @see #setOperation(Operation) + * @see org.eclipse.uml2.uml.UMLPackage#getCallOperationAction_Operation() + * @model required="true" ordered="false" + * @generated + */ + Operation getOperation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CallOperationAction#getOperation Operation}' reference. + * + * + * @param value the new value of the 'Operation' reference. + * @see #getOperation() + * @generated + */ + void setOperation(Operation value); + + /** + * Returns the value of the 'Target' containment reference. + * + * + * + * The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. + * + * @return the value of the 'Target' containment reference. + * @see #setTarget(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getCallOperationAction_Target() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CallOperationAction#getTarget Target}' containment reference. + * + * + * @param value the new value of the 'Target' containment reference. + * @see #getTarget() + * @generated + */ + void setTarget(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(); + + /** + * + * + * + * The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal. + * true + * + * @model + * @generated + */ + boolean validateArgumentPinEqualParameter(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal. + * true + * + * @model + * @generated + */ + boolean validateResultPinEqualParameter(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The type of the target pin must be the same as the type that owns the operation. + * true + * + * @model + * @generated + */ + boolean validateTypeTargetPin(DiagnosticChain diagnostics, Map context); + +} // CallOperationAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CentralBufferNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CentralBufferNode.java new file mode 100644 index 00000000..f34c4cde --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CentralBufferNode.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CentralBufferNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Central Buffer Node'. + * + * + * + * A central buffer node accepts tokens from upstream objects nodes and passes them along to downstream object nodes. They act as a buffer for multiple in flows and out flows from other object nodes. They do not connect directly to actions. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getCentralBufferNode() + * @model + * @generated + */ +public interface CentralBufferNode + extends ObjectNode { +} // CentralBufferNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ChangeEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ChangeEvent.java new file mode 100644 index 00000000..c4f794e8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ChangeEvent.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ChangeEvent.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Change Event'. + * + * + * + * A change event occurs when a Boolean-valued expression becomes true, for example, as a result of a change in the value held in a slot corresponding to an attribute, or a change in the value referenced by a link corresponding to an association. A change event is raised implicitly and is not the result of an explicit action. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ChangeEvent#getChangeExpression Change Expression}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getChangeEvent() + * @model + * @generated + */ +public interface ChangeEvent + extends Event { + + /** + * Returns the value of the 'Change Expression' containment reference. + * + * + * + * A Boolean-valued expression that will result in a change event whenever its value changes from false to true. + * + * @return the value of the 'Change Expression' containment reference. + * @see #setChangeExpression(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getChangeEvent_ChangeExpression() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getChangeExpression(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ChangeEvent#getChangeExpression Change Expression}' containment reference. + * + * + * @param value the new value of the 'Change Expression' containment reference. + * @see #getChangeExpression() + * @generated + */ + void setChangeExpression(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Change Expression' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getChangeExpression() + * @generated + */ + ValueSpecification createChangeExpression(EClass eClass); + +} // ChangeEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java new file mode 100644 index 00000000..66715635 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Class.java @@ -0,0 +1,255 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Class.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Class'. + * + * + * + * Class is a kind of classifier whose features are attributes and operations. Attributes of a class are represented by instances of Property that are owned by the class. Some of these attributes may represent the navigable ends of binary associations. + * A class may be designated as active, i.e., each of its instances having its own thread of control, or passive, i.e., each of its instance executing within the context of some other object. A class may also specify which signals the instances of this class handle. + * Extends the metaclass Class with the capability to have an internal structure and ports. + * Class has derived association that indicates how it may be extended through one or more stereotypes. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Class#getOwnedOperations Owned Operation}
  • + *
  • {@link org.eclipse.uml2.uml.Class#getNestedClassifiers Nested Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.Class#getSuperClasses Super Class}
  • + *
  • {@link org.eclipse.uml2.uml.Class#isActive Is Active}
  • + *
  • {@link org.eclipse.uml2.uml.Class#getOwnedReceptions Owned Reception}
  • + *
  • {@link org.eclipse.uml2.uml.Class#getExtensions Extension}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getClass_() + * @model + * @generated + */ +public interface Class + extends EncapsulatedClassifier, BehavioredClassifier { + + /** + * Returns the value of the 'Owned Operation' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Operation}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Operation#getClass_ Class }'. + * + * + * + * The operations owned by the class. + * + * @return the value of the 'Owned Operation' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClass_OwnedOperation() + * @see org.eclipse.uml2.uml.Operation#getClass_ + * @model type="org.eclipse.uml2.uml.Operation" opposite="class_" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedOperations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Operation} and appends it to the 'Owned Operation' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Operation}. + * @see #getOwnedOperations() + * @generated + */ + Operation createOwnedOperation(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified 'Name' from the 'Owned Operation' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Operation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Operation} with the specified 'Name', or null. + * @see #getOwnedOperations() + * @generated + */ + Operation getOwnedOperation(String name); + + /** + * Returns the value of the 'Nested Classifier' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * References all the Classifiers that are defined (nested) within the Class. + * + * @return the value of the 'Nested Classifier' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClass_NestedClassifier() + * @model type="org.eclipse.uml2.uml.Classifier" containment="true" resolveProxies="false" + * @generated + */ + List getNestedClassifiers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Classifier} and appends it to the 'Nested Classifier' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to create. + * @return The new {@link org.eclipse.uml2.uml.Classifier}. + * @see #getNestedClassifiers() + * @generated + */ + Classifier createNestedClassifier(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Nested Classifier' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getNestedClassifiers() + * @generated + */ + Classifier getNestedClassifier(String name); + + /** + * Returns the value of the 'Super Class' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Class}. + * + * + * + * This gives the superclasses of a class. + * + * @return the value of the 'Super Class' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClass_SuperClass() + * @model type="org.eclipse.uml2.uml.Class" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + List getSuperClasses(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Class} with the specified 'Name' from the 'Super Class' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Class} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Class} with the specified 'Name', or null. + * @see #getSuperClasses() + * @generated + */ + Class getSuperClass(String name); + + /** + * Returns the value of the 'Is Active' attribute. + * + * + * + * Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class. + * + * @return the value of the 'Is Active' attribute. + * @see #setIsActive(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getClass_IsActive() + * @model required="true" ordered="false" + * @generated + */ + boolean isActive(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Class#isActive Is Active}' attribute. + * + * + * @param value the new value of the 'Is Active' attribute. + * @see #isActive() + * @generated + */ + void setIsActive(boolean value); + + /** + * Returns the value of the 'Owned Reception' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Reception}. + * + * + * + * Receptions that objects of this class are willing to accept. + * + * @return the value of the 'Owned Reception' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClass_OwnedReception() + * @model type="org.eclipse.uml2.uml.Reception" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedReceptions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Reception} and appends it to the 'Owned Reception' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Reception}. + * @see #getOwnedReceptions() + * @generated + */ + Reception createOwnedReception(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Reception} with the specified 'Name' from the 'Owned Reception' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Reception} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Reception} with the specified 'Name', or null. + * @see #getOwnedReceptions() + * @generated + */ + Reception getOwnedReception(String name); + + /** + * Returns the value of the 'Extension' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Extension}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Extension#getMetaclass Metaclass}'. + * + * + * + * References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class. + * + * @return the value of the 'Extension' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClass_Extension() + * @see org.eclipse.uml2.uml.Extension#getMetaclass + * @model type="org.eclipse.uml2.uml.Extension" opposite="metaclass" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getExtensions(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Extension} with the specified 'Name' from the 'Extension' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Extension} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Extension} with the specified 'Name', or null. + * @see #getExtensions() + * @generated + */ + Extension getExtension(String name); + + /** + * + * + * + * A passive class may not own receptions. + * not self.isActive implies self.ownedReception.isEmpty() + * + * @model + * @generated + */ + boolean validatePassiveClass(DiagnosticChain diagnostics, Map context); + +} // Class diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java new file mode 100644 index 00000000..133f0094 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Classifier.java @@ -0,0 +1,666 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Classifier.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Classifier'. + * + * + * + * A classifier is a type. It can specify a generalization hierarchy by referencing its general classifiers. A classifier is also a namespace whose members can include features. Classifier is an abstract metaclass. + * Extends a classifier with the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a UseCase. + * Classifier is extended with the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier. + * A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. + * + * A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers. + * + * A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. + * + * + * A classifier can be parameterized, exposed as a formal template parameter, and specified as an actual parameter in a binding of a template. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Classifier#isAbstract Is Abstract}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getGeneralizations Generalization}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getPowertypeExtents Powertype Extent}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getInheritedMembers Inherited Member}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getRedefinedClassifiers Redefined Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getGenerals General}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getOwnedUseCases Owned Use Case}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getUseCases Use Case}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getSubstitutions Substitution}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getRepresentation Representation}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getCollaborationUses Collaboration Use}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getOwnedSignature Owned Signature}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier() + * @model abstract="true" + * @generated + */ +public interface Classifier + extends Namespace, RedefinableElement, Type, TemplateableElement { + + /** + * Returns the value of the 'Is Abstract' attribute. + * The default value is "false". + * + * + * + * If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. + * + * + * + * @return the value of the 'Is Abstract' attribute. + * @see #setIsAbstract(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_IsAbstract() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isAbstract(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Classifier#isAbstract Is Abstract}' attribute. + * + * + * @param value the new value of the 'Is Abstract' attribute. + * @see #isAbstract() + * @generated + */ + void setIsAbstract(boolean value); + + /** + * Returns the value of the 'Generalization' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Generalization}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Generalization#getSpecific Specific}'. + * + * + * + * Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy. + * + * @return the value of the 'Generalization' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Generalization() + * @see org.eclipse.uml2.uml.Generalization#getSpecific + * @model type="org.eclipse.uml2.uml.Generalization" opposite="specific" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getGeneralizations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Generalization} and appends it to the 'Generalization' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Generalization}. + * @see #getGeneralizations() + * @generated + */ + Generalization createGeneralization(); + + /** + * Returns the value of the 'Powertype Extent' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.GeneralizationSet}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.GeneralizationSet#getPowertype Powertype}'. + * + * + * + * Designates the GeneralizationSet of which the associated Classifier is a power type. + * + * @return the value of the 'Powertype Extent' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_PowertypeExtent() + * @see org.eclipse.uml2.uml.GeneralizationSet#getPowertype + * @model type="org.eclipse.uml2.uml.GeneralizationSet" opposite="powertype" ordered="false" + * @generated + */ + List getPowertypeExtents(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name' from the 'Powertype Extent' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralizationSet} to retrieve. + * @return The {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name', or null. + * @see #getPowertypeExtents() + * @generated + */ + GeneralizationSet getPowertypeExtent(String name); + + /** + * Returns the value of the 'Feature' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Feature}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers Featuring Classifier}'. + * + * + * + * Redefines the corresponding association in Abstractions. Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features. + * Specifies each feature defined in the classifier. + * + * @return the value of the 'Feature' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Feature() + * @see org.eclipse.uml2.uml.Feature#getFeaturingClassifiers + * @model type="org.eclipse.uml2.uml.Feature" opposite="featuringClassifier" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getFeatures(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Feature} with the specified 'Name' from the 'Feature' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Feature} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Feature} with the specified 'Name', or null. + * @see #getFeatures() + * @generated + */ + Feature getFeature(String name); + + /** + * Returns the value of the 'Inherited Member' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * Specifies all elements inherited by this classifier from the general classifiers. + * + * @return the value of the 'Inherited Member' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_InheritedMember() + * @model type="org.eclipse.uml2.uml.NamedElement" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + List getInheritedMembers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Inherited Member' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getInheritedMembers() + * @generated + */ + NamedElement getInheritedMember(String name); + + /** + * Returns the value of the 'Redefined Classifier' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * References the Classifiers that are redefined by this Classifier. + * + * @return the value of the 'Redefined Classifier' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_RedefinedClassifier() + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * @generated + */ + List getRedefinedClassifiers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Redefined Classifier' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getRedefinedClassifiers() + * @generated + */ + Classifier getRedefinedClassifier(String name); + + /** + * Returns the value of the 'General' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * References the general classifier in the Generalization relationship. + * Specifies the general Classifiers for this Classifier. + * + * @return the value of the 'General' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_General() + * @model type="org.eclipse.uml2.uml.Classifier" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + List getGenerals(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'General' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getGenerals() + * @generated + */ + Classifier getGeneral(String name); + + /** + * Returns the value of the 'Owned Use Case' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.UseCase}. + * + * + * + * References the use cases owned by this classifier. + * + * @return the value of the 'Owned Use Case' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_OwnedUseCase() + * @model type="org.eclipse.uml2.uml.UseCase" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedUseCases(); + + /** + * Creates a {@link org.eclipse.uml2.uml.UseCase} and appends it to the 'Owned Use Case' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.UseCase}. + * @see #getOwnedUseCases() + * @generated + */ + UseCase createOwnedUseCase(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name' from the 'Owned Use Case' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.UseCase} to retrieve. + * @return The {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name', or null. + * @see #getOwnedUseCases() + * @generated + */ + UseCase getOwnedUseCase(String name); + + /** + * Returns the value of the 'Use Case' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.UseCase}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.UseCase#getSubjects Subject}'. + * + * + * + * The set of use cases for which this Classifier is the subject. + * + * @return the value of the 'Use Case' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_UseCase() + * @see org.eclipse.uml2.uml.UseCase#getSubjects + * @model type="org.eclipse.uml2.uml.UseCase" opposite="subject" ordered="false" + * @generated + */ + List getUseCases(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name' from the 'Use Case' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.UseCase} to retrieve. + * @return The {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name', or null. + * @see #getUseCases() + * @generated + */ + UseCase getUseCase(String name); + + /** + * Returns the value of the 'Substitution' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Substitution}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier Substituting Classifier}'. + * + * + * + * References the substitutions that are owned by this Classifier. + * + * @return the value of the 'Substitution' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Substitution() + * @see org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier + * @model type="org.eclipse.uml2.uml.Substitution" opposite="substitutingClassifier" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getSubstitutions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Substitution} and appends it to the 'Substitution' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Substitution}. + * @see #getSubstitutions() + * @generated + */ + Substitution createSubstitution(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Substitution} with the specified 'Name' from the 'Substitution' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Substitution} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Substitution} with the specified 'Name', or null. + * @see #getSubstitutions() + * @generated + */ + Substitution getSubstitution(String name); + + /** + * Returns the value of the 'Attribute' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier. + * + * @return the value of the 'Attribute' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Attribute() + * @model type="org.eclipse.uml2.uml.Property" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getAttributes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Attribute' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getAttributes() + * @generated + */ + Property getAttribute(String name); + + /** + * Returns the value of the 'Representation' reference. + * + * + * + * References a collaboration use which indicates the collaboration that represents this classifier. + * + * @return the value of the 'Representation' reference. + * @see #setRepresentation(CollaborationUse) + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Representation() + * @model resolveProxies="false" ordered="false" + * @generated + */ + CollaborationUse getRepresentation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Classifier#getRepresentation Representation}' reference. + * + * + * @param value the new value of the 'Representation' reference. + * @see #getRepresentation() + * @generated + */ + void setRepresentation(CollaborationUse value); + + /** + * Returns the value of the 'Collaboration Use' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.CollaborationUse}. + * + * + * + * References the collaboration uses owned by the classifier. + * + * @return the value of the 'Collaboration Use' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_CollaborationUse() + * @model type="org.eclipse.uml2.uml.CollaborationUse" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getCollaborationUses(); + + /** + * Creates a {@link org.eclipse.uml2.uml.CollaborationUse} and appends it to the 'Collaboration Use' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.CollaborationUse}. + * @see #getCollaborationUses() + * @generated + */ + CollaborationUse createCollaborationUse(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.CollaborationUse} with the specified 'Name' from the 'Collaboration Use' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.CollaborationUse} to retrieve. + * @return The {@link org.eclipse.uml2.uml.CollaborationUse} with the specified 'Name', or null. + * @see #getCollaborationUses() + * @generated + */ + CollaborationUse getCollaborationUse(String name); + + /** + * Returns the value of the 'Owned Signature' containment reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getClassifier Classifier}'. + * + * + * + * The optional template signature specifying the formal template parameters. + * + * @return the value of the 'Owned Signature' containment reference. + * @see #setOwnedSignature(RedefinableTemplateSignature) + * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_OwnedSignature() + * @see org.eclipse.uml2.uml.RedefinableTemplateSignature#getClassifier + * @model opposite="classifier" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + RedefinableTemplateSignature getOwnedSignature(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Classifier#getOwnedSignature Owned Signature}' containment reference. + * + * + * @param value the new value of the 'Owned Signature' containment reference. + * @see #getOwnedSignature() + * @generated + */ + void setOwnedSignature(RedefinableTemplateSignature value); + + /** + * Creates a {@link org.eclipse.uml2.uml.RedefinableTemplateSignature} and sets the 'Owned Signature' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.RedefinableTemplateSignature}. + * @see #getOwnedSignature() + * @generated + */ + RedefinableTemplateSignature createOwnedSignature(); + + /** + * + * + * + * Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + * not self.allParents()->includes(self) + * + * @model + * @generated + */ + boolean validateNoCyclesInGeneralization(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A classifier may only specialize classifiers of a valid type. + * self.parents()->forAll(c | self.maySpecializeType(c)) + * + * @model + * @generated + */ + boolean validateSpecializeType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + * not self.allParents()->includes(self) + * + * @model + * @generated + */ + boolean validateGeneralizationHierarchies(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A classifier may only specialize classifiers of a valid type. + * self.parents()->forAll(c | self.maySpecializeType(c)) + * + * @model + * @generated + */ + boolean validateSpecialize(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses. + * true + * + * @model + * @generated + */ + boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + * result = self.oclIsKindOf(c.oclType) + * + * @model required="true" ordered="false" cRequired="true" cOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean maySpecializeType(Classifier c); + + /** + * + * + * + * The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. + * result = member->select(oclIsKindOf(Feature)) + * + * @model type="org.eclipse.uml2.uml.Feature" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allFeatures(); + + /** + * + * + * + * The query parents() gives all of the immediate ancestors of a generalized Classifier. + * result = generalization.general + * + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List parents(); + + /** + * + * + * + * The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. + * c.allParents()->includes(self) + * result = member->select(m | c.hasVisibilityOf(m)) + * + * @model type="org.eclipse.uml2.uml.NamedElement" ordered="false" cRequired="true" cOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List inheritableMembers(Classifier c); + + /** + * + * + * + * The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. + * self.allParents()->collect(c | c.member)->includes(n) + * result = if (self.inheritedMember->includes(n)) then (n.visibility <> #private) else true + * + * @model required="true" ordered="false" nRequired="true" nOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean hasVisibilityOf(NamedElement n); + + /** + * + * + * + * The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. + * result = (self=other) or (self.allParents()->includes(other)) + * + * @model required="true" ordered="false" otherRequired="true" otherOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean conformsTo(Classifier other); + + /** + * + * + * + * The inherit operation is overridden to exclude redefined properties. + * The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. + * result = inhs + * + * @model type="org.eclipse.uml2.uml.NamedElement" ordered="false" inhsType="org.eclipse.uml2.uml.NamedElement" inhsMany="true" inhsOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List inherit(List inhs); + + /** + * + * + * + * The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + * result = self.oclIsKindOf(c.oclType) + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean maySpecializeType(); + + /** + * + * + * + * The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. + * result = self.parents()->union(self.parents()->collect(p | p.allParents()) + * + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allParents(); + +} // Classifier diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClassifierTemplateParameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClassifierTemplateParameter.java new file mode 100644 index 00000000..54f617c6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClassifierTemplateParameter.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassifierTemplateParameter.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Classifier Template Parameter'. + * + * + * + * ClassifierTemplateParameter is a template parameter where the parametered element is a Classifier in its capacity of being a kind of ParameterableElement. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ClassifierTemplateParameter#isAllowSubstitutable Allow Substitutable}
  • + *
  • {@link org.eclipse.uml2.uml.ClassifierTemplateParameter#getDefaultClassifier Default Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.ClassifierTemplateParameter#getConstrainingClassifier Constraining Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getClassifierTemplateParameter() + * @model + * @generated + */ +public interface ClassifierTemplateParameter + extends TemplateParameter { + + /** + * Returns the value of the 'Allow Substitutable' attribute. + * The default value is "true". + * + * + * + * Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter. + * + * @return the value of the 'Allow Substitutable' attribute. + * @see #setAllowSubstitutable(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getClassifierTemplateParameter_AllowSubstitutable() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isAllowSubstitutable(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter#isAllowSubstitutable Allow Substitutable}' attribute. + * + * + * @param value the new value of the 'Allow Substitutable' attribute. + * @see #isAllowSubstitutable() + * @generated + */ + void setAllowSubstitutable(boolean value); + + /** + * Returns the value of the 'Default Classifier' reference. + * + * + * + * The classifier that is used by default if no argument is provided during template binding. If this property is empty, then there is no default. + * + * @return the value of the 'Default Classifier' reference. + * @see #setDefaultClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getClassifierTemplateParameter_DefaultClassifier() + * @model ordered="false" + * @generated + */ + Classifier getDefaultClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter#getDefaultClassifier Default Classifier}' reference. + * + * + * @param value the new value of the 'Default Classifier' reference. + * @see #getDefaultClassifier() + * @generated + */ + void setDefaultClassifier(Classifier value); + + /** + * Returns the value of the 'Constraining Classifier' reference. + * + * + * + * The classifier that constrains the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted, otherwise it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument. + * + * @return the value of the 'Constraining Classifier' reference. + * @see #setConstrainingClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getClassifierTemplateParameter_ConstrainingClassifier() + * @model ordered="false" + * @generated + */ + Classifier getConstrainingClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter#getConstrainingClassifier Constraining Classifier}' reference. + * + * + * @param value the new value of the 'Constraining Classifier' reference. + * @see #getConstrainingClassifier() + * @generated + */ + void setConstrainingClassifier(Classifier value); + + /** + * + * + * + * If "allowSubstitutable" is true, then there must be a constrainingClassifier. + * allowSubstitutable implies constrainingClassifier->notEmpty() + * + * @model + * @generated + */ + boolean validateConstrainingClassifier(DiagnosticChain diagnostics, + Map context); + +} // ClassifierTemplateParameter diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Clause.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Clause.java new file mode 100644 index 00000000..4ecd3afe --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Clause.java @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Clause.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Clause'. + * + * + * + * A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Clause#getTests Test}
  • + *
  • {@link org.eclipse.uml2.uml.Clause#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.Clause#getPredecessorClauses Predecessor Clause}
  • + *
  • {@link org.eclipse.uml2.uml.Clause#getSuccessorClauses Successor Clause}
  • + *
  • {@link org.eclipse.uml2.uml.Clause#getDecider Decider}
  • + *
  • {@link org.eclipse.uml2.uml.Clause#getBodyOutputs Body Output}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getClause() + * @model + * @generated + */ +public interface Clause + extends Element { + + /** + * Returns the value of the 'Test' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExecutableNode}. + * + * + * + * A nested activity fragment with a designated output pin that specifies the result of the test. + * + * @return the value of the 'Test' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClause_Test() + * @model type="org.eclipse.uml2.uml.ExecutableNode" ordered="false" + * @generated + */ + List getTests(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name' from the 'Test' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExecutableNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name', or null. + * @see #getTests() + * @generated + */ + ExecutableNode getTest(String name); + + /** + * Returns the value of the 'Body' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExecutableNode}. + * + * + * + * A nested activity fragment that is executed if the test evaluates to true and the clause is chosen over any concurrent clauses that also evaluate to true. + * + * @return the value of the 'Body' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClause_Body() + * @model type="org.eclipse.uml2.uml.ExecutableNode" ordered="false" + * @generated + */ + List getBodies(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name' from the 'Body' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExecutableNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name', or null. + * @see #getBodies() + * @generated + */ + ExecutableNode getBody(String name); + + /** + * Returns the value of the 'Predecessor Clause' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Clause}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Clause#getSuccessorClauses Successor Clause}'. + * + * + * + * A set of clauses whose tests must all evaluate false before the current clause can be tested. + * + * @return the value of the 'Predecessor Clause' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClause_PredecessorClause() + * @see org.eclipse.uml2.uml.Clause#getSuccessorClauses + * @model type="org.eclipse.uml2.uml.Clause" opposite="successorClause" ordered="false" + * @generated + */ + List getPredecessorClauses(); + + /** + * Returns the value of the 'Successor Clause' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Clause}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Clause#getPredecessorClauses Predecessor Clause}'. + * + * + * + * A set of clauses which may not be tested unless the current clause tests false. + * + * @return the value of the 'Successor Clause' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClause_SuccessorClause() + * @see org.eclipse.uml2.uml.Clause#getPredecessorClauses + * @model type="org.eclipse.uml2.uml.Clause" opposite="predecessorClause" ordered="false" + * @generated + */ + List getSuccessorClauses(); + + /** + * Returns the value of the 'Decider' reference. + * + * + * + * An output pin within the test fragment the value of which is examined after execution of the test to determine whether the body should be executed. + * + * @return the value of the 'Decider' reference. + * @see #setDecider(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getClause_Decider() + * @model required="true" ordered="false" + * @generated + */ + OutputPin getDecider(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Clause#getDecider Decider}' reference. + * + * + * @param value the new value of the 'Decider' reference. + * @see #getDecider() + * @generated + */ + void setDecider(OutputPin value); + + /** + * Returns the value of the 'Body Output' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node or conditional node after execution of the clause body. + * + * @return the value of the 'Body Output' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getClause_BodyOutput() + * @model type="org.eclipse.uml2.uml.OutputPin" ordered="false" + * @generated + */ + List getBodyOutputs(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Body Output' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getBodyOutputs() + * @generated + */ + OutputPin getBodyOutput(String name); + + /** + * + * + * + * The decider output pin must be for the test body or a node contained by the test body as a structured node. + * true + * + * @model + * @generated + */ + boolean validateDeciderOutput(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The bodyOutput pins are output pins on actions in the body of the clause. + * true + * + * @model + * @generated + */ + boolean validateBodyOutput(DiagnosticChain diagnostics, Map context); + +} // Clause diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearAssociationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearAssociationAction.java new file mode 100644 index 00000000..988550d7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearAssociationAction.java @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearAssociationAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Clear Association Action'. + * + * + * + * This action destroys all links of an association that have a particular object at one end. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ClearAssociationAction#getObject Object}
  • + *
  • {@link org.eclipse.uml2.uml.ClearAssociationAction#getAssociation Association}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getClearAssociationAction() + * @model + * @generated + */ +public interface ClearAssociationAction + extends Action { + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * Gives the input pin from which is obtained the object whose participation in the association is to be cleared. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getClearAssociationAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ClearAssociationAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * Returns the value of the 'Association' reference. + * + * + * + * Association to be cleared. + * + * @return the value of the 'Association' reference. + * @see #setAssociation(Association) + * @see org.eclipse.uml2.uml.UMLPackage#getClearAssociationAction_Association() + * @model required="true" ordered="false" + * @generated + */ + Association getAssociation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ClearAssociationAction#getAssociation Association}' reference. + * + * + * @param value the new value of the 'Association' reference. + * @see #getAssociation() + * @generated + */ + void setAssociation(Association value); + + /** + * + * + * + * The type of the input pin must be the same as the type of at least one of the association ends of the association. + * self.association->exists(end.type = self.object.type) + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + +} // ClearAssociationAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearStructuralFeatureAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearStructuralFeatureAction.java new file mode 100644 index 00000000..76054113 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearStructuralFeatureAction.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearStructuralFeatureAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Clear Structural Feature Action'. + * + * + * + * This action removes all values of a structural feature. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getClearStructuralFeatureAction() + * @model + * @generated + */ +public interface ClearStructuralFeatureAction + extends StructuralFeatureAction { +} // ClearStructuralFeatureAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearVariableAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearVariableAction.java new file mode 100644 index 00000000..e34c0beb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ClearVariableAction.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearVariableAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Clear Variable Action'. + * + * + * + * This action removes all values of an variable. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getClearVariableAction() + * @model + * @generated + */ +public interface ClearVariableAction + extends VariableAction { +} // ClearVariableAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Collaboration.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Collaboration.java new file mode 100644 index 00000000..ba128da3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Collaboration.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Collaboration.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Collaboration'. + * + * + * + * A collaboration is represented as a kind of classifier and defines a set of cooperating entities to be played by instances (its roles), as well as a set of connectors that define communication paths between the participating instances. The cooperating entities are the properties of the collaboration. + * + * + * + * A collaboration specifies a view (or projection) of a set of cooperating classifiers. It describes the required links between instances that play the roles of the collaboration, as well as the features required of the classifiers that specify the participating instances. Several collaborations may describe different projections of the same set of classifiers. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Collaboration#getCollaborationRoles Collaboration Role}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCollaboration() + * @model + * @generated + */ +public interface Collaboration + extends BehavioredClassifier, StructuredClassifier { + + /** + * Returns the value of the 'Collaboration Role' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ConnectableElement}. + * + * + * + * References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration. + * + * @return the value of the 'Collaboration Role' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getCollaboration_CollaborationRole() + * @model type="org.eclipse.uml2.uml.ConnectableElement" ordered="false" + * @generated + */ + List getCollaborationRoles(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ConnectableElement} with the specified 'Name' from the 'Collaboration Role' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ConnectableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ConnectableElement} with the specified 'Name', or null. + * @see #getCollaborationRoles() + * @generated + */ + ConnectableElement getCollaborationRole(String name); + +} // Collaboration diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CollaborationUse.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CollaborationUse.java new file mode 100644 index 00000000..91182011 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CollaborationUse.java @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CollaborationUse.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Collaboration Use'. + * + * + * + * A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. + * + * + * + * Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CollaborationUse#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.CollaborationUse#getRoleBindings Role Binding}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCollaborationUse() + * @model + * @generated + */ +public interface CollaborationUse + extends NamedElement { + + /** + * Returns the value of the 'Type' reference. + * + * + * + * The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use. + * + * @return the value of the 'Type' reference. + * @see #setType(Collaboration) + * @see org.eclipse.uml2.uml.UMLPackage#getCollaborationUse_Type() + * @model required="true" ordered="false" + * @generated + */ + Collaboration getType(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CollaborationUse#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(Collaboration value); + + /** + * Returns the value of the 'Role Binding' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Dependency}. + * + * + * + * A mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles). + * + * + * + * @return the value of the 'Role Binding' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getCollaborationUse_RoleBinding() + * @model type="org.eclipse.uml2.uml.Dependency" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getRoleBindings(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Dependency} and appends it to the 'Role Binding' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Dependency} to create. + * @return The new {@link org.eclipse.uml2.uml.Dependency}. + * @see #getRoleBindings() + * @generated + */ + Dependency createRoleBinding(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Dependency} and appends it to the 'Role Binding' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Dependency}. + * @see #getRoleBindings() + * @generated + */ + Dependency createRoleBinding(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Dependency} with the specified 'Name' from the 'Role Binding' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Dependency} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Dependency} with the specified 'Name', or null. + * @see #getRoleBindings() + * @generated + */ + Dependency getRoleBinding(String name); + + /** + * + * + * + * All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible. + * true + * + * @model + * @generated + */ + boolean validateClientElements(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation. + * true + * + * @model + * @generated + */ + boolean validateEveryRole(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The connectors in the classifier connect according to the connectors in the collaboration + * true + * + * @model + * @generated + */ + boolean validateConnectors(DiagnosticChain diagnostics, Map context); + +} // CollaborationUse diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CombinedFragment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CombinedFragment.java new file mode 100644 index 00000000..f83b916d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CombinedFragment.java @@ -0,0 +1,193 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CombinedFragment.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Combined Fragment'. + * + * + * + * A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner. CombinedFragment is a specialization of InteractionFragment. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#getInteractionOperator Interaction Operator}
  • + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#getOperands Operand}
  • + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#getCfragmentGates Cfragment Gate}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCombinedFragment() + * @model + * @generated + */ +public interface CombinedFragment + extends InteractionFragment { + + /** + * Returns the value of the 'Interaction Operator' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.InteractionOperatorKind}. + * + * + * + * Specifies the operation which defines the semantics of this combination of InteractionFragments. + * + * @return the value of the 'Interaction Operator' attribute. + * @see org.eclipse.uml2.uml.InteractionOperatorKind + * @see #setInteractionOperator(InteractionOperatorKind) + * @see org.eclipse.uml2.uml.UMLPackage#getCombinedFragment_InteractionOperator() + * @model required="true" ordered="false" + * @generated + */ + InteractionOperatorKind getInteractionOperator(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CombinedFragment#getInteractionOperator Interaction Operator}' attribute. + * + * + * @param value the new value of the 'Interaction Operator' attribute. + * @see org.eclipse.uml2.uml.InteractionOperatorKind + * @see #getInteractionOperator() + * @generated + */ + void setInteractionOperator(InteractionOperatorKind value); + + /** + * Returns the value of the 'Operand' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InteractionOperand}. + * + * + * + * The set of operands of the combined fragment. + * + * @return the value of the 'Operand' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getCombinedFragment_Operand() + * @model type="org.eclipse.uml2.uml.InteractionOperand" containment="true" resolveProxies="false" required="true" + * @generated + */ + List getOperands(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InteractionOperand} and appends it to the 'Operand' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.InteractionOperand}. + * @see #getOperands() + * @generated + */ + InteractionOperand createOperand(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InteractionOperand} with the specified 'Name' from the 'Operand' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InteractionOperand} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InteractionOperand} with the specified 'Name', or null. + * @see #getOperands() + * @generated + */ + InteractionOperand getOperand(String name); + + /** + * Returns the value of the 'Cfragment Gate' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Gate}. + * + * + * + * Specifies the gates that form the interface between this CombinedFragment and its surroundings + * + * @return the value of the 'Cfragment Gate' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getCombinedFragment_CfragmentGate() + * @model type="org.eclipse.uml2.uml.Gate" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getCfragmentGates(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Gate} and appends it to the 'Cfragment Gate' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Gate}. + * @see #getCfragmentGates() + * @generated + */ + Gate createCfragmentGate(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Gate} with the specified 'Name' from the 'Cfragment Gate' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Gate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Gate} with the specified 'Name', or null. + * @see #getCfragmentGates() + * @generated + */ + Gate getCfragmentGate(String name); + + /** + * + * + * + * If the interactionOperator is opt, loop, break, or neg there must be exactly one operand + * true + * + * @model + * @generated + */ + boolean validateOptLoopBreakNeg(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop. + * true + * + * @model + * @generated + */ + boolean validateMinintAndMaxint(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment. + * true + * + * @model + * @generated + */ + boolean validateBreak(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment + * ((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment) + * + * @model + * @generated + */ + boolean validateConsiderAndIgnore(DiagnosticChain diagnostics, Map context); + +} // CombinedFragment diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Comment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Comment.java new file mode 100644 index 00000000..48cda7ad --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Comment.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Comment.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Comment'. + * + * + * + * A comment is a textual annotation that can be attached to a set of elements. + * A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment can be owned by any element. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Comment#getBody Body}
  • + *
  • {@link org.eclipse.uml2.uml.Comment#getAnnotatedElements Annotated Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getComment() + * @model + * @generated + */ +public interface Comment + extends Element { + + /** + * Returns the value of the 'Body' attribute. + * + * + * + * Specifies a string that is the comment. + * + * @return the value of the 'Body' attribute. + * @see #setBody(String) + * @see org.eclipse.uml2.uml.UMLPackage#getComment_Body() + * @model required="true" ordered="false" + * extendedMetaData="kind='element'" + * @generated + */ + String getBody(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Comment#getBody Body}' attribute. + * + * + * @param value the new value of the 'Body' attribute. + * @see #getBody() + * @generated + */ + void setBody(String value); + + /** + * Returns the value of the 'Annotated Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Element}. + * + * + * + * References the Element(s) being commented. + * + * @return the value of the 'Annotated Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getComment_AnnotatedElement() + * @model type="org.eclipse.uml2.uml.Element" ordered="false" + * @generated + */ + List getAnnotatedElements(); + +} // Comment diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CommunicationPath.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CommunicationPath.java new file mode 100644 index 00000000..5c560486 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CommunicationPath.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CommunicationPath.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Communication Path'. + * + * + * + * In the metamodel, CommunicationPath is a subclass of Association. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getCommunicationPath() + * @model + * @generated + */ +public interface CommunicationPath + extends Association { +} // CommunicationPath diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java new file mode 100644 index 00000000..e81e5a69 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Component.java @@ -0,0 +1,234 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Component.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Component'. + * + * + * + * A component is a subtype of Class which provides for a Component having attributes and operations, and being able to participate in Associations and Generalizations. A Component may form the abstraction for a set of realizingClassifiers that realize its behavior. In addition, because a Class itself is a subtype of an EncapsulatedClassifier, a Component may optionally have an internal structure and own a set of Ports that formalize its interaction points. + * + * + * + * A component has a number of provided and required Interfaces, that form the basis for wiring components together, either using Dependencies, or by using Connectors. A provided Interface is one that is either implemented directly by the component or one of its realizingClassifiers, or it is the type of a provided Port of the Component. A required interface is designated by a Usage Dependency from the Component or one of its realizingClassifiers, or it is the type of a required Port. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Component#isIndirectlyInstantiated Is Indirectly Instantiated}
  • + *
  • {@link org.eclipse.uml2.uml.Component#getRequireds Required}
  • + *
  • {@link org.eclipse.uml2.uml.Component#getProvideds Provided}
  • + *
  • {@link org.eclipse.uml2.uml.Component#getPackagedElements Packaged Element}
  • + *
  • {@link org.eclipse.uml2.uml.Component#getRealizations Realization}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getComponent() + * @model + * @generated + */ +public interface Component + extends org.eclipse.uml2.uml.Class, Namespace { + + /** + * Returns the value of the 'Is Indirectly Instantiated' attribute. + * + * + * + * The kind of instantiation that applies to a Component. If false, the component is instantiated as an addressable object. If true, the Component is defined at design-time, but at runtime (or execution-time) an object specified by the Component does not exist, that is, the component is instantiated indirectly, through the instantiation of its realizing classifiers or parts. Several standard stereotypes use this meta attribute, e.g. «specification, «focus», «subsystem». + * + * @return the value of the 'Is Indirectly Instantiated' attribute. + * @see #setIsIndirectlyInstantiated(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getComponent_IsIndirectlyInstantiated() + * @model required="true" ordered="false" + * @generated + */ + boolean isIndirectlyInstantiated(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Component#isIndirectlyInstantiated Is Indirectly Instantiated}' attribute. + * + * + * @param value the new value of the 'Is Indirectly Instantiated' attribute. + * @see #isIndirectlyInstantiated() + * @generated + */ + void setIsIndirectlyInstantiated(boolean value); + + /** + * Returns the value of the 'Required' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Interface}. + * + * + * + * The interfaces that the component requires from other components in its environment in order to be able to offer its full set of provided functionality. These interfaces may be Used by the Component or any of its realizingClassifiers, or they may be the Interfaces that are required by its public Ports. + * + * @return the value of the 'Required' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getComponent_Required() + * @model type="org.eclipse.uml2.uml.Interface" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getRequireds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Interface} with the specified 'Name' from the 'Required' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Interface} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Interface} with the specified 'Name', or null. + * @see #getRequireds() + * @generated + */ + Interface getRequired(String name); + + /** + * Returns the value of the 'Provided' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Interface}. + * + * + * + * The interfaces that the component exposes to its environment. These interfaces may be Realized by the Component or any of its realizingClassifiers, or they may be the Interfaces that are provided by its public Ports. + * + * @return the value of the 'Provided' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getComponent_Provided() + * @model type="org.eclipse.uml2.uml.Interface" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getProvideds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Interface} with the specified 'Name' from the 'Provided' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Interface} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Interface} with the specified 'Name', or null. + * @see #getProvideds() + * @generated + */ + Interface getProvided(String name); + + /** + * Returns the value of the 'Packaged Element' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageableElement}. + * + * + * + * The set of PackageableElements that a Component owns. In the namespace of a component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g. Classes, Interfaces, Components, Packages, Use cases, Dependencies (e.g. mappings), and Artifacts. + * + * @return the value of the 'Packaged Element' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getComponent_PackagedElement() + * @model type="org.eclipse.uml2.uml.PackageableElement" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getPackagedElements(); + + /** + * Creates a {@link org.eclipse.uml2.uml.PackageableElement} and appends it to the 'Packaged Element' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.PackageableElement} to create. + * @return The new {@link org.eclipse.uml2.uml.PackageableElement}. + * @see #getPackagedElements() + * @generated + */ + PackageableElement createPackagedElement(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name' from the 'Packaged Element' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name', or null. + * @see #getPackagedElements() + * @generated + */ + PackageableElement getPackagedElement(String name); + + /** + * Returns the value of the 'Realization' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ComponentRealization}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ComponentRealization#getAbstraction Abstraction}'. + * + * + * + * The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior. + * + * @return the value of the 'Realization' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getComponent_Realization() + * @see org.eclipse.uml2.uml.ComponentRealization#getAbstraction + * @model type="org.eclipse.uml2.uml.ComponentRealization" opposite="abstraction" containment="true" resolveProxies="false" transient="true" ordered="false" + * @generated + */ + List getRealizations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ComponentRealization} and appends it to the 'Realization' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ComponentRealization}. + * @see #getRealizations() + * @generated + */ + ComponentRealization createRealization(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ComponentRealization} with the specified 'Name' from the 'Realization' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ComponentRealization} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ComponentRealization} with the specified 'Name', or null. + * @see #getRealizations() + * @generated + */ + ComponentRealization getRealization(String name); + + /** + * + * + * + * Utility returning the set of realized interfaces of a component: + * result = (classifier.clientDependency-> + * select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))-> + * collect(dependency|dependency.client) + * + * @model type="org.eclipse.uml2.uml.Interface" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List realizedInterfaces(); + + /** + * + * + * + * Utility returning the set of used interfaces of a component: + * result = (classifier.supplierDependency-> + * select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))-> + * collect(dependency|dependency.supplier) + * + * @model type="org.eclipse.uml2.uml.Interface" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List usedInterfaces(); + +} // Component diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ComponentRealization.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ComponentRealization.java new file mode 100644 index 00000000..79a1390d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ComponentRealization.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ComponentRealization.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Component Realization'. + * + * + * + * In the metamodel, a ComponentRealization is a subtype of Dependencies::Realization. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ComponentRealization#getAbstraction Abstraction}
  • + *
  • {@link org.eclipse.uml2.uml.ComponentRealization#getRealizingClassifier Realizing Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getComponentRealization() + * @model + * @generated + */ +public interface ComponentRealization + extends Realization { + + /** + * Returns the value of the 'Abstraction' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Component#getRealizations Realization}'. + * + *

+ * If the meaning of the 'Abstraction' container reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Abstraction' container reference. + * @see #setAbstraction(Component) + * @see org.eclipse.uml2.uml.UMLPackage#getComponentRealization_Abstraction() + * @see org.eclipse.uml2.uml.Component#getRealizations + * @model opposite="realization" ordered="false" + * @generated + */ + Component getAbstraction(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ComponentRealization#getAbstraction Abstraction}' container reference. + * + * + * @param value the new value of the 'Abstraction' container reference. + * @see #getAbstraction() + * @generated + */ + void setAbstraction(Component value); + + /** + * Returns the value of the 'Realizing Classifier' reference. + * + *

+ * If the meaning of the 'Realizing Classifier' reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Realizing Classifier' reference. + * @see #setRealizingClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getComponentRealization_RealizingClassifier() + * @model required="true" ordered="false" + * @generated + */ + Classifier getRealizingClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ComponentRealization#getRealizingClassifier Realizing Classifier}' reference. + * + * + * @param value the new value of the 'Realizing Classifier' reference. + * @see #getRealizingClassifier() + * @generated + */ + void setRealizingClassifier(Classifier value); + +} // ComponentRealization diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConditionalNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConditionalNode.java new file mode 100644 index 00000000..37697bdb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConditionalNode.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConditionalNode.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Conditional Node'. + * + * + * + * A conditional node consists of one or more clauses. Each clause consists of a test section and a body section. When the conditional node begins execution, the test sections of the clauses are executed. If one or more test sections yield a true value, one of the corresponding body sections will be executed. If more than one test section yields a true value, only one body section will be executed. The choice is nondeterministic unless the test sequence of clauses is specified. If no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node. + * + * + * + * In general, test section may be executed in any order, including simultaneously (if the underlying execution architecture supports it). The result may therefore be nondeterministic if more than one test section can be true concurrently. To enforce ordering of evaluation, sequencing constraints may be specified among clauses. One frequent case is a total ordering of clauses, in which case the clause execution order is determinate. If it is impossible for more than one test section to evaluate true simultaneously, the result is deterministic and it is unnecessary to order the clauses, as ordering may impose undesirable and unnecessary restrictions on implementation. Note that, although evaluation of test sections may be specified as concurrent, this does not require that the implementation evaluate them in parallel; it merely means that the model does not impose any order on evaluation. + * + * + * + * An "else" clause is a clause that is a successor to all other clauses in the conditional and whose test part always returns true. + * + * + * + * Output values created in the test or body section of a clause are potentially available for use outside the conditional. However, any value used outside the conditional must be created in every clause, otherwise an undefined value would be accessed if a clause not defining the value were executed. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConditionalNode#isDeterminate Is Determinate}
  • + *
  • {@link org.eclipse.uml2.uml.ConditionalNode#isAssured Is Assured}
  • + *
  • {@link org.eclipse.uml2.uml.ConditionalNode#getClauses Clause}
  • + *
  • {@link org.eclipse.uml2.uml.ConditionalNode#getResults Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConditionalNode() + * @model + * @generated + */ +public interface ConditionalNode + extends StructuredActivityNode { + + /** + * Returns the value of the 'Is Determinate' attribute. + * + * + * + * If true, the modeler asserts that at most one test will succeed. + * + * @return the value of the 'Is Determinate' attribute. + * @see #setIsDeterminate(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getConditionalNode_IsDeterminate() + * @model required="true" ordered="false" + * @generated + */ + boolean isDeterminate(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ConditionalNode#isDeterminate Is Determinate}' attribute. + * + * + * @param value the new value of the 'Is Determinate' attribute. + * @see #isDeterminate() + * @generated + */ + void setIsDeterminate(boolean value); + + /** + * Returns the value of the 'Is Assured' attribute. + * + * + * + * If true, the modeler asserts that at least one test will succeed. + * + * @return the value of the 'Is Assured' attribute. + * @see #setIsAssured(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getConditionalNode_IsAssured() + * @model required="true" ordered="false" + * @generated + */ + boolean isAssured(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ConditionalNode#isAssured Is Assured}' attribute. + * + * + * @param value the new value of the 'Is Assured' attribute. + * @see #isAssured() + * @generated + */ + void setIsAssured(boolean value); + + /** + * Returns the value of the 'Clause' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Clause}. + * + * + * + * Set of clauses composing the conditional. + * + * @return the value of the 'Clause' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConditionalNode_Clause() + * @model type="org.eclipse.uml2.uml.Clause" containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + List getClauses(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Clause} and appends it to the 'Clause' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Clause}. + * @see #getClauses() + * @generated + */ + Clause createClause(); + + /** + * Returns the value of the 'Result' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * A list of output pins that constitute the data flow outputs of the conditional. + * + * @return the value of the 'Result' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConditionalNode_Result() + * @model type="org.eclipse.uml2.uml.OutputPin" containment="true" resolveProxies="false" + * @generated + */ + List getResults(); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and appends it to the 'Result' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResults() + * @generated + */ + OutputPin createResult(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Result' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getResults() + * @generated + */ + OutputPin getResult(String name); + + /** + * + * + * + * The result output pins have no incoming edges. + * true + * + * @model + * @generated + */ + boolean validateResultNoIncoming(DiagnosticChain diagnostics, Map context); + +} // ConditionalNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElement.java new file mode 100644 index 00000000..c3d90ee0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElement.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectableElement.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Connectable Element'. + * + * + * + * A ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier. + * ConnectableElement is the connectable element of a ConnectableElementTemplateParameter. + * + * The ConnectableElements attached as role to each ConnectorEnd owned by a Connector must be roles of the classifier that owned the Connector, or they must be ports of such roles. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConnectableElement#getEnds End}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConnectableElement() + * @model abstract="true" + * @generated + */ +public interface ConnectableElement + extends TypedElement, ParameterableElement { + + /** + * Returns the value of the 'End' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ConnectorEnd}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ConnectorEnd#getRole Role}'. + * + * + * + * Denotes a connector that attaches to this connectable element. + * + * @return the value of the 'End' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConnectableElement_End() + * @see org.eclipse.uml2.uml.ConnectorEnd#getRole + * @model type="org.eclipse.uml2.uml.ConnectorEnd" opposite="role" + * @generated + */ + List getEnds(); + +} // ConnectableElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElementTemplateParameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElementTemplateParameter.java new file mode 100644 index 00000000..17a2b9c9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectableElementTemplateParameter.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectableElementTemplateParameter.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Connectable Element Template Parameter'. + * + * + * + * ConnectableElementTemplateParameter is a template parameter where the parametered element is a ConnectableElement. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getConnectableElementTemplateParameter() + * @model + * @generated + */ +public interface ConnectableElementTemplateParameter + extends TemplateParameter { +} // ConnectableElementTemplateParameter diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectionPointReference.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectionPointReference.java new file mode 100644 index 00000000..7cf24064 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectionPointReference.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectionPointReference.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Connection Point Reference'. + * + * + * + * Connection point references of a submachine state can be used as sources/targets of transitions. They represent entries into or exits out of the submachine state machine referenced by the submachine state. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConnectionPointReference#getEntries Entry}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectionPointReference#getExits Exit}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectionPointReference#getState State}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConnectionPointReference() + * @model + * @generated + */ +public interface ConnectionPointReference + extends Vertex { + + /** + * Returns the value of the 'Entry' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Pseudostate}. + * + * + * + * The entryPoint kind pseudo states corresponding to this connection point. + * + * @return the value of the 'Entry' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConnectionPointReference_Entry() + * @model type="org.eclipse.uml2.uml.Pseudostate" ordered="false" + * @generated + */ + List getEntries(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name' from the 'Entry' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Pseudostate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name', or null. + * @see #getEntries() + * @generated + */ + Pseudostate getEntry(String name); + + /** + * Returns the value of the 'Exit' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Pseudostate}. + * + * + * + * The exitPoints kind pseudo states corresponding to this connection point. + * + * @return the value of the 'Exit' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConnectionPointReference_Exit() + * @model type="org.eclipse.uml2.uml.Pseudostate" ordered="false" + * @generated + */ + List getExits(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name' from the 'Exit' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Pseudostate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name', or null. + * @see #getExits() + * @generated + */ + Pseudostate getExit(String name); + + /** + * Returns the value of the 'State' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.State#getConnections Connection}'. + * + * + * + * The State in which the connection point refreshens are defined. + * + * @return the value of the 'State' container reference. + * @see #setState(State) + * @see org.eclipse.uml2.uml.UMLPackage#getConnectionPointReference_State() + * @see org.eclipse.uml2.uml.State#getConnections + * @model opposite="connection" ordered="false" + * @generated + */ + State getState(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ConnectionPointReference#getState State}' container reference. + * + * + * @param value the new value of the 'State' container reference. + * @see #getState() + * @generated + */ + void setState(State value); + + /** + * + * + * + * The entry Pseudostates must be Pseudostates with kind entryPoint. + * entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint) + * + * @model + * @generated + */ + boolean validateEntryPseudostates(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The exit Pseudostates must be Pseudostates with kind exitPoint. + * exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint) + * + * @model + * @generated + */ + boolean validateExitPseudostates(DiagnosticChain diagnostics, Map context); + +} // ConnectionPointReference diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Connector.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Connector.java new file mode 100644 index 00000000..93f3aff9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Connector.java @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Connector.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Connector'. + * + * + * + * Each connector may be attached to two or more connectable elements, each representing a set of instances. Each connector end is distinct in the sense that it plays a distinct role in the communication realized over a connector. The communications realized over a connector may be constrained by various constraints (including type constraints) that apply to the attached connectable elements. + * In the metamodel, a connector kind attribute is added to the Connector metaclass. Its value is an enumeration type with valid values 'assembly' or 'delegation'. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Connector#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#getRedefinedConnectors Redefined Connector}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#getEnds End}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#getKind Kind}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#getContracts Contract}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConnector() + * @model + * @generated + */ +public interface Connector + extends Feature { + + /** + * Returns the value of the 'Type' reference. + * + * + * + * An optional association that specifies the link corresponding to this connector. + * + * @return the value of the 'Type' reference. + * @see #setType(Association) + * @see org.eclipse.uml2.uml.UMLPackage#getConnector_Type() + * @model ordered="false" + * @generated + */ + Association getType(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Connector#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(Association value); + + /** + * Returns the value of the 'Redefined Connector' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Connector}. + * + * + * + * A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. + * + * The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced. + * + * @return the value of the 'Redefined Connector' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConnector_RedefinedConnector() + * @model type="org.eclipse.uml2.uml.Connector" ordered="false" + * @generated + */ + List getRedefinedConnectors(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Connector} with the specified 'Name' from the 'Redefined Connector' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Connector} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Connector} with the specified 'Name', or null. + * @see #getRedefinedConnectors() + * @generated + */ + Connector getRedefinedConnector(String name); + + /** + * Returns the value of the 'End' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ConnectorEnd}. + * + * + * + * A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered. + * + * @return the value of the 'End' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConnector_End() + * @model type="org.eclipse.uml2.uml.ConnectorEnd" containment="true" resolveProxies="false" lower="2" + * @generated + */ + List getEnds(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ConnectorEnd} and appends it to the 'End' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ConnectorEnd}. + * @see #getEnds() + * @generated + */ + ConnectorEnd createEnd(); + + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.ConnectorKind}. + * + * + * + * Indicates the kind of connector. + * + * @return the value of the 'Kind' attribute. + * @see org.eclipse.uml2.uml.ConnectorKind + * @see #setKind(ConnectorKind) + * @see org.eclipse.uml2.uml.UMLPackage#getConnector_Kind() + * @model ordered="false" + * @generated + */ + ConnectorKind getKind(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Connector#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.eclipse.uml2.uml.ConnectorKind + * @see #getKind() + * @generated + */ + void setKind(ConnectorKind value); + + /** + * Returns the value of the 'Contract' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Behavior}. + * + *

+ * If the meaning of the 'Contract' reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Contract' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConnector_Contract() + * @model type="org.eclipse.uml2.uml.Behavior" ordered="false" + * @generated + */ + List getContracts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name' from the 'Contract' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Behavior} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Behavior} with the specified 'Name', or null. + * @see #getContracts() + * @generated + */ + Behavior getContract(String name); + + /** + * + * + * + * The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any. + * true + * + * @model + * @generated + */ + boolean validateTypes(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The connectable elements attached to the ends of a connector must be compatible. + * true + * + * @model + * @generated + */ + boolean validateCompatible(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles. + * true + * + * @model + * @generated + */ + boolean validateRoles(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A delegation connector must only be defined between used Interfaces or Ports of the same kind, e.g. between two provided Ports or between two required Ports. + * true + * + * @model + * @generated + */ + boolean validateBetweenInterfacesPorts(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If a delegation connector is defined between a used Interface or Port and an internal Part Classifier, then that Classifier must have an 'implements' relationship to the Interface type of that Port. + * true + * + * @model + * @generated + */ + boolean validateBetweenInterfacePortImplements(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If a delegation connector is defined between a source Interface or Port and a target Interface or Port, then the target Interface must support a signature compatible subset of Operations of the source Interface or Port. + * true + * + * @model + * @generated + */ + boolean validateBetweenInterfacePortSignature(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * In a complete model, if a source Port has delegation connectors to a set of delegated target Ports, then the union of the Interfaces of these target Ports must be signature compatible with the Interface that types the source Port. + * true + * + * @model + * @generated + */ + boolean validateUnionSignatureCompatible(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port. + * true + * + * @model + * @generated + */ + boolean validateAssemblyConnector(DiagnosticChain diagnostics, Map context); + +} // Connector diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorEnd.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorEnd.java new file mode 100644 index 00000000..1f6aea1b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorEnd.java @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectorEnd.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Connector End'. + * + * + * + * A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#getDefiningEnd Defining End}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#getPartWithPort Part With Port}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#getRole Role}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd() + * @model + * @generated + */ +public interface ConnectorEnd + extends MultiplicityElement { + + /** + * Returns the value of the 'Defining End' reference. + * + * + * + * A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end. + * + * + * + * @return the value of the 'Defining End' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd_DefiningEnd() + * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + Property getDefiningEnd(); + + /** + * Returns the value of the 'Part With Port' reference. + * + * + * + * Indicates the role of the internal structure of a classifier with the port to which the connector end is attached. + * + * @return the value of the 'Part With Port' reference. + * @see #setPartWithPort(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd_PartWithPort() + * @model ordered="false" + * @generated + */ + Property getPartWithPort(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ConnectorEnd#getPartWithPort Part With Port}' reference. + * + * + * @param value the new value of the 'Part With Port' reference. + * @see #getPartWithPort() + * @generated + */ + void setPartWithPort(Property value); + + /** + * Returns the value of the 'Role' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ConnectableElement#getEnds End}'. + * + * + * + * The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element. + * + * + * + * @return the value of the 'Role' reference. + * @see #setRole(ConnectableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd_Role() + * @see org.eclipse.uml2.uml.ConnectableElement#getEnds + * @model opposite="end" required="true" ordered="false" + * @generated + */ + ConnectableElement getRole(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ConnectorEnd#getRole Role}' reference. + * + * + * @param value the new value of the 'Role' reference. + * @see #getRole() + * @generated + */ + void setRole(ConnectableElement value); + + /** + * + * + * + * The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector. + * true + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a connector end is attached to a port of the containing classifier, partWithPort will be empty. + * true + * + * @model + * @generated + */ + boolean validatePartWithPortEmpty(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a connector end references both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort. + * true + * + * @model + * @generated + */ + boolean validateRoleAndPartWithPort(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The property held in self.partWithPort must not be a Port. + * true + * + * @model + * @generated + */ + boolean validateSelfPartWithPort(DiagnosticChain diagnostics, Map context); + +} // ConnectorEnd diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorKind.java new file mode 100644 index 00000000..c36e63e0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConnectorKind.java @@ -0,0 +1,165 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectorKind.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Connector Kind', + * and utility methods for working with them. + * + * + * ConnectorKind is an enumeration of the following literal values: + * ? assembly Indicates that the connector is an assembly connector. + * ? delegation Indicates that the connector is a delegation connector. + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getConnectorKind() + * @model + * @generated + */ +public final class ConnectorKind + extends AbstractEnumerator { + + /** + * The 'Assembly' literal value. + * + * + * + * Indicates that the connector is an assembly connector. + * + * @see #ASSEMBLY_LITERAL + * @model name="assembly" + * @generated + * @ordered + */ + public static final int ASSEMBLY = 0; + + /** + * The 'Delegation' literal value. + * + * + * + * Indicates that the connector is a delegation connector. + * + * @see #DELEGATION_LITERAL + * @model name="delegation" + * @generated + * @ordered + */ + public static final int DELEGATION = 1; + + /** + * The 'Assembly' literal object. + * + * + * @see #ASSEMBLY + * @generated + * @ordered + */ + public static final ConnectorKind ASSEMBLY_LITERAL = new ConnectorKind( + ASSEMBLY, "assembly", "assembly"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Delegation' literal object. + * + * + * @see #DELEGATION + * @generated + * @ordered + */ + public static final ConnectorKind DELEGATION_LITERAL = new ConnectorKind( + DELEGATION, "delegation", "delegation"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Connector Kind' enumerators. + * + * + * @generated + */ + private static final ConnectorKind[] VALUES_ARRAY = new ConnectorKind[]{ + ASSEMBLY_LITERAL, DELEGATION_LITERAL,}; + + /** + * A public read-only list of all the 'Connector Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Connector Kind' literal with the specified literal value. + * + * + * @generated + */ + public static ConnectorKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ConnectorKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Connector Kind' literal with the specified name. + * + * + * @generated + */ + public static ConnectorKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ConnectorKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Connector Kind' literal with the specified integer value. + * + * + * @generated + */ + public static ConnectorKind get(int value) { + switch (value) { + case ASSEMBLY : + return ASSEMBLY_LITERAL; + case DELEGATION : + return DELEGATION_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ConnectorKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //ConnectorKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConsiderIgnoreFragment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConsiderIgnoreFragment.java new file mode 100644 index 00000000..526315ca --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ConsiderIgnoreFragment.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConsiderIgnoreFragment.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Consider Ignore Fragment'. + * + * + * + * A ConsiderIgnoreFragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#getMessages Message}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConsiderIgnoreFragment() + * @model + * @generated + */ +public interface ConsiderIgnoreFragment + extends CombinedFragment { + + /** + * Returns the value of the 'Message' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * The set of messages that apply to this fragment + * + * @return the value of the 'Message' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConsiderIgnoreFragment_Message() + * @model type="org.eclipse.uml2.uml.NamedElement" ordered="false" + * @generated + */ + List getMessages(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Message' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getMessages() + * @generated + */ + NamedElement getMessage(String name); + + /** + * + * + * + * The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'. + * (interactionOperator = #consider) or (interactionOperator = #ignore) + * + * @model + * @generated + */ + boolean validateConsiderOrIgnore(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal). + * message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal)) + * + * @model + * @generated + */ + boolean validateType(DiagnosticChain diagnostics, Map context); + +} // ConsiderIgnoreFragment diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Constraint.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Constraint.java new file mode 100644 index 00000000..9d107ed7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Constraint.java @@ -0,0 +1,194 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Constraint.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Constraint'. + * + * + * + * Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. + * + * Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to the element. Constraint contains an optional name, although they are commonly unnamed. + * Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association "xor" constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used. + * + * Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to that element. Constraint contains an optional name, although they are commonly unnamed. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Constraint#getConstrainedElements Constrained Element}
  • + *
  • {@link org.eclipse.uml2.uml.Constraint#getSpecification Specification}
  • + *
  • {@link org.eclipse.uml2.uml.Constraint#getContext Context}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getConstraint() + * @model + * @generated + */ +public interface Constraint + extends PackageableElement { + + /** + * Returns the value of the 'Constrained Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Element}. + * + * + * + * The ordered set of Elements referenced by this Constraint. + * + * @return the value of the 'Constrained Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getConstraint_ConstrainedElement() + * @model type="org.eclipse.uml2.uml.Element" + * @generated + */ + List getConstrainedElements(); + + /** + * Returns the value of the 'Specification' containment reference. + * + * + * + * A condition that must be true when evaluated in order for the constraint to be satisfied. + * + * + * A condition that must be true when evaluated in order for the constraint to be satisfied. + * + * @return the value of the 'Specification' containment reference. + * @see #setSpecification(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getConstraint_Specification() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getSpecification(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Constraint#getSpecification Specification}' containment reference. + * + * + * @param value the new value of the 'Specification' containment reference. + * @see #getSpecification() + * @generated + */ + void setSpecification(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Specification' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getSpecification() + * @generated + */ + ValueSpecification createSpecification(EClass eClass); + + /** + * Returns the value of the 'Context' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Namespace#getOwnedRules Owned Rule}'. + * + * + * + * Specifies the namespace that owns the NamedElement. + * + * @return the value of the 'Context' container reference. + * @see #setContext(Namespace) + * @see org.eclipse.uml2.uml.UMLPackage#getConstraint_Context() + * @see org.eclipse.uml2.uml.Namespace#getOwnedRules + * @model opposite="ownedRule" ordered="false" + * @generated + */ + Namespace getContext(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Constraint#getContext Context}' container reference. + * + * + * @param value the new value of the 'Context' container reference. + * @see #getContext() + * @generated + */ + void setContext(Namespace value); + + /** + * + * + * + * A constraint cannot be applied to itself. + * not constrainedElement->includes(self) + * + * @model + * @generated + */ + boolean validateNotApplyToSelf(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The value specification for a constraint must evaluate to a Boolean value. + * self.specification().booleanValue().isOclKindOf(Boolean) + * + * @model + * @generated + */ + boolean validateValueSpecificationBoolean(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The value specification for a constraint must evaluate to a Boolean value. + * true + * + * @model + * @generated + */ + boolean validateBooleanValue(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Evaluating the value specification for a constraint must not have side effects. + * true + * + * @model + * @generated + */ + boolean validateNoSideEffects(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A constraint cannot be applied to itself. + * not constrainedElement->includes(self) + * + * @model + * @generated + */ + boolean validateNotAppliedToSelf(DiagnosticChain diagnostics, Map context); + +} // Constraint diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Continuation.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Continuation.java new file mode 100644 index 00000000..67ddcfa7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Continuation.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Continuation.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Continuation'. + * + * + * + * A Continuation is a syntactic way to define continuations of different branches of an Alternative CombinedFragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Continuation#isSetting Setting}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getContinuation() + * @model + * @generated + */ +public interface Continuation + extends InteractionFragment { + + /** + * Returns the value of the 'Setting' attribute. + * The default value is "true". + * + * + * + * True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning. + * + * @return the value of the 'Setting' attribute. + * @see #setSetting(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getContinuation_Setting() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isSetting(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Continuation#isSetting Setting}' attribute. + * + * + * @param value the new value of the 'Setting' attribute. + * @see #isSetting() + * @generated + */ + void setSetting(boolean value); + + /** + * + * + * + * Continuations with the same name may only cover the same set of Lifelines (within one Classifier). + * true + * + * @model + * @generated + */ + boolean validateSameName(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment. + * true + * + * @model + * @generated + */ + boolean validateGlobal(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment. + * true + * + * @model + * @generated + */ + boolean validateFirstOrLastInteractionFragment(DiagnosticChain diagnostics, + Map context); + +} // Continuation diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlFlow.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlFlow.java new file mode 100644 index 00000000..fd669e3b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlFlow.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ControlFlow.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Control Flow'. + * + * + * + * Objects and data cannot pass along a control flow edge. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getControlFlow() + * @model + * @generated + */ +public interface ControlFlow + extends ActivityEdge { + + /** + * + * + * + * Control flows may not have object nodes at either end, except for object nodes with control type. + * true + * + * @model + * @generated + */ + boolean validateObjectNodes(DiagnosticChain diagnostics, Map context); + +} // ControlFlow diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlNode.java new file mode 100644 index 00000000..a8e62022 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ControlNode.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ControlNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Control Node'. + * + * + * + * A control node is an activity node used to coordinate the flows between other nodes. It covers initial node, final node and its children, fork node, join node, decision node, and merge node. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getControlNode() + * @model abstract="true" + * @generated + */ +public interface ControlNode + extends ActivityNode { +} // ControlNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkAction.java new file mode 100644 index 00000000..0923bdef --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkAction.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateLinkAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Create Link Action'. + * + * + * + * This action can be used to create links and link objects. There is no return value in either case. This is so that no change of the action is required if the association is changed to an association class or vice versa. CreateLinkAction uses a specialization of LinkEndData called LinkEndCreationData, to support ordered associations. The insertion point is specified at runtime by an additional input pin, which is required for ordered association ends and omitted for unordered ends. The insertion point is a positive integer giving the position to insert the link, or unlimited, to insert at the end. Reinserting an existing end at a new position in an ordered unique structural feature moves the end to that position. CreateLinkAction also uses LinkEndCreationData to support the destruction of existing links of the association that connect any of the objects of the new link. When the link is created, this option is available on an end-by-end basis, and causes all links of the association emanating from the + * + * specified ends to be destroyed before the new link is created. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getCreateLinkAction() + * @model + * @generated + */ +public interface CreateLinkAction + extends WriteLinkAction { + + /** + * + * + * + * The association cannot be an abstract classifier. + * self.association().isAbstract = #false + * + * @model + * @generated + */ + boolean validateAssociationNotAbstract(DiagnosticChain diagnostics, + Map context); + +} // CreateLinkAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkObjectAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkObjectAction.java new file mode 100644 index 00000000..03df8691 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateLinkObjectAction.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateLinkObjectAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Create Link Object Action'. + * + * + * + * This action is exclusively for creating links of association classes. It returns the created link object. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CreateLinkObjectAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCreateLinkObjectAction() + * @model + * @generated + */ +public interface CreateLinkObjectAction + extends CreateLinkAction { + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Gives the output pin on which the result is put. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getCreateLinkObjectAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CreateLinkObjectAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The association must be an association class. + * self.association().oclIsKindOf(Class) + * + * @model + * @generated + */ + boolean validateAssociationClass(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the result pin must be the same as the association of the action. + * self.result.type = self.association() + * + * @model + * @generated + */ + boolean validateTypeOfResult(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + +} // CreateLinkObjectAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateObjectAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateObjectAction.java new file mode 100644 index 00000000..b7a89413 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreateObjectAction.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateObjectAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Create Object Action'. + * + * + * + * CreateObjectAction is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CreateObjectAction#getClassifier Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.CreateObjectAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getCreateObjectAction() + * @model + * @generated + */ +public interface CreateObjectAction + extends Action { + + /** + * Returns the value of the 'Classifier' reference. + * + * + * + * Classifier to be instantiated. + * + * @return the value of the 'Classifier' reference. + * @see #setClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getCreateObjectAction_Classifier() + * @model required="true" ordered="false" + * @generated + */ + Classifier getClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CreateObjectAction#getClassifier Classifier}' reference. + * + * + * @param value the new value of the 'Classifier' reference. + * @see #getClassifier() + * @generated + */ + void setClassifier(Classifier value); + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Gives the output pin on which the result is put. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getCreateObjectAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.CreateObjectAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The classifier cannot be abstract. + * not (self.classifier.isAbstract = #true) + * + * @model + * @generated + */ + boolean validateClassifierNotAbstract(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The classifier cannot be an association class + * not self.classifier.oclIsKindOf(AssociationClass) + * + * @model + * @generated + */ + boolean validateClassifierNotAssociationClass(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The type of the result pin must be the same as the classifier of the action. + * self.result.type = self.classifier + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + +} // CreateObjectAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreationEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreationEvent.java new file mode 100644 index 00000000..a2b186ef --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/CreationEvent.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreationEvent.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Creation Event'. + * + * + * + * A CreationEvent models the creation of an object. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getCreationEvent() + * @model + * @generated + */ +public interface CreationEvent + extends Event { + + /** + * + * + * + * No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand. + * true + * + * @model + * @generated + */ + boolean validateNoOccurrenceAbove(DiagnosticChain diagnostics, Map context); + +} // CreationEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataStoreNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataStoreNode.java new file mode 100644 index 00000000..16aec697 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataStoreNode.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DataStoreNode.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Data Store Node'. + * + * + * + * A data store keeps all tokens that enter it, copying them when they are chosen to move downstream. Incoming tokens containing a particular object replace any tokens in the object node containing that object. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDataStoreNode() + * @model + * @generated + */ +public interface DataStoreNode + extends CentralBufferNode { +} // DataStoreNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java new file mode 100644 index 00000000..c81b6799 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DataType.java @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DataType.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Data Type'. + * + * + * + * A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types. + * + * + * + * A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types. + * A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types. + * + * A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DataType#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.DataType#getOwnedOperations Owned Operation}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDataType() + * @model + * @generated + */ +public interface DataType + extends Classifier { + + /** + * Returns the value of the 'Owned Attribute' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getDatatype Datatype}'. + * + * + * + * The Attributes owned by the DataType. + * + * @return the value of the 'Owned Attribute' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDataType_OwnedAttribute() + * @see org.eclipse.uml2.uml.Property#getDatatype + * @model type="org.eclipse.uml2.uml.Property" opposite="datatype" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedAttributes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Owned Attribute' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getOwnedAttributes() + * @generated + */ + Property getOwnedAttribute(String name); + + /** + * Returns the value of the 'Owned Operation' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Operation}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Operation#getDatatype Datatype}'. + * + * + * + * The Operations owned by the DataType. + * + * @return the value of the 'Owned Operation' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDataType_OwnedOperation() + * @see org.eclipse.uml2.uml.Operation#getDatatype + * @model type="org.eclipse.uml2.uml.Operation" opposite="datatype" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedOperations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Operation} and appends it to the 'Owned Operation' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Operation}. + * @see #getOwnedOperations() + * @generated + */ + Operation createOwnedOperation(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified 'Name' from the 'Owned Operation' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Operation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Operation} with the specified 'Name', or null. + * @see #getOwnedOperations() + * @generated + */ + Operation getOwnedOperation(String name); + +} // DataType diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DecisionNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DecisionNode.java new file mode 100644 index 00000000..0ed76997 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DecisionNode.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DecisionNode.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Decision Node'. + * + * + * + * A decision node has one incoming edge and multiple outgoing activity edges. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DecisionNode#getDecisionInput Decision Input}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDecisionNode() + * @model + * @generated + */ +public interface DecisionNode + extends ControlNode { + + /** + * Returns the value of the 'Decision Input' reference. + * + * + * + * Provides input to guard specifications on edges outgoing from the decision node. + * + * @return the value of the 'Decision Input' reference. + * @see #setDecisionInput(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getDecisionNode_DecisionInput() + * @model ordered="false" + * @generated + */ + Behavior getDecisionInput(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DecisionNode#getDecisionInput Decision Input}' reference. + * + * + * @param value the new value of the 'Decision Input' reference. + * @see #getDecisionInput() + * @generated + */ + void setDecisionInput(Behavior value); + + /** + * + * + * + * A decision node has one incoming edge. + * true + * + * @model + * @generated + */ + boolean validateOneIncomingEdge(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A decision input behavior has zero or one input parameter and one output parameter. Any input parameter must be the same as or a supertype of the type of object tokens coming along the incoming edge. The behavior cannot have side effects. + * true + * + * @model + * @generated + */ + boolean validateInputParameter(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The edges coming into and out of a decision node must be either all object flows or all control flows. + * true + * + * @model + * @generated + */ + boolean validateEdges(DiagnosticChain diagnostics, Map context); + +} // DecisionNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Dependency.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Dependency.java new file mode 100644 index 00000000..23132bd4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Dependency.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Dependency.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Dependency'. + * + * + * + * A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s). + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Dependency#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.Dependency#getClients Client}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDependency() + * @model + * @generated + */ +public interface Dependency + extends PackageableElement, DirectedRelationship { + + /** + * Returns the value of the 'Supplier' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific. + * + * @return the value of the 'Supplier' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDependency_Supplier() + * @model type="org.eclipse.uml2.uml.NamedElement" required="true" ordered="false" + * @generated + */ + List getSuppliers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Supplier' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getSuppliers() + * @generated + */ + NamedElement getSupplier(String name); + + /** + * Returns the value of the 'Client' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.NamedElement#getClientDependencies Client Dependency}'. + * + * + * + * The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation. + * + * @return the value of the 'Client' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDependency_Client() + * @see org.eclipse.uml2.uml.NamedElement#getClientDependencies + * @model type="org.eclipse.uml2.uml.NamedElement" opposite="clientDependency" required="true" ordered="false" + * @generated + */ + List getClients(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Client' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getClients() + * @generated + */ + NamedElement getClient(String name); + +} // Dependency diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeployedArtifact.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeployedArtifact.java new file mode 100644 index 00000000..9d18d99f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeployedArtifact.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeployedArtifact.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Deployed Artifact'. + * + * + * + * In the metamodel, DeployedArtifact is an abstract metaclass that is a specialization of NamedElement. A DeployedArtifact is involved in one or more Deployments to a DeploymentTarget. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDeployedArtifact() + * @model abstract="true" + * @generated + */ +public interface DeployedArtifact + extends NamedElement { +} // DeployedArtifact diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java new file mode 100644 index 00000000..9e7e95d1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Deployment.java @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Deployment.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Deployment'. + * + * + * + * In the metamodel, Deployment is a subtype of Dependency. + * A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Deployment#getDeployedArtifacts Deployed Artifact}
  • + *
  • {@link org.eclipse.uml2.uml.Deployment#getConfigurations Configuration}
  • + *
  • {@link org.eclipse.uml2.uml.Deployment#getLocation Location}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDeployment() + * @model + * @generated + */ +public interface Deployment + extends Dependency { + + /** + * Returns the value of the 'Deployed Artifact' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.DeployedArtifact}. + * + * + * + * The Artifacts that are deployed onto a Node. This association specializes the supplier association. + * + * @return the value of the 'Deployed Artifact' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDeployment_DeployedArtifact() + * @model type="org.eclipse.uml2.uml.DeployedArtifact" ordered="false" + * @generated + */ + List getDeployedArtifacts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.DeployedArtifact} with the specified 'Name' from the 'Deployed Artifact' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.DeployedArtifact} to retrieve. + * @return The {@link org.eclipse.uml2.uml.DeployedArtifact} with the specified 'Name', or null. + * @see #getDeployedArtifacts() + * @generated + */ + DeployedArtifact getDeployedArtifact(String name); + + /** + * Returns the value of the 'Configuration' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.DeploymentSpecification}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.DeploymentSpecification#getDeployment Deployment}'. + * + * + * + * The specification of properties that parameterize the deployment and execution of one or more Artifacts. This association is specialized from the ownedMember association. + * + * @return the value of the 'Configuration' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDeployment_Configuration() + * @see org.eclipse.uml2.uml.DeploymentSpecification#getDeployment + * @model type="org.eclipse.uml2.uml.DeploymentSpecification" opposite="deployment" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getConfigurations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.DeploymentSpecification} and appends it to the 'Configuration' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.DeploymentSpecification}. + * @see #getConfigurations() + * @generated + */ + DeploymentSpecification createConfiguration(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.DeploymentSpecification} with the specified 'Name' from the 'Configuration' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.DeploymentSpecification} to retrieve. + * @return The {@link org.eclipse.uml2.uml.DeploymentSpecification} with the specified 'Name', or null. + * @see #getConfigurations() + * @generated + */ + DeploymentSpecification getConfiguration(String name); + + /** + * Returns the value of the 'Location' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.DeploymentTarget#getDeployments Deployment}'. + * + * + * + * The DeployedTarget which is the target of a Deployment. + * + * @return the value of the 'Location' container reference. + * @see #setLocation(DeploymentTarget) + * @see org.eclipse.uml2.uml.UMLPackage#getDeployment_Location() + * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployments + * @model opposite="deployment" required="true" ordered="false" + * @generated + */ + DeploymentTarget getLocation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Deployment#getLocation Location}' container reference. + * + * + * @param value the new value of the 'Location' container reference. + * @see #getLocation() + * @generated + */ + void setLocation(DeploymentTarget value); + +} // Deployment diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentSpecification.java new file mode 100644 index 00000000..fe6c6e64 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentSpecification.java @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentSpecification.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Deployment Specification'. + * + * + * + * In the metamodel, a DeploymentSpecification is a subtype of Artifact. It defines a set of deployment properties that are specific to a certain Container type. An instance of a DeploymentSpecification with specific values for these properties may be contained in a complex Artifact. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DeploymentSpecification#getDeploymentLocation Deployment Location}
  • + *
  • {@link org.eclipse.uml2.uml.DeploymentSpecification#getExecutionLocation Execution Location}
  • + *
  • {@link org.eclipse.uml2.uml.DeploymentSpecification#getDeployment Deployment}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentSpecification() + * @model + * @generated + */ +public interface DeploymentSpecification + extends Artifact { + + /** + * Returns the value of the 'Deployment Location' attribute. + * + * + * + * The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'. + * + * @return the value of the 'Deployment Location' attribute. + * @see #setDeploymentLocation(String) + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentSpecification_DeploymentLocation() + * @model required="true" ordered="false" + * @generated + */ + String getDeploymentLocation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DeploymentSpecification#getDeploymentLocation Deployment Location}' attribute. + * + * + * @param value the new value of the 'Deployment Location' attribute. + * @see #getDeploymentLocation() + * @generated + */ + void setDeploymentLocation(String value); + + /** + * Returns the value of the 'Execution Location' attribute. + * + * + * + * The location where a component Artifact executes. This may be a local or remote location. + * + * @return the value of the 'Execution Location' attribute. + * @see #setExecutionLocation(String) + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentSpecification_ExecutionLocation() + * @model required="true" ordered="false" + * @generated + */ + String getExecutionLocation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DeploymentSpecification#getExecutionLocation Execution Location}' attribute. + * + * + * @param value the new value of the 'Execution Location' attribute. + * @see #getExecutionLocation() + * @generated + */ + void setExecutionLocation(String value); + + /** + * Returns the value of the 'Deployment' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Deployment#getConfigurations Configuration}'. + * + * + * + * The deployment with which the DeploymentSpecification is associated. + * + * @return the value of the 'Deployment' container reference. + * @see #setDeployment(Deployment) + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentSpecification_Deployment() + * @see org.eclipse.uml2.uml.Deployment#getConfigurations + * @model opposite="configuration" ordered="false" + * @generated + */ + Deployment getDeployment(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DeploymentSpecification#getDeployment Deployment}' container reference. + * + * + * @param value the new value of the 'Deployment' container reference. + * @see #getDeployment() + * @generated + */ + void setDeployment(Deployment value); + + /** + * + * + * + * The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components). + * self.deployment->forAll (d | d.location.deployedElements->forAll (de | + * + * de.oclIsKindOf(Component))) + * + * @model + * @generated + */ + boolean validateDeployedElements(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment. + * result = self.deployment->forAll (d | d.location..oclIsKindOf(ExecutionEnvironment)) + * + * @model + * @generated + */ + boolean validateDeploymentTarget(DiagnosticChain diagnostics, Map context); + +} // DeploymentSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentTarget.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentTarget.java new file mode 100644 index 00000000..e3b80b56 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DeploymentTarget.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentTarget.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Deployment Target'. + * + * + * + * In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DeploymentTarget#getDeployments Deployment}
  • + *
  • {@link org.eclipse.uml2.uml.DeploymentTarget#getDeployedElements Deployed Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentTarget() + * @model abstract="true" + * @generated + */ +public interface DeploymentTarget + extends NamedElement { + + /** + * Returns the value of the 'Deployment' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Deployment}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Deployment#getLocation Location}'. + * + * + * + * The set of Deployments for a DeploymentTarget. + * + * @return the value of the 'Deployment' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentTarget_Deployment() + * @see org.eclipse.uml2.uml.Deployment#getLocation + * @model type="org.eclipse.uml2.uml.Deployment" opposite="location" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getDeployments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Deployment} and appends it to the 'Deployment' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Deployment}. + * @see #getDeployments() + * @generated + */ + Deployment createDeployment(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Deployment} with the specified 'Name' from the 'Deployment' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Deployment} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Deployment} with the specified 'Name', or null. + * @see #getDeployments() + * @generated + */ + Deployment getDeployment(String name); + + /** + * Returns the value of the 'Deployed Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageableElement}. + * + * + * + * The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget. + * + * @return the value of the 'Deployed Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDeploymentTarget_DeployedElement() + * @model type="org.eclipse.uml2.uml.PackageableElement" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getDeployedElements(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name' from the 'Deployed Element' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name', or null. + * @see #getDeployedElements() + * @generated + */ + PackageableElement getDeployedElement(String name); + +} // DeploymentTarget diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyLinkAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyLinkAction.java new file mode 100644 index 00000000..869e8f4c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyLinkAction.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestroyLinkAction.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Destroy Link Action'. + * + * + * + * This action destroys a link or a link object. Link objects can also be destroyed with DestroyObjectAction. The link is specified in the same way as link creation, even for link objects. This allows actions to remain unchanged when their associations are transformed from ordinary ones to association classes and vice versa. + * + * + * + * DestroyLinkAction uses a specialization of LinkEndData, called LinkEndDestructionData, to support ordered nonunique associations. The position of the link to be destroyed is specified at runtime by an additional input pin, which is required for ordered nonunique association ends and omitted for other kinds of ends. This is a positive integer giving the position of the link to destroy. + * + * + * + * DestroyLinkAction also uses LinkEndDestructionData to support the destruction of duplicate links of the association on ends that are nonunique. This option is available on an end-by-end basis, and causes all duplicate links of the association emanating from the specified ends to be destroyed. + * + * + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDestroyLinkAction() + * @model + * @generated + */ +public interface DestroyLinkAction + extends WriteLinkAction { +} // DestroyLinkAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyObjectAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyObjectAction.java new file mode 100644 index 00000000..c89f4050 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestroyObjectAction.java @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestroyObjectAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Destroy Object Action'. + * + * + * + * This action destroys the object on its input pin at runtime. The object may be a link object, in which case the semantics of DestroyLinkAction also applies. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DestroyObjectAction#isDestroyLinks Is Destroy Links}
  • + *
  • {@link org.eclipse.uml2.uml.DestroyObjectAction#isDestroyOwnedObjects Is Destroy Owned Objects}
  • + *
  • {@link org.eclipse.uml2.uml.DestroyObjectAction#getTarget Target}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDestroyObjectAction() + * @model + * @generated + */ +public interface DestroyObjectAction + extends Action { + + /** + * Returns the value of the 'Is Destroy Links' attribute. + * The default value is "false". + * + * + * + * Specifies whether links in which the object participates are destroyed along with the object. + * + * @return the value of the 'Is Destroy Links' attribute. + * @see #setIsDestroyLinks(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getDestroyObjectAction_IsDestroyLinks() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDestroyLinks(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DestroyObjectAction#isDestroyLinks Is Destroy Links}' attribute. + * + * + * @param value the new value of the 'Is Destroy Links' attribute. + * @see #isDestroyLinks() + * @generated + */ + void setIsDestroyLinks(boolean value); + + /** + * Returns the value of the 'Is Destroy Owned Objects' attribute. + * The default value is "false". + * + * + * + * Specifies whether objects owned by the object are destroyed along with the object. + * + * @return the value of the 'Is Destroy Owned Objects' attribute. + * @see #setIsDestroyOwnedObjects(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getDestroyObjectAction_IsDestroyOwnedObjects() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDestroyOwnedObjects(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DestroyObjectAction#isDestroyOwnedObjects Is Destroy Owned Objects}' attribute. + * + * + * @param value the new value of the 'Is Destroy Owned Objects' attribute. + * @see #isDestroyOwnedObjects() + * @generated + */ + void setIsDestroyOwnedObjects(boolean value); + + /** + * Returns the value of the 'Target' containment reference. + * + * + * + * The input pin providing the object to be destroyed. + * + * @return the value of the 'Target' containment reference. + * @see #setTarget(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getDestroyObjectAction_Target() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DestroyObjectAction#getTarget Target}' containment reference. + * + * + * @param value the new value of the 'Target' containment reference. + * @see #getTarget() + * @generated + */ + void setTarget(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(); + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.target.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The input pin has no type. + * self.target.type->size() = 0 + * + * @model + * @generated + */ + boolean validateNoType(DiagnosticChain diagnostics, Map context); + +} // DestroyObjectAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestructionEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestructionEvent.java new file mode 100644 index 00000000..82cc2047 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DestructionEvent.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestructionEvent.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Destruction Event'. + * + * + * + * A DestructionEvent models the destruction of an object. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDestructionEvent() + * @model + * @generated + */ +public interface DestructionEvent + extends Event { + + /** + * + * + * + * No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand. + * true + * + * @model + * @generated + */ + boolean validateNoOccurrenceSpecificationsBelow( + DiagnosticChain diagnostics, Map context); + +} // DestructionEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Device.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Device.java new file mode 100644 index 00000000..85656930 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Device.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Device.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Device'. + * + * + * + * A Device is a physical computational resource with processing capability upon which artifacts may be deployed for execution. Devices may be complex, i.e. they may consist of other devices. In the metamodel, a Device is a subclass of Node. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDevice() + * @model + * @generated + */ +public interface Device + extends Node { +} // Device diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DirectedRelationship.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DirectedRelationship.java new file mode 100644 index 00000000..e8414340 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DirectedRelationship.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DirectedRelationship.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Directed Relationship'. + * + * + * + * A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DirectedRelationship#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.DirectedRelationship#getTargets Target}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDirectedRelationship() + * @model abstract="true" + * @generated + */ +public interface DirectedRelationship + extends Relationship { + + /** + * Returns the value of the 'Source' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Element}. + * + * + * + * Specifies the sources of the DirectedRelationship. + * + * @return the value of the 'Source' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDirectedRelationship_Source() + * @model type="org.eclipse.uml2.uml.Element" required="true" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getSources(); + + /** + * Returns the value of the 'Target' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Element}. + * + * + * + * Specifies the targets of the DirectedRelationship. + * + * @return the value of the 'Target' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDirectedRelationship_Target() + * @model type="org.eclipse.uml2.uml.Element" required="true" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getTargets(); + +} // DirectedRelationship diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Duration.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Duration.java new file mode 100644 index 00000000..6d77d81e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Duration.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Duration.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Duration'. + * + * + * + * A duration defines a value specification that specifies the temporal distance between two time expressions that specify time instants. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Duration#isFirstTime First Time}
  • + *
  • {@link org.eclipse.uml2.uml.Duration#getEvents Event}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDuration() + * @model + * @generated + */ +public interface Duration + extends ValueSpecification { + + /** + * Returns the value of the 'First Time' attribute. + * The default value is "true". + * + * + * + * If the duration is between times of two NamedElements, there are two Boolean attributes, one for the start of the duration and one for the end of the duration. For each of these it holds that firstTime is true if the time information is associated with the first point in time of the NamedElement referenced by event, and false if it represents the last point in time of the NamedElement. If there is only one NamedElement referenced by event, then this attribute is irrelevant. + * + * @return the value of the 'First Time' attribute. + * @see #setFirstTime(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getDuration_FirstTime() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isFirstTime(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Duration#isFirstTime First Time}' attribute. + * + * + * @param value the new value of the 'First Time' attribute. + * @see #isFirstTime() + * @generated + */ + void setFirstTime(boolean value); + + /** + * Returns the value of the 'Event' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * Refers to the specification(s) that describes the starting TimeExpression and the ending TimeExpression of the Duration. If only one NamedElement is referenced, the duration is from the first point in time of that NamedElement until the last point in time of that NamedElement. + * + * @return the value of the 'Event' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getDuration_Event() + * @model type="org.eclipse.uml2.uml.NamedElement" upper="2" ordered="false" + * @generated + */ + List getEvents(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Event' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getEvents() + * @generated + */ + NamedElement getEvent(String name); + +} // Duration diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationConstraint.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationConstraint.java new file mode 100644 index 00000000..6e28fefa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationConstraint.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationConstraint.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Duration Constraint'. + * + * + * + * A DurationConstraint defines a Constraint that refers to a DurationInterval. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDurationConstraint() + * @model + * @generated + */ +public interface DurationConstraint + extends IntervalConstraint { +} // DurationConstraint diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationInterval.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationInterval.java new file mode 100644 index 00000000..df11295e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationInterval.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationInterval.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Duration Interval'. + * + * + * + * A DurationInterval defines the range between two Durations. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getDurationInterval() + * @model + * @generated + */ +public interface DurationInterval + extends Interval { +} // DurationInterval diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationObservationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationObservationAction.java new file mode 100644 index 00000000..14acff9b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/DurationObservationAction.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationObservationAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Duration Observation Action'. + * + * + * + * A DurationObservationAction defines an action that observes duration in time and writes this value to a structural feature. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DurationObservationAction#getDuration Duration}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getDurationObservationAction() + * @model + * @generated + */ +public interface DurationObservationAction + extends WriteStructuralFeatureAction { + + /** + * Returns the value of the 'Duration' reference. + * + * + * + * Represents the measured Duration + * + * @return the value of the 'Duration' reference. + * @see #setDuration(Duration) + * @see org.eclipse.uml2.uml.UMLPackage#getDurationObservationAction_Duration() + * @model resolveProxies="false" required="true" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + Duration getDuration(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.DurationObservationAction#getDuration Duration}' reference. + * + * + * @param value the new value of the 'Duration' reference. + * @see #getDuration() + * @generated + */ + void setDuration(Duration value); + + /** + * + * + * + * The value of a DurationObservationAction’s input must be a Duration. + * self.value.value.oclIsKindOf(Duration) + * + * @model + * @generated + */ + boolean validateInputValueDuration(DiagnosticChain diagnostics, Map context); + +} // DurationObservationAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Element.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Element.java new file mode 100644 index 00000000..649b89c8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Element.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Element.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EModelElement; +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Element'. + * + * + * + * An element can own comments. + * Element is an abstract metaclass with no superclass. It is used as the common superclass for all metaclasses in the infrastructure library. Element has a derived composition association to itself to support the general capability for elements to own other elements. + * An element is a constituent of a model. An element can own comments. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Element#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.Element#getOwner Owner}
  • + *
  • {@link org.eclipse.uml2.uml.Element#getOwnedComments Owned Comment}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getElement() + * @model abstract="true" + * @generated + */ +public interface Element + extends EObject, EModelElement { + + /** + * Returns the value of the 'Owned Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Element}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Element#getOwner Owner}'. + * + * + * + * The Elements owned by this element. + * + * @return the value of the 'Owned Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getElement_OwnedElement() + * @see org.eclipse.uml2.uml.Element#getOwner + * @model type="org.eclipse.uml2.uml.Element" opposite="owner" resolveProxies="false" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getOwnedElements(); + + /** + * Returns the value of the 'Owner' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Element#getOwnedElements Owned Element}'. + * + * + * + * The Element that owns this element. + * + * @return the value of the 'Owner' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getElement_Owner() + * @see org.eclipse.uml2.uml.Element#getOwnedElements + * @model opposite="ownedElement" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + Element getOwner(); + + /** + * Returns the value of the 'Owned Comment' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Comment}. + * + * + * + * The Comments owned by this element. + * + * @return the value of the 'Owned Comment' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getElement_OwnedComment() + * @model type="org.eclipse.uml2.uml.Comment" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedComments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Comment} and appends it to the 'Owned Comment' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Comment}. + * @see #getOwnedComments() + * @generated + */ + Comment createOwnedComment(); + + /** + * + * + * + * An element may not directly or indirectly own itself. + * not self.allOwnedElements()->includes(self) + * + * @model + * @generated + */ + boolean validateNotOwnSelf(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Elements that must be owned must have an owner. + * self.mustBeOwned() implies owner->notEmpty() + * + * @model + * @generated + */ + boolean validateHasOwner(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The query allOwnedElements() gives all of the direct and indirect owned elements of an element. + * result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements())) + * + * @model type="org.eclipse.uml2.uml.Element" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allOwnedElements(); + + /** + * + * + * + * The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation. + * result = true + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean mustBeOwned(); + +} // Element diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java new file mode 100644 index 00000000..a8b12fcb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ElementImport.java @@ -0,0 +1,206 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ElementImport.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Element Import'. + * + * + * + * An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It is also possible to control whether the imported element can be further imported. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ElementImport#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.ElementImport#getAlias Alias}
  • + *
  • {@link org.eclipse.uml2.uml.ElementImport#getImportedElement Imported Element}
  • + *
  • {@link org.eclipse.uml2.uml.ElementImport#getImportingNamespace Importing Namespace}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getElementImport() + * @model + * @generated + */ +public interface ElementImport + extends DirectedRelationship { + + /** + * Returns the value of the 'Visibility' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.VisibilityKind}. + * + * + * + * Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import. + * + * @return the value of the 'Visibility' attribute. + * @see org.eclipse.uml2.uml.VisibilityKind + * @see #setVisibility(VisibilityKind) + * @see org.eclipse.uml2.uml.UMLPackage#getElementImport_Visibility() + * @model required="true" ordered="false" + * @generated + */ + VisibilityKind getVisibility(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ElementImport#getVisibility Visibility}' attribute. + * + * + * @param value the new value of the 'Visibility' attribute. + * @see org.eclipse.uml2.uml.VisibilityKind + * @see #getVisibility() + * @generated + */ + void setVisibility(VisibilityKind value); + + /** + * Returns the value of the 'Alias' attribute. + * + * + * + * Specifies the name that should be added to the namespace of the importing Package in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used. + * Specifies the name that should be added to the namespace of the importing Pack-age in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used. + * + * @return the value of the 'Alias' attribute. + * @see #setAlias(String) + * @see org.eclipse.uml2.uml.UMLPackage#getElementImport_Alias() + * @model ordered="false" + * @generated + */ + String getAlias(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ElementImport#getAlias Alias}' attribute. + * + * + * @param value the new value of the 'Alias' attribute. + * @see #getAlias() + * @generated + */ + void setAlias(String value); + + /** + * Returns the value of the 'Imported Element' reference. + * + * + * + * Specifies the PackageableElement whose name is to be added to a Namespace. + * + * @return the value of the 'Imported Element' reference. + * @see #setImportedElement(PackageableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getElementImport_ImportedElement() + * @model required="true" ordered="false" + * @generated + */ + PackageableElement getImportedElement(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ElementImport#getImportedElement Imported Element}' reference. + * + * + * @param value the new value of the 'Imported Element' reference. + * @see #getImportedElement() + * @generated + */ + void setImportedElement(PackageableElement value); + + /** + * Returns the value of the 'Importing Namespace' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Namespace#getElementImports Element Import}'. + * + * + * + * Specifies the Namespace that imports a PackageableElement from another Package. + * + * @return the value of the 'Importing Namespace' container reference. + * @see #setImportingNamespace(Namespace) + * @see org.eclipse.uml2.uml.UMLPackage#getElementImport_ImportingNamespace() + * @see org.eclipse.uml2.uml.Namespace#getElementImports + * @model opposite="elementImport" required="true" ordered="false" + * @generated + */ + Namespace getImportingNamespace(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ElementImport#getImportingNamespace Importing Namespace}' container reference. + * + * + * @param value the new value of the 'Importing Namespace' container reference. + * @see #getImportingNamespace() + * @generated + */ + void setImportingNamespace(Namespace value); + + /** + * + * + * + * The visibility of an ElementImport is either public or private. + * self.visibility = #public or self.visibility = #private + * + * @model + * @generated + */ + boolean validateVisibilityPublicOrPrivate(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The visibility of an ElementImport is either public or private. + * self.visibility = #public or self.visibility = #private + * + * @model + * @generated + */ + boolean validateVisibilityOrPrivate(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An importedElement has either public visibility or no visibility at all. + * self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public + * + * @model + * @generated + */ + boolean validateImportedElementIsPublic(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace. + * result = if self.alias->notEmpty() then + * self.alias + * else + * self.importedElement.name + * endif + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + String getName(); + +} // ElementImport diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EncapsulatedClassifier.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EncapsulatedClassifier.java new file mode 100644 index 00000000..7e2a4755 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EncapsulatedClassifier.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: EncapsulatedClassifier.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Encapsulated Classifier'. + * + * + * + * Extends a classifier with the ability to own ports as specific and type checked interaction points. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.EncapsulatedClassifier#getOwnedPorts Owned Port}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getEncapsulatedClassifier() + * @model abstract="true" + * @generated + */ +public interface EncapsulatedClassifier + extends StructuredClassifier { + + /** + * Returns the value of the 'Owned Port' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Port}. + * + * + * + * References a set of ports that an encapsulated classifier owns. + * + * @return the value of the 'Owned Port' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getEncapsulatedClassifier_OwnedPort() + * @model type="org.eclipse.uml2.uml.Port" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedPorts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Port} with the specified 'Name' from the 'Owned Port' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Port} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Port} with the specified 'Name', or null. + * @see #getOwnedPorts() + * @generated + */ + Port getOwnedPort(String name); + +} // EncapsulatedClassifier diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Enumeration.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Enumeration.java new file mode 100644 index 00000000..ad783499 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Enumeration.java @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Enumeration.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Enumeration'. + * + * + * + * Enumeration is a kind of data type, whose instances may be any of a number of predefined enumeration literals. + * + * It is possible to extend the set of applicable enumeration literals in other packages or profiles. + * + * + * Enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals. + * + * It is possible to extend the set of applicable enumeration literals in other packages or profiles. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Enumeration#getOwnedLiterals Owned Literal}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getEnumeration() + * @model + * @generated + */ +public interface Enumeration + extends DataType { + + /** + * Returns the value of the 'Owned Literal' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.EnumerationLiteral}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.EnumerationLiteral#getEnumeration Enumeration}'. + * + * + * + * The ordered collection of literals for the enumeration. + * The ordered set of literals for this Enumeration. + * + * @return the value of the 'Owned Literal' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getEnumeration_OwnedLiteral() + * @see org.eclipse.uml2.uml.EnumerationLiteral#getEnumeration + * @model type="org.eclipse.uml2.uml.EnumerationLiteral" opposite="enumeration" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedLiterals(); + + /** + * Creates a {@link org.eclipse.uml2.uml.EnumerationLiteral} and appends it to the 'Owned Literal' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.EnumerationLiteral}. + * @see #getOwnedLiterals() + * @generated + */ + EnumerationLiteral createOwnedLiteral(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified 'Name' from the 'Owned Literal' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.EnumerationLiteral} to retrieve. + * @return The {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified 'Name', or null. + * @see #getOwnedLiterals() + * @generated + */ + EnumerationLiteral getOwnedLiteral(String name); + +} // Enumeration diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EnumerationLiteral.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EnumerationLiteral.java new file mode 100644 index 00000000..dcfd2423 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/EnumerationLiteral.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: EnumerationLiteral.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Enumeration Literal'. + * + * + * + * An enumeration literal is a value of an enumeration. + * An enumeration literal is a user-defined data value for an enumeration. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.EnumerationLiteral#getEnumeration Enumeration}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getEnumerationLiteral() + * @model + * @generated + */ +public interface EnumerationLiteral + extends InstanceSpecification { + + /** + * Returns the value of the 'Enumeration' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Enumeration#getOwnedLiterals Owned Literal}'. + * + * + * + * The enumeration that this literal belongs to. + * The Enumeration that this EnumerationLiteral is a member of. + * + * @return the value of the 'Enumeration' container reference. + * @see #setEnumeration(Enumeration) + * @see org.eclipse.uml2.uml.UMLPackage#getEnumerationLiteral_Enumeration() + * @see org.eclipse.uml2.uml.Enumeration#getOwnedLiterals + * @model opposite="ownedLiteral" ordered="false" + * @generated + */ + Enumeration getEnumeration(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.EnumerationLiteral#getEnumeration Enumeration}' container reference. + * + * + * @param value the new value of the 'Enumeration' container reference. + * @see #getEnumeration() + * @generated + */ + void setEnumeration(Enumeration value); + +} // EnumerationLiteral diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Event.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Event.java new file mode 100644 index 00000000..3dfc139b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Event.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Event.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Event'. + * + * + * + * An event is the specification of some occurrence that may potentially trigger effects by an object. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getEvent() + * @model abstract="true" + * @generated + */ +public interface Event + extends PackageableElement { +} // Event diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExceptionHandler.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExceptionHandler.java new file mode 100644 index 00000000..9bf9d03a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExceptionHandler.java @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExceptionHandler.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Exception Handler'. + * + * + * + * An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#getHandlerBody Handler Body}
  • + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#getExceptionInput Exception Input}
  • + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#getExceptionTypes Exception Type}
  • + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#getProtectedNode Protected Node}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExceptionHandler() + * @model + * @generated + */ +public interface ExceptionHandler + extends Element { + + /** + * Returns the value of the 'Handler Body' reference. + * + * + * + * A node that is executed if the handler satisfies an uncaught exception. + * + * @return the value of the 'Handler Body' reference. + * @see #setHandlerBody(ExecutableNode) + * @see org.eclipse.uml2.uml.UMLPackage#getExceptionHandler_HandlerBody() + * @model required="true" ordered="false" + * @generated + */ + ExecutableNode getHandlerBody(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExceptionHandler#getHandlerBody Handler Body}' reference. + * + * + * @param value the new value of the 'Handler Body' reference. + * @see #getHandlerBody() + * @generated + */ + void setHandlerBody(ExecutableNode value); + + /** + * Returns the value of the 'Exception Input' reference. + * + * + * + * An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute. + * + * @return the value of the 'Exception Input' reference. + * @see #setExceptionInput(ObjectNode) + * @see org.eclipse.uml2.uml.UMLPackage#getExceptionHandler_ExceptionInput() + * @model required="true" ordered="false" + * @generated + */ + ObjectNode getExceptionInput(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExceptionHandler#getExceptionInput Exception Input}' reference. + * + * + * @param value the new value of the 'Exception Input' reference. + * @see #getExceptionInput() + * @generated + */ + void setExceptionInput(ObjectNode value); + + /** + * Returns the value of the 'Exception Type' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body. + * + * @return the value of the 'Exception Type' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getExceptionHandler_ExceptionType() + * @model type="org.eclipse.uml2.uml.Classifier" required="true" ordered="false" + * @generated + */ + List getExceptionTypes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Exception Type' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getExceptionTypes() + * @generated + */ + Classifier getExceptionType(String name); + + /** + * Returns the value of the 'Protected Node' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExecutableNode#getHandlers Handler}'. + * + * + * + * The node protected by the handler. The handler is examined if an exception propagates to the outside of the node. + * + * @return the value of the 'Protected Node' container reference. + * @see #setProtectedNode(ExecutableNode) + * @see org.eclipse.uml2.uml.UMLPackage#getExceptionHandler_ProtectedNode() + * @see org.eclipse.uml2.uml.ExecutableNode#getHandlers + * @model opposite="handler" required="true" ordered="false" + * @generated + */ + ExecutableNode getProtectedNode(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExceptionHandler#getProtectedNode Protected Node}' container reference. + * + * + * @param value the new value of the 'Protected Node' container reference. + * @see #getProtectedNode() + * @generated + */ + void setProtectedNode(ExecutableNode value); + + /** + * + * + * + * The exception handler and its input object node are not the source or target of any edge. + * true + * + * @model + * @generated + */ + boolean validateExceptionBody(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The result pins of the exception handler body must correspond in number and types to the result pins of the protected node. + * true + * + * @model + * @generated + */ + boolean validateResultPins(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The handler body has one input, and that input is the same as the exception input. + * true + * + * @model + * @generated + */ + boolean validateOneInput(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa. + * true + * + * @model + * @generated + */ + boolean validateEdgeSourceTarget(DiagnosticChain diagnostics, Map context); + +} // ExceptionHandler diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java new file mode 100644 index 00000000..ba83d4ec --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutableNode.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutableNode.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Executable Node'. + * + * + * + * An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExecutableNode#getHandlers Handler}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExecutableNode() + * @model abstract="true" + * @generated + */ +public interface ExecutableNode + extends ActivityNode { + + /** + * Returns the value of the 'Handler' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExceptionHandler}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExceptionHandler#getProtectedNode Protected Node}'. + * + * + * + * A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node. + * + * @return the value of the 'Handler' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getExecutableNode_Handler() + * @see org.eclipse.uml2.uml.ExceptionHandler#getProtectedNode + * @model type="org.eclipse.uml2.uml.ExceptionHandler" opposite="protectedNode" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getHandlers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ExceptionHandler} and appends it to the 'Handler' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ExceptionHandler}. + * @see #getHandlers() + * @generated + */ + ExceptionHandler createHandler(); + +} // ExecutableNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEnvironment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEnvironment.java new file mode 100644 index 00000000..f9f75c3b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEnvironment.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionEnvironment.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Execution Environment'. + * + * + * + * In the metamodel, a ExecutionEnvironment is a subclass of Node. It is usually part of a general Node, representing the physical hardware environment on which the ExecutionEnvironment resides. In that environment, the ExecutionEnvironment implements a standard set of services that Components require at execution time (at the modeling level these services are usually implicit). For each component Deployment, aspects of these services may be determined by properties in a DeploymentSpecification for a particular kind of ExecutionEnvironment. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionEnvironment() + * @model + * @generated + */ +public interface ExecutionEnvironment + extends Node { +} // ExecutionEnvironment diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEvent.java new file mode 100644 index 00000000..3b3f5f41 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionEvent.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionEvent.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Execution Event'. + * + * + * + * An ExecutionEvent models the start or finish of an execution occurrence. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionEvent() + * @model + * @generated + */ +public interface ExecutionEvent + extends Event { +} // ExecutionEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionOccurrenceSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionOccurrenceSpecification.java new file mode 100644 index 00000000..70a524a0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionOccurrenceSpecification.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionOccurrenceSpecification.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Execution Occurrence Specification'. + * + * + * + * An ExecutionOccurrenceSpecification represents moments in time at which actions or behaviors start or finish. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExecutionOccurrenceSpecification#getExecution Execution}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionOccurrenceSpecification() + * @model + * @generated + */ +public interface ExecutionOccurrenceSpecification + extends OccurrenceSpecification { + + /** + * Returns the value of the 'Execution' reference. + * + * + * + * References the execution specification describing the execution that is started or finished at this execution event. + * + * @return the value of the 'Execution' reference. + * @see #setExecution(ExecutionSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionOccurrenceSpecification_Execution() + * @model required="true" ordered="false" + * @generated + */ + ExecutionSpecification getExecution(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExecutionOccurrenceSpecification#getExecution Execution}' reference. + * + * + * @param value the new value of the 'Execution' reference. + * @see #getExecution() + * @generated + */ + void setExecution(ExecutionSpecification value); + +} // ExecutionOccurrenceSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionSpecification.java new file mode 100644 index 00000000..e62de9ca --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExecutionSpecification.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionSpecification.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Execution Specification'. + * + * + * + * An ExecutionSpecification is a specification of the execution of a unit of behavior or action within the Lifeline. The duration of an ExecutionSpecification is represented by two ExecutionOccurrenceSpecifications, the start ExecutionOccurrenceSpecification and the finish ExecutionOccurrenceSpecification. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExecutionSpecification#getStart Start}
  • + *
  • {@link org.eclipse.uml2.uml.ExecutionSpecification#getFinish Finish}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionSpecification() + * @model abstract="true" + * @generated + */ +public interface ExecutionSpecification + extends InteractionFragment { + + /** + * Returns the value of the 'Start' reference. + * + * + * + * References the OccurrenceSpecification that designates the start of the Action or Behavior + * + * @return the value of the 'Start' reference. + * @see #setStart(ExecutionOccurrenceSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionSpecification_Start() + * @model required="true" ordered="false" + * @generated + */ + ExecutionOccurrenceSpecification getStart(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExecutionSpecification#getStart Start}' reference. + * + * + * @param value the new value of the 'Start' reference. + * @see #getStart() + * @generated + */ + void setStart(ExecutionOccurrenceSpecification value); + + /** + * Returns the value of the 'Finish' reference. + * + * + * + * References the OccurrenceSpecification that designates the finish of the Action or Behavior. + * + * @return the value of the 'Finish' reference. + * @see #setFinish(ExecutionOccurrenceSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getExecutionSpecification_Finish() + * @model required="true" ordered="false" + * @generated + */ + ExecutionOccurrenceSpecification getFinish(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExecutionSpecification#getFinish Finish}' reference. + * + * + * @param value the new value of the 'Finish' reference. + * @see #getFinish() + * @generated + */ + void setFinish(ExecutionOccurrenceSpecification value); + + /** + * + * + * + * The startEvent and the finishEvent must be on the same Lifeline + * start.lifeline = finish.lifeline + * + * @model + * @generated + */ + boolean validateSameLifeline(DiagnosticChain diagnostics, Map context); + +} // ExecutionSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionKind.java new file mode 100644 index 00000000..d47289cf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionKind.java @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpansionKind.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Expansion Kind', + * and utility methods for working with them. + * + * + * ExpansionKind is an enumeration type used to specify how multiple executions of an expansion region interact. + * + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionKind() + * @model + * @generated + */ +public final class ExpansionKind + extends AbstractEnumerator { + + /** + * The 'Parallel' literal value. + * + * + * + * The executions are independent. They may be executed concurrently. + * + * @see #PARALLEL_LITERAL + * @model name="parallel" + * @generated + * @ordered + */ + public static final int PARALLEL = 0; + + /** + * The 'Iterative' literal value. + * + * + * + * The executions are dependent and must be executed one at a time, in order of the collection elements. + * + * @see #ITERATIVE_LITERAL + * @model name="iterative" + * @generated + * @ordered + */ + public static final int ITERATIVE = 1; + + /** + * The 'Stream' literal value. + * + * + * + * A stream of collection elements flows into a single execution, in order of the collection elements. + * + * @see #STREAM_LITERAL + * @model name="stream" + * @generated + * @ordered + */ + public static final int STREAM = 2; + + /** + * The 'Parallel' literal object. + * + * + * @see #PARALLEL + * @generated + * @ordered + */ + public static final ExpansionKind PARALLEL_LITERAL = new ExpansionKind( + PARALLEL, "parallel", "parallel"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Iterative' literal object. + * + * + * @see #ITERATIVE + * @generated + * @ordered + */ + public static final ExpansionKind ITERATIVE_LITERAL = new ExpansionKind( + ITERATIVE, "iterative", "iterative"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Stream' literal object. + * + * + * @see #STREAM + * @generated + * @ordered + */ + public static final ExpansionKind STREAM_LITERAL = new ExpansionKind( + STREAM, "stream", "stream"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Expansion Kind' enumerators. + * + * + * @generated + */ + private static final ExpansionKind[] VALUES_ARRAY = new ExpansionKind[]{ + PARALLEL_LITERAL, ITERATIVE_LITERAL, STREAM_LITERAL,}; + + /** + * A public read-only list of all the 'Expansion Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Expansion Kind' literal with the specified literal value. + * + * + * @generated + */ + public static ExpansionKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ExpansionKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Expansion Kind' literal with the specified name. + * + * + * @generated + */ + public static ExpansionKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ExpansionKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Expansion Kind' literal with the specified integer value. + * + * + * @generated + */ + public static ExpansionKind get(int value) { + switch (value) { + case PARALLEL : + return PARALLEL_LITERAL; + case ITERATIVE : + return ITERATIVE_LITERAL; + case STREAM : + return STREAM_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ExpansionKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //ExpansionKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionNode.java new file mode 100644 index 00000000..8caead0d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionNode.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpansionNode.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Expansion Node'. + * + * + * + * An expansion node is an object node used to indicate a flow across the boundary of an expansion region. A flow into a region contains a collection that is broken into its individual elements inside the region, which is executed once per element. A flow out of a region combines individual elements into a collection for use outside the region. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsOutput Region As Output}
  • + *
  • {@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsInput Region As Input}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionNode() + * @model + * @generated + */ +public interface ExpansionNode + extends ObjectNode { + + /** + * Returns the value of the 'Region As Output' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExpansionRegion#getOutputElements Output Element}'. + * + * + * + * The expansion region for which the node is an output. + * + * @return the value of the 'Region As Output' reference. + * @see #setRegionAsOutput(ExpansionRegion) + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionNode_RegionAsOutput() + * @see org.eclipse.uml2.uml.ExpansionRegion#getOutputElements + * @model opposite="outputElement" ordered="false" + * @generated + */ + ExpansionRegion getRegionAsOutput(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsOutput Region As Output}' reference. + * + * + * @param value the new value of the 'Region As Output' reference. + * @see #getRegionAsOutput() + * @generated + */ + void setRegionAsOutput(ExpansionRegion value); + + /** + * Returns the value of the 'Region As Input' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExpansionRegion#getInputElements Input Element}'. + * + * + * + * The expansion region for which the node is an input. + * + * @return the value of the 'Region As Input' reference. + * @see #setRegionAsInput(ExpansionRegion) + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionNode_RegionAsInput() + * @see org.eclipse.uml2.uml.ExpansionRegion#getInputElements + * @model opposite="inputElement" ordered="false" + * @generated + */ + ExpansionRegion getRegionAsInput(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsInput Region As Input}' reference. + * + * + * @param value the new value of the 'Region As Input' reference. + * @see #getRegionAsInput() + * @generated + */ + void setRegionAsInput(ExpansionRegion value); + +} // ExpansionNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionRegion.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionRegion.java new file mode 100644 index 00000000..632e4aef --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExpansionRegion.java @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpansionRegion.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Expansion Region'. + * + * + * + * An expansion region is a strictly nested region of an activity with explicit input and outputs (modeled as ExpansionNodes). Each input is a collection of values. If there are multiple inputs, each of them must hold the same kind of collection, although the types of the elements in the different collections may vary. The expansion region is executed once for each element (or position) in the input collection. + * + * + * + * The number of output collections can differ from the number of input collections. On each execution of the region, an output value from the region is inserted into an output collection at the same position as the input elements. If the region execution ends with no output, then nothing is added to the output collection. When this happens the output collection will not have the same number of elements as the input collections, the region acts as a filter. If all the executions provide an output to the collection, then the output collections will have the same number of elements as the input collections. + * + * + * + * The inputs and outputs to an expansion region are modeled as ExpansionNodes. From "outside" of the region, the values on these nodes appear as collections. From "inside" the region the values appear as elements of the collections. Object flow edges connect pins outside the region to input and output expansion nodes as collections. Object flow edges connect pins inside the region to input and output expansion nodes as individual elements. From the inside of the region, these nodes are visible as individual values. If an expansion node has a name, it is the name of the individual element within the region. + * + * + * + * Any object flow edges that cross the boundary of the region, without passing through expansion nodes, provide values that are fixed within the different executions of the region. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExpansionRegion#getMode Mode}
  • + *
  • {@link org.eclipse.uml2.uml.ExpansionRegion#getInputElements Input Element}
  • + *
  • {@link org.eclipse.uml2.uml.ExpansionRegion#getOutputElements Output Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionRegion() + * @model + * @generated + */ +public interface ExpansionRegion + extends StructuredActivityNode { + + /** + * Returns the value of the 'Mode' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.ExpansionKind}. + * + * + * + * The way in which the executions interact: + * + * parallel: all interactions are independent + * + * iterative: the interactions occur in order of the elements + * + * stream: a stream of values flows into a single execution + * + * + * + * @return the value of the 'Mode' attribute. + * @see org.eclipse.uml2.uml.ExpansionKind + * @see #setMode(ExpansionKind) + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionRegion_Mode() + * @model required="true" ordered="false" + * @generated + */ + ExpansionKind getMode(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExpansionRegion#getMode Mode}' attribute. + * + * + * @param value the new value of the 'Mode' attribute. + * @see org.eclipse.uml2.uml.ExpansionKind + * @see #getMode() + * @generated + */ + void setMode(ExpansionKind value); + + /** + * Returns the value of the 'Input Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExpansionNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsInput Region As Input}'. + * + * + * + * An object node that holds a separate element of the input collection during each of the multiple executions of the region. + * + * @return the value of the 'Input Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionRegion_InputElement() + * @see org.eclipse.uml2.uml.ExpansionNode#getRegionAsInput + * @model type="org.eclipse.uml2.uml.ExpansionNode" opposite="regionAsInput" required="true" ordered="false" + * @generated + */ + List getInputElements(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExpansionNode} with the specified 'Name' from the 'Input Element' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExpansionNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExpansionNode} with the specified 'Name', or null. + * @see #getInputElements() + * @generated + */ + ExpansionNode getInputElement(String name); + + /** + * Returns the value of the 'Output Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExpansionNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsOutput Region As Output}'. + * + * + * + * An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete. + * + * @return the value of the 'Output Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getExpansionRegion_OutputElement() + * @see org.eclipse.uml2.uml.ExpansionNode#getRegionAsOutput + * @model type="org.eclipse.uml2.uml.ExpansionNode" opposite="regionAsOutput" ordered="false" + * @generated + */ + List getOutputElements(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExpansionNode} with the specified 'Name' from the 'Output Element' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExpansionNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExpansionNode} with the specified 'Name', or null. + * @see #getOutputElements() + * @generated + */ + ExpansionNode getOutputElement(String name); + + /** + * + * + * + * An ExpansionRegion must have one or more argument ExpansionNodes and zero or more result ExpansionNodes. + * true + * + * @model + * @generated + */ + boolean validateExpansionNodes(DiagnosticChain diagnostics, Map context); + +} // ExpansionRegion diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java new file mode 100644 index 00000000..eaa214b1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Expression.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Expression.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Expression'. + * + * + * + * An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context. + * An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Expression#getSymbol Symbol}
  • + *
  • {@link org.eclipse.uml2.uml.Expression#getOperands Operand}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExpression() + * @model + * @generated + */ +public interface Expression + extends ValueSpecification { + + /** + * Returns the value of the 'Symbol' attribute. + * + * + * + * The symbol associated with the node in the expression tree. + * + * @return the value of the 'Symbol' attribute. + * @see #setSymbol(String) + * @see org.eclipse.uml2.uml.UMLPackage#getExpression_Symbol() + * @model required="true" ordered="false" + * @generated + */ + String getSymbol(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Expression#getSymbol Symbol}' attribute. + * + * + * @param value the new value of the 'Symbol' attribute. + * @see #getSymbol() + * @generated + */ + void setSymbol(String value); + + /** + * Returns the value of the 'Operand' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ValueSpecification}. + * + * + * + * Specifies a sequence of operands. + * + * @return the value of the 'Operand' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getExpression_Operand() + * @model type="org.eclipse.uml2.uml.ValueSpecification" containment="true" resolveProxies="false" + * @generated + */ + List getOperands(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and appends it to the 'Operand' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getOperands() + * @generated + */ + ValueSpecification createOperand(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ValueSpecification} with the specified 'Name' from the 'Operand' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ValueSpecification} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ValueSpecification} with the specified 'Name', or null. + * @see #getOperands() + * @generated + */ + ValueSpecification getOperand(String name); + +} // Expression diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java new file mode 100644 index 00000000..f86dba3e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extend.java @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Extend.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Extend'. + * + * + * + * This relationship specifies that the behavior of a use case may be extended by the behavior of another (usually supplementary) use case. The extension takes place at one or more specific extension points defined in the extended use case. Note, however, that the extended use case is defined independently of the extending use case and is meaningful independently of the extending use case. On the other hand, the extending use case typically defines behavior that may not necessarily be meaningful by itself. Instead, the extending use case defines a set of modular behavior increments that augment an execution of the extended use case under specific conditions. + * + * + * + * Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended. + * + * + * + * It is a kind of DirectedRelationship, such that the source is the extending use case and the destination is the extended use case. It is also a kind of NamedElement so that it can have a name in the context of its owning use case. The extend relationship itself is owned by the extending use case. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Extend#getExtendedCase Extended Case}
  • + *
  • {@link org.eclipse.uml2.uml.Extend#getCondition Condition}
  • + *
  • {@link org.eclipse.uml2.uml.Extend#getExtensionLocations Extension Location}
  • + *
  • {@link org.eclipse.uml2.uml.Extend#getExtension Extension}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExtend() + * @model + * @generated + */ +public interface Extend + extends NamedElement, DirectedRelationship { + + /** + * Returns the value of the 'Extended Case' reference. + * + * + * + * References the use case that is being extended. + * + * @return the value of the 'Extended Case' reference. + * @see #setExtendedCase(UseCase) + * @see org.eclipse.uml2.uml.UMLPackage#getExtend_ExtendedCase() + * @model required="true" ordered="false" + * @generated + */ + UseCase getExtendedCase(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Extend#getExtendedCase Extended Case}' reference. + * + * + * @param value the new value of the 'Extended Case' reference. + * @see #getExtendedCase() + * @generated + */ + void setExtendedCase(UseCase value); + + /** + * Returns the value of the 'Condition' containment reference. + * + * + * + * References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional. + * + * + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getExtend_Condition() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Constraint getCondition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Extend#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Constraint value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Condition' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getCondition() + * @generated + */ + Constraint createCondition(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Condition' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getCondition() + * @generated + */ + Constraint createCondition(); + + /** + * Returns the value of the 'Extension Location' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExtensionPoint}. + * + * + * + * An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.) + * + * + * + * @return the value of the 'Extension Location' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getExtend_ExtensionLocation() + * @model type="org.eclipse.uml2.uml.ExtensionPoint" required="true" + * @generated + */ + List getExtensionLocations(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExtensionPoint} with the specified 'Name' from the 'Extension Location' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExtensionPoint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExtensionPoint} with the specified 'Name', or null. + * @see #getExtensionLocations() + * @generated + */ + ExtensionPoint getExtensionLocation(String name); + + /** + * Returns the value of the 'Extension' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.UseCase#getExtends Extend}'. + * + * + * + * References the use case that represents the extension and owns the extend relationship. + * + * @return the value of the 'Extension' container reference. + * @see #setExtension(UseCase) + * @see org.eclipse.uml2.uml.UMLPackage#getExtend_Extension() + * @see org.eclipse.uml2.uml.UseCase#getExtends + * @model opposite="extend" required="true" ordered="false" + * @generated + */ + UseCase getExtension(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Extend#getExtension Extension}' container reference. + * + * + * @param value the new value of the 'Extension' container reference. + * @see #getExtension() + * @generated + */ + void setExtension(UseCase value); + + /** + * + * + * + * The extension points referenced by the extend relationship must belong to the use case that is being extended. + * + * + * + * + * extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp)) + * + * @model + * @generated + */ + boolean validateExtensionPoints(DiagnosticChain diagnostics, Map context); + +} // Extend diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extension.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extension.java new file mode 100644 index 00000000..122f2e7c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Extension.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Extension.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Extension'. + * + * + * + * Extension is a kind of Association. One end of the Extension is an ordinary Property and the other end is an ExtensionEnd. The former ties the Extension to a Class, while the latter ties the Extension to a Stereotype that extends the Class. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Extension#isRequired Is Required}
  • + *
  • {@link org.eclipse.uml2.uml.Extension#getMetaclass Metaclass}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExtension() + * @model + * @generated + */ +public interface Extension + extends Association { + + /** + * Returns the value of the 'Is Required' attribute. + * + * + * + * Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the multiplicity of the Property referenced by Extension::ownedEnd; a multiplicity of 1 means that isRequired is true, but otherwise it is false. Since the default multiplicity of an ExtensionEnd is 0..1, the default value of isRequired is false. + * + * @return the value of the 'Is Required' attribute. + * @see org.eclipse.uml2.uml.UMLPackage#getExtension_IsRequired() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isRequired(); + + /** + * Returns the value of the 'Metaclass' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Class#getExtensions Extension}'. + * + * + * + * References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd. + * + * @return the value of the 'Metaclass' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getExtension_Metaclass() + * @see org.eclipse.uml2.uml.Class#getExtensions + * @model opposite="extension" required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Class getMetaclass(); + + /** + * + * + * + * The non-owned end of an Extension is typed by a Class. + * metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class) + * + * @model + * @generated + */ + boolean validateNonOwnedEnd(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An Extension is binary, i.e., it has only two memberEnds. + * memberEnd->size() = 2 + * + * @model + * @generated + */ + boolean validateIsBinary(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype). + * result = memberEnd->reject(ownedEnd) + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + Property metaclassEnd(); + + /** + * + * + * + * The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype). + * result = metaclassEnd().type + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + org.eclipse.uml2.uml.Class metaclass(); + +} // Extension diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionEnd.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionEnd.java new file mode 100644 index 00000000..1000fd2c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionEnd.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionEnd.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Extension End'. + * + * + * + * ExtensionEnd is a kind of Property that is always typed by a Stereotype. An ExtensionEnd is never navigable. If it was navigable, it would be a property of the extended classifier. Since a profile is not allowed to change the referenced metamodel, it is not possible to add properties to the extended classifier. As a consequence, an ExtensionEnd can only be owned by an Extension. The aggregation of an ExtensionEnd is always composite. The default multiplicity of an ExtensionEnd is 0..1. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getExtensionEnd() + * @model + * @generated + */ +public interface ExtensionEnd + extends Property { + + /** + * + * + * + * The multiplicity of ExtensionEnd is 0..1 or 1. + * (self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1 + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The aggregation of an ExtensionEnd is composite. + * self.aggregation = #composite + * + * @model + * @generated + */ + boolean validateAggregation(DiagnosticChain diagnostics, Map context); + +} // ExtensionEnd diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionPoint.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionPoint.java new file mode 100644 index 00000000..99c37878 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ExtensionPoint.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionPoint.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Extension Point'. + * + * + * + * An ExtensionPoint is a feature of a use case that identifies a point where the behavior of a use case can be augmented with elements of another (extending) use case. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExtensionPoint#getUseCase Use Case}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getExtensionPoint() + * @model + * @generated + */ +public interface ExtensionPoint + extends RedefinableElement { + + /** + * Returns the value of the 'Use Case' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.UseCase#getExtensionPoints Extension Point}'. + * + * + * + * References the use case that owns this extension point. + * + * @return the value of the 'Use Case' container reference. + * @see #setUseCase(UseCase) + * @see org.eclipse.uml2.uml.UMLPackage#getExtensionPoint_UseCase() + * @see org.eclipse.uml2.uml.UseCase#getExtensionPoints + * @model opposite="extensionPoint" required="true" ordered="false" + * @generated + */ + UseCase getUseCase(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ExtensionPoint#getUseCase Use Case}' container reference. + * + * + * @param value the new value of the 'Use Case' container reference. + * @see #getUseCase() + * @generated + */ + void setUseCase(UseCase value); + + /** + * + * + * + * An ExtensionPoint must have a name. + * self.name->notEmpty () + * + * @model + * @generated + */ + boolean validateMustHaveName(DiagnosticChain diagnostics, Map context); + +} // ExtensionPoint diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Feature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Feature.java new file mode 100644 index 00000000..e61cb6aa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Feature.java @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Feature.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Feature'. + * + * + * + * A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Feature#isStatic Is Static}
  • + *
  • {@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers Featuring Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getFeature() + * @model abstract="true" + * @generated + */ +public interface Feature + extends RedefinableElement { + + /** + * Returns the value of the 'Is Static' attribute. + * The default value is "false". + * + * + * + * Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true). + * + * @return the value of the 'Is Static' attribute. + * @see #setIsStatic(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getFeature_IsStatic() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isStatic(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Feature#isStatic Is Static}' attribute. + * + * + * @param value the new value of the 'Is Static' attribute. + * @see #isStatic() + * @generated + */ + void setIsStatic(boolean value); + + /** + * Returns the value of the 'Featuring Classifier' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Classifier#getFeatures Feature}'. + * + * + * + * Redefines the corresponding association in Abstractions. + * The Classifiers that have this Feature as a feature. + * + * @return the value of the 'Featuring Classifier' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getFeature_FeaturingClassifier() + * @see org.eclipse.uml2.uml.Classifier#getFeatures + * @model type="org.eclipse.uml2.uml.Classifier" opposite="feature" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getFeaturingClassifiers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Featuring Classifier' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getFeaturingClassifiers() + * @generated + */ + Classifier getFeaturingClassifier(String name); + +} // Feature diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalNode.java new file mode 100644 index 00000000..3f8594e2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalNode.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FinalNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Final Node'. + * + * + * + * A final node is an abstract control node at which a flow in an activity stops. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getFinalNode() + * @model abstract="true" + * @generated + */ +public interface FinalNode + extends ControlNode { + + /** + * + * + * + * A final node has no outgoing edges. + * true + * + * @model + * @generated + */ + boolean validateNoOutgoingEdges(DiagnosticChain diagnostics, Map context); + +} // FinalNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalState.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalState.java new file mode 100644 index 00000000..9c563782 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FinalState.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FinalState.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Final State'. + * + * + * + * A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getFinalState() + * @model + * @generated + */ +public interface FinalState + extends State { + + /** + * + * + * + * A final state cannot have any outgoing transitions. + * self.outgoing->size() = 0 + * + * @model + * @generated + */ + boolean validateNoOutgoingTransitions(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A final state cannot have regions. + * self.region->size() = 0 + * + * @model + * @generated + */ + boolean validateNoRegions(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A final state cannot reference a submachine. + * self.submachine->isEmpty() + * + * @model + * @generated + */ + boolean validateCannotReferenceSubmachine(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A final state has no entry behavior. + * self.entry->isEmpty() + * + * @model + * @generated + */ + boolean validateNoEntryBehavior(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A final state has no exit behavior. + * self.exit->isEmpty() + * + * @model + * @generated + */ + boolean validateNoExitbehavior(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A final state has no state (doActivity) behavior. + * self.doActivity->isEmpty() + * + * @model + * @generated + */ + boolean validateNoStateBehavior(DiagnosticChain diagnostics, Map context); + +} // FinalState diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FlowFinalNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FlowFinalNode.java new file mode 100644 index 00000000..d79630af --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FlowFinalNode.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FlowFinalNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Flow Final Node'. + * + * + * + * A flow final destroys all tokens that arrive at it. It has no effect on other flows in the activity. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getFlowFinalNode() + * @model + * @generated + */ +public interface FlowFinalNode + extends FinalNode { +} // FlowFinalNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ForkNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ForkNode.java new file mode 100644 index 00000000..32e6bff9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ForkNode.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ForkNode.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Fork Node'. + * + * + * + * A fork node has one incoming edge and multiple outgoing edges. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getForkNode() + * @model + * @generated + */ +public interface ForkNode + extends ControlNode { + + /** + * + * + * + * A fork node has one incoming edge. + * true + * + * @model + * @generated + */ + boolean validateOneIncomingEdge(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The edges coming into and out of a fork node must be either all object flows or all control flows. + * true + * + * @model + * @generated + */ + boolean validateEdges(DiagnosticChain diagnostics, Map context); + +} // ForkNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FunctionBehavior.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FunctionBehavior.java new file mode 100644 index 00000000..3e7093a6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/FunctionBehavior.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FunctionBehavior.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Function Behavior'. + * + * + * + * A function behavior is an opaque behavior that does not access or modify any objects or other external data. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getFunctionBehavior() + * @model + * @generated + */ +public interface FunctionBehavior + extends OpaqueBehavior { + + /** + * + * + * + * A function behavior has at least one output parameter. + * self.ownedParameters-> + * + * select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1 + * + * @model + * @generated + */ + boolean validateOneOutputParameter(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The types of parameters are all data types, which may not nest anything but other datatypes. + * def: hasAllDataTypeAttributes(d : DataType) : Boolean = + * + * d.ownedAttribute->forAll(a | + * + * a.type.oclIsTypeOf(DataType) and + * + * hasAllDataTypeAttributes(a.type)) + * + * self.ownedParameters->forAll(p | p.type.notEmpty() and + * + * p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p)) + * + * @model + * @generated + */ + boolean validateTypesOfParameters(DiagnosticChain diagnostics, Map context); + +} // FunctionBehavior diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Gate.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Gate.java new file mode 100644 index 00000000..46653a6f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Gate.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Gate.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Gate'. + * + * + * + * A Gate is a connection point for relating a Message outside an InteractionFragment with a Message inside the InteractionFragment. Gate is a specialization of MessageEnd. Gates are connected through Messages. A Gate is actually a representative of an OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getGate() + * @model + * @generated + */ +public interface Gate + extends MessageEnd { + + /** + * + * + * + * The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse. + * true + * + * @model + * @generated + */ + boolean validateMessagesActualGate(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside. + * true + * + * @model + * @generated + */ + boolean validateMessagesCombinedFragment(DiagnosticChain diagnostics, + Map context); + +} // Gate diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralOrdering.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralOrdering.java new file mode 100644 index 00000000..feb95e17 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralOrdering.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralOrdering.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'General Ordering'. + * + * + * + * A GeneralOrdering represents a binary relation between two OccurrenceSpecifications, to describe that one OccurrenceSpecification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of OccurrenceSpecifications that may otherwise not have a specified order. A GeneralOrdering is a specialization of NamedElement. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.GeneralOrdering#getBefore Before}
  • + *
  • {@link org.eclipse.uml2.uml.GeneralOrdering#getAfter After}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralOrdering() + * @model + * @generated + */ +public interface GeneralOrdering + extends NamedElement { + + /** + * Returns the value of the 'Before' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.OccurrenceSpecification#getToAfters To After}'. + * + * + * + * The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after. + * + * @return the value of the 'Before' reference. + * @see #setBefore(OccurrenceSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralOrdering_Before() + * @see org.eclipse.uml2.uml.OccurrenceSpecification#getToAfters + * @model opposite="toAfter" required="true" ordered="false" + * @generated + */ + OccurrenceSpecification getBefore(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.GeneralOrdering#getBefore Before}' reference. + * + * + * @param value the new value of the 'Before' reference. + * @see #getBefore() + * @generated + */ + void setBefore(OccurrenceSpecification value); + + /** + * Returns the value of the 'After' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.OccurrenceSpecification#getToBefores To Before}'. + * + * + * + * The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before. + * + * @return the value of the 'After' reference. + * @see #setAfter(OccurrenceSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralOrdering_After() + * @see org.eclipse.uml2.uml.OccurrenceSpecification#getToBefores + * @model opposite="toBefore" required="true" ordered="false" + * @generated + */ + OccurrenceSpecification getAfter(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.GeneralOrdering#getAfter After}' reference. + * + * + * @param value the new value of the 'After' reference. + * @see #getAfter() + * @generated + */ + void setAfter(OccurrenceSpecification value); + +} // GeneralOrdering diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java new file mode 100644 index 00000000..3775e450 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Generalization.java @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Generalization.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Generalization'. + * + * + * + * A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier. + * + * A generalization can be designated as being a member of a particular generalization set. + * + * + * A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier. + * + * + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Generalization#isSubstitutable Is Substitutable}
  • + *
  • {@link org.eclipse.uml2.uml.Generalization#getGeneral General}
  • + *
  • {@link org.eclipse.uml2.uml.Generalization#getGeneralizationSets Generalization Set}
  • + *
  • {@link org.eclipse.uml2.uml.Generalization#getSpecific Specific}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralization() + * @model + * @generated + */ +public interface Generalization + extends DirectedRelationship { + + /** + * Returns the value of the 'Is Substitutable' attribute. + * + * + * + * Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier. + * + * @return the value of the 'Is Substitutable' attribute. + * @see #setIsSubstitutable(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralization_IsSubstitutable() + * @model required="true" ordered="false" + * @generated + */ + boolean isSubstitutable(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Generalization#isSubstitutable Is Substitutable}' attribute. + * + * + * @param value the new value of the 'Is Substitutable' attribute. + * @see #isSubstitutable() + * @generated + */ + void setIsSubstitutable(boolean value); + + /** + * Returns the value of the 'General' reference. + * + * + * + * References the general classifier in the Generalization relationship. + * + * @return the value of the 'General' reference. + * @see #setGeneral(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralization_General() + * @model required="true" ordered="false" + * @generated + */ + Classifier getGeneral(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Generalization#getGeneral General}' reference. + * + * + * @param value the new value of the 'General' reference. + * @see #getGeneral() + * @generated + */ + void setGeneral(Classifier value); + + /** + * Returns the value of the 'Generalization Set' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.GeneralizationSet}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.GeneralizationSet#getGeneralizations Generalization}'. + * + * + * + * Designates a set in which instances of Generalization is considered members. + * + * @return the value of the 'Generalization Set' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralization_GeneralizationSet() + * @see org.eclipse.uml2.uml.GeneralizationSet#getGeneralizations + * @model type="org.eclipse.uml2.uml.GeneralizationSet" opposite="generalization" ordered="false" + * @generated + */ + List getGeneralizationSets(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name' from the 'Generalization Set' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralizationSet} to retrieve. + * @return The {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name', or null. + * @see #getGeneralizationSets() + * @generated + */ + GeneralizationSet getGeneralizationSet(String name); + + /** + * Returns the value of the 'Specific' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Classifier#getGeneralizations Generalization}'. + * + * + * + * References the specializing classifier in the Generalization relationship. + * + * @return the value of the 'Specific' container reference. + * @see #setSpecific(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralization_Specific() + * @see org.eclipse.uml2.uml.Classifier#getGeneralizations + * @model opposite="generalization" required="true" ordered="false" + * @generated + */ + Classifier getSpecific(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Generalization#getSpecific Specific}' container reference. + * + * + * @param value the new value of the 'Specific' container reference. + * @see #getSpecific() + * @generated + */ + void setSpecific(Classifier value); + + /** + * + * + * + * Every Generalization associated with a given GeneralizationSet must have the same general Classifier. That is, all Generalizations for a particular GeneralizationSet must have the same superclass. + * true + * + * @model + * @generated + */ + boolean validateGeneralizationSameClassifier(DiagnosticChain diagnostics, + Map context); + +} // Generalization diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralizationSet.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralizationSet.java new file mode 100644 index 00000000..96b47ba5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/GeneralizationSet.java @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralizationSet.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Generalization Set'. + * + * + * + * Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., from a class to its superclasses). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a general Classifier (or superclass) may be divided using specific subtypes. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the general classifier, however one Generalization would involve Male Person as the specific Classifier and the other would involve Female Person as the specific classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be divided into North American Person, Asian Person, European Person, or something else. This collection of subsets would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the general Classifier; only the specific classifiers would differ: i.e., North American Person, Asian Person, and European Person. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.GeneralizationSet#isCovering Is Covering}
  • + *
  • {@link org.eclipse.uml2.uml.GeneralizationSet#isDisjoint Is Disjoint}
  • + *
  • {@link org.eclipse.uml2.uml.GeneralizationSet#getPowertype Powertype}
  • + *
  • {@link org.eclipse.uml2.uml.GeneralizationSet#getGeneralizations Generalization}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralizationSet() + * @model + * @generated + */ +public interface GeneralizationSet + extends PackageableElement { + + /** + * Returns the value of the 'Is Covering' attribute. + * + * + * + * Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet. For example, Person could have two Generalization relationships each with a different specific Classifier: Male Person and Female Person. This GeneralizationSet would be covering because every instance of Person would be an instance of Male Person or Female Person. In contrast, Person could have a three Generalization relationships involving three specific Classifiers: North American Person, Asian Person, and European Person. This GeneralizationSet would not be covering because there are instances of Person for which these three specific Classifiers do not apply. The first example, then, could be read: any Person would be specialized as either being a Male Person or a Female Person?and nothing else; the second could be read: any Person would be specialized as being North American Person, Asian Person, European Person, or something else. + * + * @return the value of the 'Is Covering' attribute. + * @see #setIsCovering(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralizationSet_IsCovering() + * @model required="true" ordered="false" + * @generated + */ + boolean isCovering(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.GeneralizationSet#isCovering Is Covering}' attribute. + * + * + * @param value the new value of the 'Is Covering' attribute. + * @see #isCovering() + * @generated + */ + void setIsCovering(boolean value); + + /** + * Returns the value of the 'Is Disjoint' attribute. + * + * + * + * Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager. + * + * @return the value of the 'Is Disjoint' attribute. + * @see #setIsDisjoint(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralizationSet_IsDisjoint() + * @model required="true" ordered="false" + * @generated + */ + boolean isDisjoint(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.GeneralizationSet#isDisjoint Is Disjoint}' attribute. + * + * + * @param value the new value of the 'Is Disjoint' attribute. + * @see #isDisjoint() + * @generated + */ + void setIsDisjoint(boolean value); + + /** + * Returns the value of the 'Powertype' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Classifier#getPowertypeExtents Powertype Extent}'. + * + * + * + * Designates the Classifier that is defined as the power type for the associated GeneralizationSet. + * + * @return the value of the 'Powertype' reference. + * @see #setPowertype(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralizationSet_Powertype() + * @see org.eclipse.uml2.uml.Classifier#getPowertypeExtents + * @model opposite="powertypeExtent" ordered="false" + * @generated + */ + Classifier getPowertype(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.GeneralizationSet#getPowertype Powertype}' reference. + * + * + * @param value the new value of the 'Powertype' reference. + * @see #getPowertype() + * @generated + */ + void setPowertype(Classifier value); + + /** + * Returns the value of the 'Generalization' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Generalization}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Generalization#getGeneralizationSets Generalization Set}'. + * + * + * + * Designates the instances of Generalization which are members of a given GeneralizationSet. + * + * @return the value of the 'Generalization' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getGeneralizationSet_Generalization() + * @see org.eclipse.uml2.uml.Generalization#getGeneralizationSets + * @model type="org.eclipse.uml2.uml.Generalization" opposite="generalizationSet" ordered="false" + * @generated + */ + List getGeneralizations(); + + /** + * + * + * + * Every Generalization associated with a particular GeneralizationSet must have the same general Classifier. + * generalization->collect(g | g.general)->asSet()->size() <= 1 + * + * @model + * @generated + */ + boolean validateGeneralizationSameClassifier(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses. + * true + * + * @model + * @generated + */ + boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics, + Map context); + +} // GeneralizationSet diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Image.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Image.java new file mode 100644 index 00000000..70ee77b1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Image.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Image.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Image'. + * + * + * + * The Image class provides the necessary information to display an Image in a diagram. Icons are typically handled through the Image class. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getImage() + * @model abstract="true" + * @generated + */ +public interface Image + extends EObject { +} // Image diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java new file mode 100644 index 00000000..49907338 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Include.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Include.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Include'. + * + * + * + * Note that the included use case is not optional, and is always required for the including use case to execute correctly. + * + * + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Include#getAddition Addition}
  • + *
  • {@link org.eclipse.uml2.uml.Include#getIncludingCase Including Case}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInclude() + * @model + * @generated + */ +public interface Include + extends NamedElement, DirectedRelationship { + + /** + * Returns the value of the 'Addition' reference. + * + * + * + * References the use case that is to be included. + * + * + * + * @return the value of the 'Addition' reference. + * @see #setAddition(UseCase) + * @see org.eclipse.uml2.uml.UMLPackage#getInclude_Addition() + * @model required="true" ordered="false" + * @generated + */ + UseCase getAddition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Include#getAddition Addition}' reference. + * + * + * @param value the new value of the 'Addition' reference. + * @see #getAddition() + * @generated + */ + void setAddition(UseCase value); + + /** + * Returns the value of the 'Including Case' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.UseCase#getIncludes Include}'. + * + * + * + * References the use case which will include the addition and owns the include relationship. + * + * @return the value of the 'Including Case' container reference. + * @see #setIncludingCase(UseCase) + * @see org.eclipse.uml2.uml.UMLPackage#getInclude_IncludingCase() + * @see org.eclipse.uml2.uml.UseCase#getIncludes + * @model opposite="include" required="true" ordered="false" + * @generated + */ + UseCase getIncludingCase(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Include#getIncludingCase Including Case}' container reference. + * + * + * @param value the new value of the 'Including Case' container reference. + * @see #getIncludingCase() + * @generated + */ + void setIncludingCase(UseCase value); + +} // Include diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationFlow.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationFlow.java new file mode 100644 index 00000000..a7e48b57 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationFlow.java @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InformationFlow.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Information Flow'. + * + * + * + * An information flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of InstanceSpecification), they may be represented by a link that joins the two, and so on. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getRealizations Realization}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getConveyeds Conveyed}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getInformationSources Information Source}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getInformationTargets Information Target}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getRealizingActivityEdges Realizing Activity Edge}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getRealizingConnectors Realizing Connector}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#getRealizingMessages Realizing Message}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow() + * @model + * @generated + */ +public interface InformationFlow + extends PackageableElement, DirectedRelationship { + + /** + * Returns the value of the 'Realization' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Relationship}. + * + * + * + * Determines which Relationship will realize the specified flow + * + * @return the value of the 'Realization' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_Realization() + * @model type="org.eclipse.uml2.uml.Relationship" ordered="false" + * @generated + */ + List getRealizations(); + + /** + * Returns the value of the 'Conveyed' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * Specifies the information items that may circulate on this information flow. + * + * @return the value of the 'Conveyed' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_Conveyed() + * @model type="org.eclipse.uml2.uml.Classifier" required="true" ordered="false" + * @generated + */ + List getConveyeds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Conveyed' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getConveyeds() + * @generated + */ + Classifier getConveyed(String name); + + /** + * Returns the value of the 'Information Source' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * Defines from which source the conveyed InformationItems are initiated. + * + * @return the value of the 'Information Source' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_InformationSource() + * @model type="org.eclipse.uml2.uml.NamedElement" required="true" ordered="false" + * @generated + */ + List getInformationSources(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Information Source' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getInformationSources() + * @generated + */ + NamedElement getInformationSource(String name); + + /** + * Returns the value of the 'Information Target' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * Defines to which target the conveyed InformationItems are directed. + * + * @return the value of the 'Information Target' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_InformationTarget() + * @model type="org.eclipse.uml2.uml.NamedElement" required="true" ordered="false" + * @generated + */ + List getInformationTargets(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Information Target' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getInformationTargets() + * @generated + */ + NamedElement getInformationTarget(String name); + + /** + * Returns the value of the 'Realizing Activity Edge' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * + * + * + * Determines which ActivityEdges will realize the specified flow. + * + * @return the value of the 'Realizing Activity Edge' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_RealizingActivityEdge() + * @model type="org.eclipse.uml2.uml.ActivityEdge" ordered="false" + * @generated + */ + List getRealizingActivityEdges(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Realizing Activity Edge' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getRealizingActivityEdges() + * @generated + */ + ActivityEdge getRealizingActivityEdge(String name); + + /** + * Returns the value of the 'Realizing Connector' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Connector}. + * + * + * + * Determines which Connectors will realize the specified flow. + * + * @return the value of the 'Realizing Connector' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_RealizingConnector() + * @model type="org.eclipse.uml2.uml.Connector" ordered="false" + * @generated + */ + List getRealizingConnectors(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Connector} with the specified 'Name' from the 'Realizing Connector' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Connector} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Connector} with the specified 'Name', or null. + * @see #getRealizingConnectors() + * @generated + */ + Connector getRealizingConnector(String name); + + /** + * Returns the value of the 'Realizing Message' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Message}. + * + * + * + * Determines which Messages will realize the specified flow. + * + * @return the value of the 'Realizing Message' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationFlow_RealizingMessage() + * @model type="org.eclipse.uml2.uml.Message" ordered="false" + * @generated + */ + List getRealizingMessages(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Message} with the specified 'Name' from the 'Realizing Message' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Message} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Message} with the specified 'Name', or null. + * @see #getRealizingMessages() + * @generated + */ + Message getRealizingMessage(String name); + + /** + * + * + * + * The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link). + * (self.source->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + * + * oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + * + * oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + * + * oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + * + * oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and + * + * (self.target->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + * + * oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + * + * oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + * + * oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + * + * oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) + * + * @model + * @generated + */ + boolean validateSourcesAndTargetsKind(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships. + * true + * + * @model + * @generated + */ + boolean validateMustConform(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An information flow can only convey classifiers that are allowed to represent an information item. + * + * + * self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) + * + * or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)) + * + * @model + * @generated + */ + boolean validateConveyClassifiers(DiagnosticChain diagnostics, Map context); + +} // InformationFlow diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationItem.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationItem.java new file mode 100644 index 00000000..6e817da9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InformationItem.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InformationItem.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Information Item'. + * + * + * + * An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated. One purpose of InformationItems is to be able to define preliminary models, before having made detailed modeling decisions on types or structures. One other purpose of information items and information flows is to abstract complex models by a less precise but more general representation of the information exchanged betwen entities of a system. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InformationItem#getRepresenteds Represented}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInformationItem() + * @model + * @generated + */ +public interface InformationItem + extends Classifier { + + /** + * Returns the value of the 'Represented' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers. + * + * @return the value of the 'Represented' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInformationItem_Represented() + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * @generated + */ + List getRepresenteds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Represented' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getRepresenteds() + * @generated + */ + Classifier getRepresented(String name); + + /** + * + * + * + * The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component. + * (self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p | + * + * p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and + * + * p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and + * + * (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or + * + * oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))) + * + * @model + * @generated + */ + boolean validateSourcesAndTargets(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An informationItem has no feature, no generalization, and no associations. + * self.generalization->isEmpty() and self.feature->isEmpty() + * + * @model + * @generated + */ + boolean validateHasNo(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * It is not instantiable. + * isAbstract + * + * @model + * @generated + */ + boolean validateNotInstantiable(DiagnosticChain diagnostics, Map context); + +} // InformationItem diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InitialNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InitialNode.java new file mode 100644 index 00000000..e98086bb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InitialNode.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InitialNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Initial Node'. + * + * + * + * An activity may have more than one initial node. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getInitialNode() + * @model + * @generated + */ +public interface InitialNode + extends ControlNode { + + /** + * + * + * + * An initial node has no incoming edges. + * true + * + * @model + * @generated + */ + boolean validateNoIncomingEdges(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only control edges can have initial nodes as source. + * true + * + * @model + * @generated + */ + boolean validateControlEdges(DiagnosticChain diagnostics, Map context); + +} // InitialNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InputPin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InputPin.java new file mode 100644 index 00000000..a05b4743 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InputPin.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InputPin.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Input Pin'. + * + * + * + * An input pin is a pin that holds input values to be consumed by an action. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getInputPin() + * @model + * @generated + */ +public interface InputPin + extends Pin { +} // InputPin diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java new file mode 100644 index 00000000..b45b8936 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceSpecification.java @@ -0,0 +1,203 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InstanceSpecification.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Instance Specification'. + * + * + * + * An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity. + * + * The description may include: + * + * + * + * - Classification of the entity by one or more classifiers of which the entity is an instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity. + * + * - The kind of instance, based on its classifier or classifiers -- for example, an instance specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association. + * + * - Specification of values of structural features of the entity. Not all structural features of all classifiers of the instance specification need be represented by slots, in which case the instance specification is a partial description. + * + * - Specification of how to compute, derive or construct the instance (optional). + * + * + * + * InstanceSpecification is a concrete class. + * + * + * In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#getClassifiers Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#getSpecification Specification}
  • + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#getSlots Slot}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInstanceSpecification() + * @model + * @generated + */ +public interface InstanceSpecification + extends DeploymentTarget, PackageableElement, DeployedArtifact { + + /** + * Returns the value of the 'Classifier' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them. + * + * @return the value of the 'Classifier' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInstanceSpecification_Classifier() + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * @generated + */ + List getClassifiers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Classifier' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getClassifiers() + * @generated + */ + Classifier getClassifier(String name); + + /** + * Returns the value of the 'Specification' containment reference. + * + * + * + * A specification of how to compute, derive, or construct the instance. + * + * @return the value of the 'Specification' containment reference. + * @see #setSpecification(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getInstanceSpecification_Specification() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getSpecification(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InstanceSpecification#getSpecification Specification}' containment reference. + * + * + * @param value the new value of the 'Specification' containment reference. + * @see #getSpecification() + * @generated + */ + void setSpecification(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Specification' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getSpecification() + * @generated + */ + ValueSpecification createSpecification(EClass eClass); + + /** + * Returns the value of the 'Slot' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Slot}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Slot#getOwningInstance Owning Instance}'. + * + * + * + * A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description. + * + * @return the value of the 'Slot' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInstanceSpecification_Slot() + * @see org.eclipse.uml2.uml.Slot#getOwningInstance + * @model type="org.eclipse.uml2.uml.Slot" opposite="owningInstance" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getSlots(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Slot} and appends it to the 'Slot' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Slot}. + * @see #getSlots() + * @generated + */ + Slot createSlot(); + + /** + * + * + * + * The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification. + * slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature))) + * + * @model + * @generated + */ + boolean validateDefiningFeature(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification. + * classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() <= 1))) + * + * @model + * @generated + */ + boolean validateStructuralFeature(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node. + * true + * + * @model + * @generated + */ + boolean validateDeploymentTarget(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact. + * true + * + * @model + * @generated + */ + boolean validateDeploymentArtifact(DiagnosticChain diagnostics, Map context); + +} // InstanceSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceValue.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceValue.java new file mode 100644 index 00000000..31fa884a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InstanceValue.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InstanceValue.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Instance Value'. + * + * + * + * An instance value specifies the value modeled by an instance specification. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InstanceValue#getInstance Instance}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInstanceValue() + * @model + * @generated + */ +public interface InstanceValue + extends ValueSpecification { + + /** + * Returns the value of the 'Instance' reference. + * + * + * + * The instance that is the specified value. + * + * @return the value of the 'Instance' reference. + * @see #setInstance(InstanceSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getInstanceValue_Instance() + * @model required="true" ordered="false" + * @generated + */ + InstanceSpecification getInstance(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InstanceValue#getInstance Instance}' reference. + * + * + * @param value the new value of the 'Instance' reference. + * @see #getInstance() + * @generated + */ + void setInstance(InstanceSpecification value); + +} // InstanceValue diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interaction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interaction.java new file mode 100644 index 00000000..68f9500e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interaction.java @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Interaction.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Interaction'. + * + * + * + * An interaction is a unit of behavior that focuses on the observable exchange of information between ConnectableElements. An Interaction is a specialization of InteractionFragment and of Behavior. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Interaction#getLifelines Lifeline}
  • + *
  • {@link org.eclipse.uml2.uml.Interaction#getFragments Fragment}
  • + *
  • {@link org.eclipse.uml2.uml.Interaction#getActions Action}
  • + *
  • {@link org.eclipse.uml2.uml.Interaction#getFormalGates Formal Gate}
  • + *
  • {@link org.eclipse.uml2.uml.Interaction#getMessages Message}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInteraction() + * @model + * @generated + */ +public interface Interaction + extends Behavior, InteractionFragment { + + /** + * Returns the value of the 'Lifeline' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Lifeline}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Lifeline#getInteraction Interaction}'. + * + * + * + * Specifies the participants in this Interaction. + * + * @return the value of the 'Lifeline' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteraction_Lifeline() + * @see org.eclipse.uml2.uml.Lifeline#getInteraction + * @model type="org.eclipse.uml2.uml.Lifeline" opposite="interaction" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getLifelines(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Lifeline} and appends it to the 'Lifeline' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Lifeline}. + * @see #getLifelines() + * @generated + */ + Lifeline createLifeline(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Lifeline} with the specified 'Name' from the 'Lifeline' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Lifeline} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Lifeline} with the specified 'Name', or null. + * @see #getLifelines() + * @generated + */ + Lifeline getLifeline(String name); + + /** + * Returns the value of the 'Fragment' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InteractionFragment}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingInteraction Enclosing Interaction}'. + * + * + * + * The ordered set of fragments in the Interaction. + * + * @return the value of the 'Fragment' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteraction_Fragment() + * @see org.eclipse.uml2.uml.InteractionFragment#getEnclosingInteraction + * @model type="org.eclipse.uml2.uml.InteractionFragment" opposite="enclosingInteraction" containment="true" resolveProxies="false" + * @generated + */ + List getFragments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InteractionFragment} and appends it to the 'Fragment' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InteractionFragment} to create. + * @return The new {@link org.eclipse.uml2.uml.InteractionFragment}. + * @see #getFragments() + * @generated + */ + InteractionFragment createFragment(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InteractionFragment} with the specified 'Name' from the 'Fragment' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InteractionFragment} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InteractionFragment} with the specified 'Name', or null. + * @see #getFragments() + * @generated + */ + InteractionFragment getFragment(String name); + + /** + * Returns the value of the 'Action' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Action}. + * + * + * + * Actions owned by the Interaction. + * + * @return the value of the 'Action' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteraction_Action() + * @model type="org.eclipse.uml2.uml.Action" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getActions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Action} and appends it to the 'Action' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Action} to create. + * @return The new {@link org.eclipse.uml2.uml.Action}. + * @see #getActions() + * @generated + */ + Action createAction(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Action} and appends it to the 'Action' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Action}. + * @see #getActions() + * @generated + */ + Action createAction(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Action} with the specified 'Name' from the 'Action' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Action} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Action} with the specified 'Name', or null. + * @see #getActions() + * @generated + */ + Action getAction(String name); + + /** + * Returns the value of the 'Formal Gate' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Gate}. + * + * + * + * Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it. + * + * + * + * @return the value of the 'Formal Gate' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteraction_FormalGate() + * @model type="org.eclipse.uml2.uml.Gate" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getFormalGates(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Gate} and appends it to the 'Formal Gate' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Gate}. + * @see #getFormalGates() + * @generated + */ + Gate createFormalGate(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Gate} with the specified 'Name' from the 'Formal Gate' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Gate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Gate} with the specified 'Name', or null. + * @see #getFormalGates() + * @generated + */ + Gate getFormalGate(String name); + + /** + * Returns the value of the 'Message' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Message}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Message#getInteraction Interaction}'. + * + * + * + * The Messages contained in this Interaction. + * + * @return the value of the 'Message' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteraction_Message() + * @see org.eclipse.uml2.uml.Message#getInteraction + * @model type="org.eclipse.uml2.uml.Message" opposite="interaction" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getMessages(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Message} and appends it to the 'Message' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Message}. + * @see #getMessages() + * @generated + */ + Message createMessage(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Message} with the specified 'Name' from the 'Message' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Message} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Message} with the specified 'Name', or null. + * @see #getMessages() + * @generated + */ + Message getMessage(String name); + +} // Interaction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionConstraint.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionConstraint.java new file mode 100644 index 00000000..001a9f4e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionConstraint.java @@ -0,0 +1,190 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionConstraint.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Interaction Constraint'. + * + * + * + * An InteractionConstraint is a Boolean expression that guards an operand in a CombinedFragment. InteractionConstraint is a specialization of Constraint. Furthermore the InteractionConstraint contains two expressions designating the minimum and maximum number of times a loop CombinedFragment should execute. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#getMinint Minint}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#getMaxint Maxint}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionConstraint() + * @model + * @generated + */ +public interface InteractionConstraint + extends Constraint { + + /** + * Returns the value of the 'Minint' containment reference. + * + * + * + * The minimum number of iterations of a loop + * + * @return the value of the 'Minint' containment reference. + * @see #setMinint(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionConstraint_Minint() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getMinint(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InteractionConstraint#getMinint Minint}' containment reference. + * + * + * @param value the new value of the 'Minint' containment reference. + * @see #getMinint() + * @generated + */ + void setMinint(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Minint' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getMinint() + * @generated + */ + ValueSpecification createMinint(EClass eClass); + + /** + * Returns the value of the 'Maxint' containment reference. + * + * + * + * The maximum number of iterations of a loop + * + * @return the value of the 'Maxint' containment reference. + * @see #setMaxint(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionConstraint_Maxint() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getMaxint(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InteractionConstraint#getMaxint Maxint}' containment reference. + * + * + * @param value the new value of the 'Maxint' containment reference. + * @see #getMaxint() + * @generated + */ + void setMaxint(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Maxint' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getMaxint() + * @generated + */ + ValueSpecification createMaxint(EClass eClass); + + /** + * + * + * + * The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline. + * true + * + * @model + * @generated + */ + boolean validateDynamicVariables(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The constraint may contain references to global data or write-once data. + * true + * + * @model + * @generated + */ + boolean validateGlobalData(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment. + * true + * + * @model + * @generated + */ + boolean validateMinintMaxint(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If minint is specified, then the expression must evaluate to a non-negative integer. + * true + * + * @model + * @generated + */ + boolean validateMinint(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If maxint is specified, then the expression must evaluate to a positive integer. + * true + * + * @model + * @generated + */ + boolean validateMaxint(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint + * true + * + * @model + * @generated + */ + boolean validateMaxintGreaterEqualMinint(DiagnosticChain diagnostics, + Map context); + +} // InteractionConstraint diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionFragment.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionFragment.java new file mode 100644 index 00000000..3354f15a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionFragment.java @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionFragment.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Interaction Fragment'. + * + * + * + * InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. InteractionFragment is an abstract class and a specialization of NamedElement. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionFragment#getCovereds Covered}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionFragment#getGeneralOrderings General Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingInteraction Enclosing Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingOperand Enclosing Operand}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionFragment() + * @model abstract="true" + * @generated + */ +public interface InteractionFragment + extends NamedElement { + + /** + * Returns the value of the 'Covered' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Lifeline}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Lifeline#getCoveredBys Covered By}'. + * + * + * + * References the Lifelines that the InteractionFragment involves. + * + * @return the value of the 'Covered' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionFragment_Covered() + * @see org.eclipse.uml2.uml.Lifeline#getCoveredBys + * @model type="org.eclipse.uml2.uml.Lifeline" opposite="coveredBy" ordered="false" + * @generated + */ + List getCovereds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Lifeline} with the specified 'Name' from the 'Covered' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Lifeline} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Lifeline} with the specified 'Name', or null. + * @see #getCovereds() + * @generated + */ + Lifeline getCovered(String name); + + /** + * Returns the value of the 'General Ordering' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.GeneralOrdering}. + * + * + * + * The general ordering relationships contained in this fragment. + * + * @return the value of the 'General Ordering' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionFragment_GeneralOrdering() + * @model type="org.eclipse.uml2.uml.GeneralOrdering" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getGeneralOrderings(); + + /** + * Creates a {@link org.eclipse.uml2.uml.GeneralOrdering} and appends it to the 'General Ordering' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.GeneralOrdering}. + * @see #getGeneralOrderings() + * @generated + */ + GeneralOrdering createGeneralOrdering(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.GeneralOrdering} with the specified 'Name' from the 'General Ordering' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralOrdering} to retrieve. + * @return The {@link org.eclipse.uml2.uml.GeneralOrdering} with the specified 'Name', or null. + * @see #getGeneralOrderings() + * @generated + */ + GeneralOrdering getGeneralOrdering(String name); + + /** + * Returns the value of the 'Enclosing Interaction' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Interaction#getFragments Fragment}'. + * + * + * + * The Interaction enclosing this InteractionFragment. + * + * @return the value of the 'Enclosing Interaction' container reference. + * @see #setEnclosingInteraction(Interaction) + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionFragment_EnclosingInteraction() + * @see org.eclipse.uml2.uml.Interaction#getFragments + * @model opposite="fragment" ordered="false" + * @generated + */ + Interaction getEnclosingInteraction(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingInteraction Enclosing Interaction}' container reference. + * + * + * @param value the new value of the 'Enclosing Interaction' container reference. + * @see #getEnclosingInteraction() + * @generated + */ + void setEnclosingInteraction(Interaction value); + + /** + * Returns the value of the 'Enclosing Operand' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InteractionOperand#getFragments Fragment}'. + * + * + * + * The operand enclosing this InteractionFragment (they may nest recursively) + * + * @return the value of the 'Enclosing Operand' container reference. + * @see #setEnclosingOperand(InteractionOperand) + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionFragment_EnclosingOperand() + * @see org.eclipse.uml2.uml.InteractionOperand#getFragments + * @model opposite="fragment" ordered="false" + * @generated + */ + InteractionOperand getEnclosingOperand(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingOperand Enclosing Operand}' container reference. + * + * + * @param value the new value of the 'Enclosing Operand' container reference. + * @see #getEnclosingOperand() + * @generated + */ + void setEnclosingOperand(InteractionOperand value); + +} // InteractionFragment diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperand.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperand.java new file mode 100644 index 00000000..b40f0fe4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperand.java @@ -0,0 +1,159 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionOperand.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Interaction Operand'. + * + * + * + * An InteractionOperand is contained in a CombinedFragment. An InteractionOperand represents one operand of the expression given by the enclosing CombinedFragment. + * + * + * + * An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be + * + * guarded by a InteractionConstraint. Only InteractionOperands with a guard that evaluates to true at this point in the interaction will be considered for the production of the traces for the enclosing CombinedFragment. + * + * + * + * InteractionOperand contains an ordered set of InteractionFragments. + * + * + * + * In Sequence Diagrams these InteractionFragments are ordered according to their geometrical position vertically. The geometrical position of the InteractionFragment is given by the topmost vertical coordinate of its contained OccurrenceSpecifications or symbols. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionOperand#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionOperand#getFragments Fragment}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionOperand() + * @model + * @generated + */ +public interface InteractionOperand + extends Namespace, InteractionFragment { + + /** + * Returns the value of the 'Guard' containment reference. + * + * + * + * Constraint of the operand. + * + * @return the value of the 'Guard' containment reference. + * @see #setGuard(InteractionConstraint) + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionOperand_Guard() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + InteractionConstraint getGuard(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InteractionOperand#getGuard Guard}' containment reference. + * + * + * @param value the new value of the 'Guard' containment reference. + * @see #getGuard() + * @generated + */ + void setGuard(InteractionConstraint value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InteractionConstraint} and sets the 'Guard' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InteractionConstraint}. + * @see #getGuard() + * @generated + */ + InteractionConstraint createGuard(); + + /** + * Returns the value of the 'Fragment' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InteractionFragment}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingOperand Enclosing Operand}'. + * + * + * + * The fragments of the operand. + * + * @return the value of the 'Fragment' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionOperand_Fragment() + * @see org.eclipse.uml2.uml.InteractionFragment#getEnclosingOperand + * @model type="org.eclipse.uml2.uml.InteractionFragment" opposite="enclosingOperand" containment="true" resolveProxies="false" + * @generated + */ + List getFragments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InteractionFragment} and appends it to the 'Fragment' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InteractionFragment} to create. + * @return The new {@link org.eclipse.uml2.uml.InteractionFragment}. + * @see #getFragments() + * @generated + */ + InteractionFragment createFragment(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InteractionFragment} with the specified 'Name' from the 'Fragment' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InteractionFragment} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InteractionFragment} with the specified 'Name', or null. + * @see #getFragments() + * @generated + */ + InteractionFragment getFragment(String name); + + /** + * + * + * + * The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand. + * true + * + * @model + * @generated + */ + boolean validateGuardDirectlyPrior(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction. + * true + * + * @model + * @generated + */ + boolean validateGuardContainReferences(DiagnosticChain diagnostics, + Map context); + +} // InteractionOperand diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperatorKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperatorKind.java new file mode 100644 index 00000000..e7f65c1d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionOperatorKind.java @@ -0,0 +1,434 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionOperatorKind.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Interaction Operator Kind', + * and utility methods for working with them. + * + * + * InteractionOperatorKind is an enumeration designating the different kinds of operators of CombinedFragments. The InteractionOperand defines the type of operator of a CombinedFragment. + * + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionOperatorKind() + * @model + * @generated + */ +public final class InteractionOperatorKind + extends AbstractEnumerator { + + /** + * The 'Seq' literal value. + * + * + * + * The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands. + * + * @see #SEQ_LITERAL + * @model name="seq" + * @generated + * @ordered + */ + public static final int SEQ = 0; + + /** + * The 'Alt' literal value. + * + * + * + * The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no guard. + * + * @see #ALT_LITERAL + * @model name="alt" + * @generated + * @ordered + */ + public static final int ALT = 1; + + /** + * The 'Opt' literal value. + * + * + * + * The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment where there is one operand with non-empty content and the second operand is empty. + * + * @see #OPT_LITERAL + * @model name="opt" + * @generated + * @ordered + */ + public static final int OPT = 2; + + /** + * The 'Break' literal value. + * + * + * + * The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done non-deterministically. + * + * @see #BREAK_LITERAL + * @model name="break" + * @generated + * @ordered + */ + public static final int BREAK = 3; + + /** + * The 'Par' literal value. + * + * + * + * The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the ordering imposed by each operand as such is preserved. + * + * @see #PAR_LITERAL + * @model name="par" + * @generated + * @ordered + */ + public static final int PAR = 4; + + /** + * The 'Strict' literal value. + * + * + * + * The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing CombinedFragment. + * + * @see #STRICT_LITERAL + * @model name="strict" + * @generated + * @ordered + */ + public static final int STRICT = 5; + + /** + * The 'Loop' literal value. + * + * + * + * The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times. + * + * @see #LOOP_LITERAL + * @model name="loop" + * @generated + * @ordered + */ + public static final int LOOP = 6; + + /** + * The 'Critical' literal value. + * + * + * + * The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave into the region, such as e.g. with par-operator, this is prevented by defining a region. + * + * @see #CRITICAL_LITERAL + * @model name="critical" + * @generated + * @ordered + */ + public static final int CRITICAL = 7; + + /** + * The 'Neg' literal value. + * + * + * + * The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid. + * + * @see #NEG_LITERAL + * @model name="neg" + * @generated + * @ordered + */ + public static final int NEG = 8; + + /** + * The 'Assert' literal value. + * + * + * + * The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the operand of the assertion are the only valid continuations. All other continuations result in an invalid trace. + * + * @see #ASSERT_LITERAL + * @model name="assert" + * @generated + * @ordered + */ + public static final int ASSERT = 9; + + /** + * The 'Ignore' literal value. + * + * + * + * The interacionOperator ignore designates that there are some message types that are not shown within this combined fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can appear anywhere in the traces. + * + * @see #IGNORE_LITERAL + * @model name="ignore" + * @generated + * @ordered + */ + public static final int IGNORE = 10; + + /** + * The 'Consider' literal value. + * + * + * + * The interactionOperator consider designates which messages should be considered within this combined fragment. This is equivalent to defining every other message to be ignored. + * + * @see #CONSIDER_LITERAL + * @model name="consider" + * @generated + * @ordered + */ + public static final int CONSIDER = 11; + + /** + * The 'Seq' literal object. + * + * + * @see #SEQ + * @generated + * @ordered + */ + public static final InteractionOperatorKind SEQ_LITERAL = new InteractionOperatorKind( + SEQ, "seq", "seq"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Alt' literal object. + * + * + * @see #ALT + * @generated + * @ordered + */ + public static final InteractionOperatorKind ALT_LITERAL = new InteractionOperatorKind( + ALT, "alt", "alt"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Opt' literal object. + * + * + * @see #OPT + * @generated + * @ordered + */ + public static final InteractionOperatorKind OPT_LITERAL = new InteractionOperatorKind( + OPT, "opt", "opt"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Break' literal object. + * + * + * @see #BREAK + * @generated + * @ordered + */ + public static final InteractionOperatorKind BREAK_LITERAL = new InteractionOperatorKind( + BREAK, "break", "break"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Par' literal object. + * + * + * @see #PAR + * @generated + * @ordered + */ + public static final InteractionOperatorKind PAR_LITERAL = new InteractionOperatorKind( + PAR, "par", "par"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Strict' literal object. + * + * + * @see #STRICT + * @generated + * @ordered + */ + public static final InteractionOperatorKind STRICT_LITERAL = new InteractionOperatorKind( + STRICT, "strict", "strict"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Loop' literal object. + * + * + * @see #LOOP + * @generated + * @ordered + */ + public static final InteractionOperatorKind LOOP_LITERAL = new InteractionOperatorKind( + LOOP, "loop", "loop"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Critical' literal object. + * + * + * @see #CRITICAL + * @generated + * @ordered + */ + public static final InteractionOperatorKind CRITICAL_LITERAL = new InteractionOperatorKind( + CRITICAL, "critical", "critical"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Neg' literal object. + * + * + * @see #NEG + * @generated + * @ordered + */ + public static final InteractionOperatorKind NEG_LITERAL = new InteractionOperatorKind( + NEG, "neg", "neg"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Assert' literal object. + * + * + * @see #ASSERT + * @generated + * @ordered + */ + public static final InteractionOperatorKind ASSERT_LITERAL = new InteractionOperatorKind( + ASSERT, "assert", "assert"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Ignore' literal object. + * + * + * @see #IGNORE + * @generated + * @ordered + */ + public static final InteractionOperatorKind IGNORE_LITERAL = new InteractionOperatorKind( + IGNORE, "ignore", "ignore"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Consider' literal object. + * + * + * @see #CONSIDER + * @generated + * @ordered + */ + public static final InteractionOperatorKind CONSIDER_LITERAL = new InteractionOperatorKind( + CONSIDER, "consider", "consider"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Interaction Operator Kind' enumerators. + * + * + * @generated + */ + private static final InteractionOperatorKind[] VALUES_ARRAY = new InteractionOperatorKind[]{ + SEQ_LITERAL, ALT_LITERAL, OPT_LITERAL, BREAK_LITERAL, PAR_LITERAL, + STRICT_LITERAL, LOOP_LITERAL, CRITICAL_LITERAL, NEG_LITERAL, + ASSERT_LITERAL, IGNORE_LITERAL, CONSIDER_LITERAL,}; + + /** + * A public read-only list of all the 'Interaction Operator Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Interaction Operator Kind' literal with the specified literal value. + * + * + * @generated + */ + public static InteractionOperatorKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + InteractionOperatorKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Interaction Operator Kind' literal with the specified name. + * + * + * @generated + */ + public static InteractionOperatorKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + InteractionOperatorKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Interaction Operator Kind' literal with the specified integer value. + * + * + * @generated + */ + public static InteractionOperatorKind get(int value) { + switch (value) { + case SEQ : + return SEQ_LITERAL; + case ALT : + return ALT_LITERAL; + case OPT : + return OPT_LITERAL; + case BREAK : + return BREAK_LITERAL; + case PAR : + return PAR_LITERAL; + case STRICT : + return STRICT_LITERAL; + case LOOP : + return LOOP_LITERAL; + case CRITICAL : + return CRITICAL_LITERAL; + case NEG : + return NEG_LITERAL; + case ASSERT : + return ASSERT_LITERAL; + case IGNORE : + return IGNORE_LITERAL; + case CONSIDER : + return CONSIDER_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private InteractionOperatorKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //InteractionOperatorKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionUse.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionUse.java new file mode 100644 index 00000000..a9b19943 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InteractionUse.java @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionUse.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Interaction Use'. + * + * + * + * An InteractionUse refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referred Interaction where the InteractionUse is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones. + * + * + * + * It is common to want to share portions of an interaction between several other interactions. An InteractionUse allows multiple interactions to reference an interaction that represents a common portion of their specification. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionUse#getRefersTo Refers To}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionUse#getActualGates Actual Gate}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionUse#getArguments Argument}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionUse() + * @model + * @generated + */ +public interface InteractionUse + extends InteractionFragment { + + /** + * Returns the value of the 'Refers To' reference. + * + * + * + * Refers to the Interaction that defines its meaning + * + * @return the value of the 'Refers To' reference. + * @see #setRefersTo(Interaction) + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionUse_RefersTo() + * @model required="true" ordered="false" + * @generated + */ + Interaction getRefersTo(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InteractionUse#getRefersTo Refers To}' reference. + * + * + * @param value the new value of the 'Refers To' reference. + * @see #getRefersTo() + * @generated + */ + void setRefersTo(Interaction value); + + /** + * Returns the value of the 'Actual Gate' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Gate}. + * + * + * + * The actual gates of the InteractionUse + * + * @return the value of the 'Actual Gate' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionUse_ActualGate() + * @model type="org.eclipse.uml2.uml.Gate" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getActualGates(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Gate} and appends it to the 'Actual Gate' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Gate}. + * @see #getActualGates() + * @generated + */ + Gate createActualGate(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Gate} with the specified 'Name' from the 'Actual Gate' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Gate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Gate} with the specified 'Name', or null. + * @see #getActualGates() + * @generated + */ + Gate getActualGate(String name); + + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Action}. + * + * + * + * The actual arguments of the Interaction + * + * @return the value of the 'Argument' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInteractionUse_Argument() + * @model type="org.eclipse.uml2.uml.Action" containment="true" resolveProxies="false" + * @generated + */ + List getArguments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Action} and appends it to the 'Argument' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Action} to create. + * @return The new {@link org.eclipse.uml2.uml.Action}. + * @see #getArguments() + * @generated + */ + Action createArgument(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Action} and appends it to the 'Argument' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Action}. + * @see #getArguments() + * @generated + */ + Action createArgument(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Action} with the specified 'Name' from the 'Argument' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Action} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Action} with the specified 'Name', or null. + * @see #getArguments() + * @generated + */ + Action getArgument(String name); + + /** + * + * + * + * Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal. + * true + * + * @model + * @generated + */ + boolean validateGatesMatch(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction. + * true + * + * @model + * @generated + */ + boolean validateAllLifelines(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The arguments of the InteractionUse must correspond to parameters of the referred Interaction + * true + * + * @model + * @generated + */ + boolean validateArgumentsCorrespondToParameters( + DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction. + * true + * + * @model + * @generated + */ + boolean validateArgumentsAreConstants(DiagnosticChain diagnostics, + Map context); + +} // InteractionUse diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java new file mode 100644 index 00000000..c82dadde --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interface.java @@ -0,0 +1,287 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Interface.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Interface'. + * + * + * + * An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface. + * + * Since interfaces are declarations, they are not instantiable. Instead, an interface specification is implemented by an instance of an instantiable classifier, which means that the instantiable classifier presents a public facade that conforms to the interface specification. Note that a given classifier may implement more than one interface and that an interface may be implemented by a number of different classifiers. + * + * + * Adds the capability for interfaces to include receptions (in addition to operations). + * Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Interface#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.Interface#getNestedClassifiers Nested Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.Interface#getRedefinedInterfaces Redefined Interface}
  • + *
  • {@link org.eclipse.uml2.uml.Interface#getOwnedReceptions Owned Reception}
  • + *
  • {@link org.eclipse.uml2.uml.Interface#getProtocol Protocol}
  • + *
  • {@link org.eclipse.uml2.uml.Interface#getOwnedOperations Owned Operation}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInterface() + * @model + * @generated + */ +public interface Interface + extends Classifier { + + /** + * Returns the value of the 'Owned Attribute' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * The attributes (i.e. the properties) owned by the class. + * + * @return the value of the 'Owned Attribute' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterface_OwnedAttribute() + * @model type="org.eclipse.uml2.uml.Property" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedAttributes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Owned Attribute' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getOwnedAttributes() + * @generated + */ + Property getOwnedAttribute(String name); + + /** + * Returns the value of the 'Nested Classifier' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * References all the Classifiers that are defined (nested) within the Class. + * + * @return the value of the 'Nested Classifier' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterface_NestedClassifier() + * @model type="org.eclipse.uml2.uml.Classifier" containment="true" resolveProxies="false" + * @generated + */ + List getNestedClassifiers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Classifier} and appends it to the 'Nested Classifier' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to create. + * @return The new {@link org.eclipse.uml2.uml.Classifier}. + * @see #getNestedClassifiers() + * @generated + */ + Classifier createNestedClassifier(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Nested Classifier' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getNestedClassifiers() + * @generated + */ + Classifier getNestedClassifier(String name); + + /** + * Returns the value of the 'Redefined Interface' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Interface}. + * + * + * + * References all the Interfaces redefined by this Interface. + * + * @return the value of the 'Redefined Interface' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterface_RedefinedInterface() + * @model type="org.eclipse.uml2.uml.Interface" ordered="false" + * @generated + */ + List getRedefinedInterfaces(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Interface} with the specified 'Name' from the 'Redefined Interface' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Interface} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Interface} with the specified 'Name', or null. + * @see #getRedefinedInterfaces() + * @generated + */ + Interface getRedefinedInterface(String name); + + /** + * Returns the value of the 'Owned Reception' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Reception}. + * + * + * + * Receptions that objects providing this interface are willing to accept. + * + * @return the value of the 'Owned Reception' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterface_OwnedReception() + * @model type="org.eclipse.uml2.uml.Reception" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedReceptions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Reception} and appends it to the 'Owned Reception' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Reception}. + * @see #getOwnedReceptions() + * @generated + */ + Reception createOwnedReception(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Reception} with the specified 'Name' from the 'Owned Reception' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Reception} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Reception} with the specified 'Name', or null. + * @see #getOwnedReceptions() + * @generated + */ + Reception getOwnedReception(String name); + + /** + * Returns the value of the 'Protocol' containment reference. + * + * + * + * References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface. + * + * @return the value of the 'Protocol' containment reference. + * @see #setProtocol(ProtocolStateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getInterface_Protocol() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ProtocolStateMachine getProtocol(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Interface#getProtocol Protocol}' containment reference. + * + * + * @param value the new value of the 'Protocol' containment reference. + * @see #getProtocol() + * @generated + */ + void setProtocol(ProtocolStateMachine value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ProtocolStateMachine} and sets the 'Protocol' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.ProtocolStateMachine}. + * @see #getProtocol() + * @generated + */ + ProtocolStateMachine createProtocol(); + + /** + * Returns the value of the 'Owned Operation' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Operation}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Operation#getInterface Interface}'. + * + * + * + * The operations owned by the class. + * + * @return the value of the 'Owned Operation' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterface_OwnedOperation() + * @see org.eclipse.uml2.uml.Operation#getInterface + * @model type="org.eclipse.uml2.uml.Operation" opposite="interface" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedOperations(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Operation} and appends it to the 'Owned Operation' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Operation}. + * @see #getOwnedOperations() + * @generated + */ + Operation createOwnedOperation(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified 'Name' from the 'Owned Operation' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Operation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Operation} with the specified 'Name', or null. + * @see #getOwnedOperations() + * @generated + */ + Operation getOwnedOperation(String name); + + /** + * + * + * + * The visibility of all features owned by an interface must be public. + * self.feature->forAll(f | f.visibility = #public) + * + * @model + * @generated + */ + boolean validateVisibility(DiagnosticChain diagnostics, Map context); + +} // Interface diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java new file mode 100644 index 00000000..053adbf2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterfaceRealization.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterfaceRealization.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Interface Realization'. + * + * + * + * An InterfaceRealization is a specialized Realization relationship between a Classifier and an Interface. This relationship signifies that the realizing classifier conforms to the contract specified by the Interface. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InterfaceRealization#getContract Contract}
  • + *
  • {@link org.eclipse.uml2.uml.InterfaceRealization#getImplementingClassifier Implementing Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInterfaceRealization() + * @model + * @generated + */ +public interface InterfaceRealization + extends Realization { + + /** + * Returns the value of the 'Contract' reference. + * + * + * + * References the Interface specifying the conformance contract. + * + * @return the value of the 'Contract' reference. + * @see #setContract(Interface) + * @see org.eclipse.uml2.uml.UMLPackage#getInterfaceRealization_Contract() + * @model required="true" ordered="false" + * @generated + */ + Interface getContract(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InterfaceRealization#getContract Contract}' reference. + * + * + * @param value the new value of the 'Contract' reference. + * @see #getContract() + * @generated + */ + void setContract(Interface value); + + /** + * Returns the value of the 'Implementing Classifier' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.BehavioredClassifier#getInterfaceRealizations Interface Realization}'. + * + * + * + * References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points). + * + * @return the value of the 'Implementing Classifier' container reference. + * @see #setImplementingClassifier(BehavioredClassifier) + * @see org.eclipse.uml2.uml.UMLPackage#getInterfaceRealization_ImplementingClassifier() + * @see org.eclipse.uml2.uml.BehavioredClassifier#getInterfaceRealizations + * @model opposite="interfaceRealization" required="true" ordered="false" + * @generated + */ + BehavioredClassifier getImplementingClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InterfaceRealization#getImplementingClassifier Implementing Classifier}' container reference. + * + * + * @param value the new value of the 'Implementing Classifier' container reference. + * @see #getImplementingClassifier() + * @generated + */ + void setImplementingClassifier(BehavioredClassifier value); + +} // InterfaceRealization diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterruptibleActivityRegion.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterruptibleActivityRegion.java new file mode 100644 index 00000000..95683b6b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InterruptibleActivityRegion.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterruptibleActivityRegion.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Interruptible Activity Region'. + * + * + * + * An interruptible region contains activity nodes. When a token leaves an interruptible region via edges designated by the region as interrupting edges, all tokens and behaviors in the region are terminated. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InterruptibleActivityRegion#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.InterruptibleActivityRegion#getInterruptingEdges Interrupting Edge}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInterruptibleActivityRegion() + * @model + * @generated + */ +public interface InterruptibleActivityRegion + extends ActivityGroup { + + /** + * Returns the value of the 'Node' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getInInterruptibleRegions In Interruptible Region}'. + * + * + * + * Nodes immediately contained in the group. + * + * @return the value of the 'Node' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterruptibleActivityRegion_Node() + * @see org.eclipse.uml2.uml.ActivityNode#getInInterruptibleRegions + * @model type="org.eclipse.uml2.uml.ActivityNode" opposite="inInterruptibleRegion" ordered="false" + * @generated + */ + List getNodes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name' from the 'Node' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name', or null. + * @see #getNodes() + * @generated + */ + ActivityNode getNode(String name); + + /** + * Returns the value of the 'Interrupting Edge' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getInterrupts Interrupts}'. + * + * + * + * The edges leaving the region that will abort other tokens flowing in the region. + * + * @return the value of the 'Interrupting Edge' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInterruptibleActivityRegion_InterruptingEdge() + * @see org.eclipse.uml2.uml.ActivityEdge#getInterrupts + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="interrupts" ordered="false" + * @generated + */ + List getInterruptingEdges(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Interrupting Edge' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getInterruptingEdges() + * @generated + */ + ActivityEdge getInterruptingEdge(String name); + + /** + * + * + * + * Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region. + * + * + * true + * + * @model + * @generated + */ + boolean validateInterruptingEdges(DiagnosticChain diagnostics, Map context); + +} // InterruptibleActivityRegion diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interval.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interval.java new file mode 100644 index 00000000..4ee4bacb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Interval.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Interval.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Interval'. + * + * + * + * An Interval defines the range between two value specifications. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Interval#getMin Min}
  • + *
  • {@link org.eclipse.uml2.uml.Interval#getMax Max}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInterval() + * @model + * @generated + */ +public interface Interval + extends ValueSpecification { + + /** + * Returns the value of the 'Min' reference. + * + * + * + * Refers to the ValueSpecification denoting the minimum value of the range. + * + * @return the value of the 'Min' reference. + * @see #setMin(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getInterval_Min() + * @model required="true" ordered="false" + * @generated + */ + ValueSpecification getMin(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Interval#getMin Min}' reference. + * + * + * @param value the new value of the 'Min' reference. + * @see #getMin() + * @generated + */ + void setMin(ValueSpecification value); + + /** + * Returns the value of the 'Max' reference. + * + * + * + * Refers to the ValueSpecification denoting the maximum value of the range. + * + * @return the value of the 'Max' reference. + * @see #setMax(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getInterval_Max() + * @model required="true" ordered="false" + * @generated + */ + ValueSpecification getMax(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Interval#getMax Max}' reference. + * + * + * @param value the new value of the 'Max' reference. + * @see #getMax() + * @generated + */ + void setMax(ValueSpecification value); + +} // Interval diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/IntervalConstraint.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/IntervalConstraint.java new file mode 100644 index 00000000..54d00cbe --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/IntervalConstraint.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: IntervalConstraint.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Interval Constraint'. + * + * + * + * A IntervalConstraint defines a Constraint that refers to an Interval. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getIntervalConstraint() + * @model + * @generated + */ +public interface IntervalConstraint + extends Constraint { +} // IntervalConstraint diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java new file mode 100644 index 00000000..e449b8fa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/InvocationAction.java @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InvocationAction.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Invocation Action'. + * + * + * + * Invocation is an abstract class for the various actions that invoke behavior. + * In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InvocationAction#getArguments Argument}
  • + *
  • {@link org.eclipse.uml2.uml.InvocationAction#getOnPort On Port}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getInvocationAction() + * @model abstract="true" + * @generated + */ +public interface InvocationAction + extends Action { + + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InputPin}. + * + * + * + * Specification of the ordered set of argument values that appears during execution. + * + * @return the value of the 'Argument' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getInvocationAction_Argument() + * @model type="org.eclipse.uml2.uml.InputPin" containment="true" resolveProxies="false" + * @generated + */ + List getArguments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Argument' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getArguments() + * @generated + */ + InputPin createArgument(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Argument' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getArguments() + * @generated + */ + InputPin createArgument(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name' from the 'Argument' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name', or null. + * @see #getArguments() + * @generated + */ + InputPin getArgument(String name); + + /** + * Returns the value of the 'On Port' reference. + * + * + * + * A optional port of the receiver object on which the behavioral feature is invoked. + * + * @return the value of the 'On Port' reference. + * @see #setOnPort(Port) + * @see org.eclipse.uml2.uml.UMLPackage#getInvocationAction_OnPort() + * @model ordered="false" + * @generated + */ + Port getOnPort(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.InvocationAction#getOnPort On Port}' reference. + * + * + * @param value the new value of the 'On Port' reference. + * @see #getOnPort() + * @generated + */ + void setOnPort(Port value); + + /** + * + * + * + * The onPort must be a port on the receiver object. + * true + * + * @model + * @generated + */ + boolean validateOnPort(DiagnosticChain diagnostics, Map context); + +} // InvocationAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/JoinNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/JoinNode.java new file mode 100644 index 00000000..717930f9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/JoinNode.java @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: JoinNode.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Join Node'. + * + * + * + * A join node has multiple incoming edges and one outgoing edge. + * A join node has multiple incoming edges and one outgoing edge. In CompleteActivities, Join nodes have a Boolean value specification using the names of the incoming edges to specify the conditions under which the join will emit a token. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.JoinNode#isCombineDuplicate Is Combine Duplicate}
  • + *
  • {@link org.eclipse.uml2.uml.JoinNode#getJoinSpec Join Spec}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getJoinNode() + * @model + * @generated + */ +public interface JoinNode + extends ControlNode { + + /** + * Returns the value of the 'Is Combine Duplicate' attribute. + * The default value is "true". + * + * + * + * Tells whether tokens having objects with the same identity are combined into one by the join. + * + * @return the value of the 'Is Combine Duplicate' attribute. + * @see #setIsCombineDuplicate(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getJoinNode_IsCombineDuplicate() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isCombineDuplicate(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.JoinNode#isCombineDuplicate Is Combine Duplicate}' attribute. + * + * + * @param value the new value of the 'Is Combine Duplicate' attribute. + * @see #isCombineDuplicate() + * @generated + */ + void setIsCombineDuplicate(boolean value); + + /** + * Returns the value of the 'Join Spec' containment reference. + * + * + * + * A specification giving the conditions under which the join with emit a token. Default is "and". + * + * @return the value of the 'Join Spec' containment reference. + * @see #setJoinSpec(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getJoinNode_JoinSpec() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getJoinSpec(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.JoinNode#getJoinSpec Join Spec}' containment reference. + * + * + * @param value the new value of the 'Join Spec' containment reference. + * @see #getJoinSpec() + * @generated + */ + void setJoinSpec(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Join Spec' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getJoinSpec() + * @generated + */ + ValueSpecification createJoinSpec(EClass eClass); + + /** + * + * + * + * A join node has one outgoing edge. + * self.outgoing->size() = 1 + * + * @model + * @generated + */ + boolean validateOneOutgoingEdge(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow. + * (self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies + * + * self.outgoing.isTypeOf(ObjectFlow)) and + * + * (self.incoming.select(e | e.isTypeOf(ObjectFlow)->empty() implies + * + * self.outgoing.isTypeOf(ControlFlow)) + * + * @model + * @generated + */ + boolean validateIncomingObjectFlow(DiagnosticChain diagnostics, Map context); + +} // JoinNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Lifeline.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Lifeline.java new file mode 100644 index 00000000..71c08d0e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Lifeline.java @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Lifeline.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Lifeline'. + * + * + * + * A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen. + * A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. + * + * + * + * If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. + * + * + * + * If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Lifeline#getRepresents Represents}
  • + *
  • {@link org.eclipse.uml2.uml.Lifeline#getInteraction Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.Lifeline#getSelector Selector}
  • + *
  • {@link org.eclipse.uml2.uml.Lifeline#getDecomposedAs Decomposed As}
  • + *
  • {@link org.eclipse.uml2.uml.Lifeline#getCoveredBys Covered By}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLifeline() + * @model + * @generated + */ +public interface Lifeline + extends NamedElement { + + /** + * Returns the value of the 'Represents' reference. + * + * + * + * References the ConnectableElement within the classifier that contains the enclosing interaction. + * + * @return the value of the 'Represents' reference. + * @see #setRepresents(ConnectableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getLifeline_Represents() + * @model ordered="false" + * @generated + */ + ConnectableElement getRepresents(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Lifeline#getRepresents Represents}' reference. + * + * + * @param value the new value of the 'Represents' reference. + * @see #getRepresents() + * @generated + */ + void setRepresents(ConnectableElement value); + + /** + * Returns the value of the 'Interaction' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Interaction#getLifelines Lifeline}'. + * + * + * + * References the Interaction enclosing this Lifeline. + * + * @return the value of the 'Interaction' container reference. + * @see #setInteraction(Interaction) + * @see org.eclipse.uml2.uml.UMLPackage#getLifeline_Interaction() + * @see org.eclipse.uml2.uml.Interaction#getLifelines + * @model opposite="lifeline" required="true" ordered="false" + * @generated + */ + Interaction getInteraction(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Lifeline#getInteraction Interaction}' container reference. + * + * + * @param value the new value of the 'Interaction' container reference. + * @see #getInteraction() + * @generated + */ + void setInteraction(Interaction value); + + /** + * Returns the value of the 'Selector' containment reference. + * + * + * + * If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set. + * + * @return the value of the 'Selector' containment reference. + * @see #setSelector(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getLifeline_Selector() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getSelector(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Lifeline#getSelector Selector}' containment reference. + * + * + * @param value the new value of the 'Selector' containment reference. + * @see #getSelector() + * @generated + */ + void setSelector(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Selector' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getSelector() + * @generated + */ + ValueSpecification createSelector(EClass eClass); + + /** + * Returns the value of the 'Decomposed As' reference. + * + * + * + * References the Interaction that represents the decomposition. + * + * @return the value of the 'Decomposed As' reference. + * @see #setDecomposedAs(PartDecomposition) + * @see org.eclipse.uml2.uml.UMLPackage#getLifeline_DecomposedAs() + * @model ordered="false" + * @generated + */ + PartDecomposition getDecomposedAs(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Lifeline#getDecomposedAs Decomposed As}' reference. + * + * + * @param value the new value of the 'Decomposed As' reference. + * @see #getDecomposedAs() + * @generated + */ + void setDecomposedAs(PartDecomposition value); + + /** + * Returns the value of the 'Covered By' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InteractionFragment}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InteractionFragment#getCovereds Covered}'. + * + *

+ * If the meaning of the 'Covered By' reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Covered By' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLifeline_CoveredBy() + * @see org.eclipse.uml2.uml.InteractionFragment#getCovereds + * @model type="org.eclipse.uml2.uml.InteractionFragment" opposite="covered" ordered="false" + * @generated + */ + List getCoveredBys(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InteractionFragment} with the specified 'Name' from the 'Covered By' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InteractionFragment} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InteractionFragment} with the specified 'Name', or null. + * @see #getCoveredBys() + * @generated + */ + InteractionFragment getCoveredBy(String name); + + /** + * + * + * + * If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations. + * true + * + * @model + * @generated + */ + boolean validateInteractionUsesShareLifeline(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The selector for a Lifeline must only be specified if the referenced Part is multivalued. + * (self.selector->isEmpty() implies not self.represents.isMultivalued()) or + * (not self.selector->isEmpty() implies self.represents.isMultivalued()) + * + * + * @model + * @generated + */ + boolean validateSelectorSpecified(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline. + * if (represents->notEmpty()) then + * (if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued()) + * + * + * @model + * @generated + */ + boolean validateSameClassifier(DiagnosticChain diagnostics, Map context); + +} // Lifeline diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkAction.java new file mode 100644 index 00000000..6e02cfb4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkAction.java @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkAction.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Link Action'. + * + * + * + * A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkAction#getEndData End Data}
  • + *
  • {@link org.eclipse.uml2.uml.LinkAction#getInputValues Input Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLinkAction() + * @model abstract="true" + * @generated + */ +public interface LinkAction + extends Action { + + /** + * Returns the value of the 'End Data' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.LinkEndData}. + * + * + * + * Data identifying one end of a link by the objects on its ends and qualifiers. + * + * @return the value of the 'End Data' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLinkAction_EndData() + * @model type="org.eclipse.uml2.uml.LinkEndData" containment="true" resolveProxies="false" lower="2" ordered="false" + * @generated + */ + List getEndData(); + + /** + * Creates a {@link org.eclipse.uml2.uml.LinkEndData} and appends it to the 'End Data' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.LinkEndData} to create. + * @return The new {@link org.eclipse.uml2.uml.LinkEndData}. + * @see #getEndData() + * @generated + */ + LinkEndData createEndData(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.LinkEndData} and appends it to the 'End Data' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.LinkEndData}. + * @see #getEndData() + * @generated + */ + LinkEndData createEndData(); + + /** + * Returns the value of the 'Input Value' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InputPin}. + * + * + * + * Pins taking end objects and qualifier values as input. + * + * @return the value of the 'Input Value' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLinkAction_InputValue() + * @model type="org.eclipse.uml2.uml.InputPin" containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + List getInputValues(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Input Value' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getInputValues() + * @generated + */ + InputPin createInputValue(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Input Value' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getInputValues() + * @generated + */ + InputPin createInputValue(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name' from the 'Input Value' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name', or null. + * @see #getInputValues() + * @generated + */ + InputPin getInputValue(String name); + + /** + * + * + * + * The association ends of the link end data must all be from the same association and include all and only the association ends of that association. + * self.endData->collect(end) = self.association()->collect(connection)) + * + * @model + * @generated + */ + boolean validateSameAssociation(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The association ends of the link end data must not be static. + * self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false + * + * @model + * @generated + */ + boolean validateNotStatic(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The input pins of the action are the same as the pins of the link end data and insertion pins. + * self.input->asSet() = + * let ledpins : Set = self.endData->collect(value) in + * if self.oclIsKindOf(LinkEndCreationData) + * then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt) + * else ledpins + * + * + * @model + * @generated + */ + boolean validateSamePins(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The association operates on LinkAction. It returns the association of the action. + * result = self.endData->asSequence().first().end.association + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + Association association(); + +} // LinkAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndCreationData.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndCreationData.java new file mode 100644 index 00000000..45144bcc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndCreationData.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndCreationData.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Link End Creation Data'. + * + * + * + * This class is required when using CreateLinkAction, to specify insertion points for ordered ends and for replacing all links at end. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + * + * + * + * Qualifier values are used in CompleteActions to identify links to create. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkEndCreationData#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndCreationData#getInsertAt Insert At}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndCreationData() + * @model + * @generated + */ +public interface LinkEndCreationData + extends LinkEndData { + + /** + * Returns the value of the 'Is Replace All' attribute. + * The default value is "false". + * + * + * + * Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link. + * + * @return the value of the 'Is Replace All' attribute. + * @see #setIsReplaceAll(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndCreationData_IsReplaceAll() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isReplaceAll(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndCreationData#isReplaceAll Is Replace All}' attribute. + * + * + * @param value the new value of the 'Is Replace All' attribute. + * @see #isReplaceAll() + * @generated + */ + void setIsReplaceAll(boolean value); + + /** + * Returns the value of the 'Insert At' reference. + * + * + * + * Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered. + * + * @return the value of the 'Insert At' reference. + * @see #setInsertAt(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndCreationData_InsertAt() + * @model ordered="false" + * @generated + */ + InputPin getInsertAt(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndCreationData#getInsertAt Insert At}' reference. + * + * + * @param value the new value of the 'Insert At' reference. + * @see #getInsertAt() + * @generated + */ + void setInsertAt(InputPin value); + + /** + * + * + * + * LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations. + * self.LinkAction.oclIsKindOf(CreateLinkAction) + * + * @model + * @generated + */ + boolean validateCreateLinkAction(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + * let insertAtPins : Collection = self.insertAt in + * if self.end.ordering = #unordered + * then insertAtPins->size() = 0 + * else let insertAtPin : InputPin = insertAts->asSequence()->first() in + * insertAtPins->size() = 1 + * and insertAtPin.type = UnlimitedNatural + * and insertAtPin.multiplicity.is(1,1)) + * endif + * + * + * @model + * @generated + */ + boolean validateSingleInputPin(DiagnosticChain diagnostics, Map context); + +} // LinkEndCreationData diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndData.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndData.java new file mode 100644 index 00000000..37226a41 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndData.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndData.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Link End Data'. + * + * + * + * LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + * LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkEndData#getValue Value}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndData#getEnd End}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndData#getQualifiers Qualifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndData() + * @model + * @generated + */ +public interface LinkEndData + extends Element { + + /** + * Returns the value of the 'Value' reference. + * + * + * + * Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading. + * + * @return the value of the 'Value' reference. + * @see #setValue(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndData_Value() + * @model ordered="false" + * @generated + */ + InputPin getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndData#getValue Value}' reference. + * + * + * @param value the new value of the 'Value' reference. + * @see #getValue() + * @generated + */ + void setValue(InputPin value); + + /** + * Returns the value of the 'End' reference. + * + * + * + * Association end for which this link-end data specifies values. + * + * @return the value of the 'End' reference. + * @see #setEnd(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndData_End() + * @model required="true" ordered="false" + * @generated + */ + Property getEnd(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndData#getEnd End}' reference. + * + * + * @param value the new value of the 'End' reference. + * @see #getEnd() + * @generated + */ + void setEnd(Property value); + + /** + * Returns the value of the 'Qualifier' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.QualifierValue}. + * + * + * + * List of qualifier values + * + * @return the value of the 'Qualifier' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndData_Qualifier() + * @model type="org.eclipse.uml2.uml.QualifierValue" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getQualifiers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.QualifierValue} and appends it to the 'Qualifier' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.QualifierValue}. + * @see #getQualifiers() + * @generated + */ + QualifierValue createQualifier(); + + /** + * + * + * + * The property must be an association end. + * self.end.association->size() = 1 + * + * @model + * @generated + */ + boolean validatePropertyIsAssociationEnd(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The type of the end object input pin is the same as the type of the association end. + * self.value.type = self.end.type + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the end object input pin must be 1..1. + * self.value.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The qualifiers include all and only the qualifiers of the association end. + * self.qualifier->collect(qualifier) = self.end.qualifier + * + * @model + * @generated + */ + boolean validateQualifiers(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The end object input pin is not also a qualifier value input pin. + * self.value->excludesAll(self.qualifier.value) + * + * @model + * @generated + */ + boolean validateEndObjectInputPin(DiagnosticChain diagnostics, Map context); + +} // LinkEndData diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndDestructionData.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndDestructionData.java new file mode 100644 index 00000000..e946d125 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LinkEndDestructionData.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndDestructionData.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Link End Destruction Data'. + * + * + * + * This class is required when using DestroyLinkAction, to specify links to destroy for nonunique ordered ends. A link cannot be passed as a runtime value to or from an action. + * + * + * + * Qualifier values are used in CompleteActions to identify links to destroy. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkEndDestructionData#isDestroyDuplicates Is Destroy Duplicates}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndDestructionData#getDestroyAt Destroy At}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndDestructionData() + * @model + * @generated + */ +public interface LinkEndDestructionData + extends LinkEndData { + + /** + * Returns the value of the 'Is Destroy Duplicates' attribute. + * The default value is "false". + * + * + * + * Specifies whether to destroy duplicates of the value in nonunique association ends. + * + * @return the value of the 'Is Destroy Duplicates' attribute. + * @see #setIsDestroyDuplicates(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndDestructionData_IsDestroyDuplicates() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDestroyDuplicates(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndDestructionData#isDestroyDuplicates Is Destroy Duplicates}' attribute. + * + * + * @param value the new value of the 'Is Destroy Duplicates' attribute. + * @see #isDestroyDuplicates() + * @generated + */ + void setIsDestroyDuplicates(boolean value); + + /** + * Returns the value of the 'Destroy At' reference. + * + * + * + * Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + * + * @return the value of the 'Destroy At' reference. + * @see #setDestroyAt(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getLinkEndDestructionData_DestroyAt() + * @model ordered="false" + * @generated + */ + InputPin getDestroyAt(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndDestructionData#getDestroyAt Destroy At}' reference. + * + * + * @param value the new value of the 'Destroy At' reference. + * @see #getDestroyAt() + * @generated + */ + void setDestroyAt(InputPin value); + + /** + * + * + * + * LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations. + * true + * + * @model + * @generated + */ + boolean validateDestroyLinkAction(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position. + * true + * + * @model + * @generated + */ + boolean validateUnlimitedNaturalAndMultiplicity( + DiagnosticChain diagnostics, Map context); + +} // LinkEndDestructionData diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralBoolean.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralBoolean.java new file mode 100644 index 00000000..59cca083 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralBoolean.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralBoolean.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Literal Boolean'. + * + * + * + * A literal boolean contains a Boolean-valued attribute. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralBoolean#isValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralBoolean() + * @model + * @generated + */ +public interface LiteralBoolean + extends LiteralSpecification { + + /** + * Returns the value of the 'Value' attribute. + * + * + * + * The specified Boolean value. + * + * @return the value of the 'Value' attribute. + * @see #setValue(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralBoolean_Value() + * @model required="true" ordered="false" + * @generated + */ + boolean isValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LiteralBoolean#isValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #isValue() + * @generated + */ + void setValue(boolean value); + +} // LiteralBoolean diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralInteger.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralInteger.java new file mode 100644 index 00000000..d37534b0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralInteger.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralInteger.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Literal Integer'. + * + * + * + * A literal integer contains an Integer-valued attribute. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralInteger#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralInteger() + * @model + * @generated + */ +public interface LiteralInteger + extends LiteralSpecification { + + /** + * Returns the value of the 'Value' attribute. + * + * + * + * The specified Integer value. + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralInteger_Value() + * @model required="true" ordered="false" + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LiteralInteger#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // LiteralInteger diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralNull.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralNull.java new file mode 100644 index 00000000..aae3664e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralNull.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralNull.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Literal Null'. + * + * + * + * A literal null is used to represent null, i.e., the absence of a value. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralNull() + * @model + * @generated + */ +public interface LiteralNull + extends LiteralSpecification { +} // LiteralNull diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralSpecification.java new file mode 100644 index 00000000..8c761a06 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralSpecification.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralSpecification.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Literal Specification'. + * + * + * + * A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralSpecification() + * @model abstract="true" + * @generated + */ +public interface LiteralSpecification + extends ValueSpecification { +} // LiteralSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralString.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralString.java new file mode 100644 index 00000000..fa154222 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralString.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralString.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Literal String'. + * + * + * + * A literal string contains a String-valued attribute. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralString#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralString() + * @model + * @generated + */ +public interface LiteralString + extends LiteralSpecification { + + /** + * Returns the value of the 'Value' attribute. + * + * + * + * The specified String value. + * + * @return the value of the 'Value' attribute. + * @see #setValue(String) + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralString_Value() + * @model required="true" ordered="false" + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LiteralString#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // LiteralString diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralUnlimitedNatural.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralUnlimitedNatural.java new file mode 100644 index 00000000..6593ef96 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LiteralUnlimitedNatural.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralUnlimitedNatural.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Literal Unlimited Natural'. + * + * + * + * A literal unlimited natural contains a UnlimitedNatural-valued attribute. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralUnlimitedNatural#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralUnlimitedNatural() + * @model + * @generated + */ +public interface LiteralUnlimitedNatural + extends LiteralSpecification { + + /** + * Returns the value of the 'Value' attribute. + * + * + * + * The specified UnlimitedNatural value. + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see org.eclipse.uml2.uml.UMLPackage#getLiteralUnlimitedNatural_Value() + * @model required="true" ordered="false" + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LiteralUnlimitedNatural#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // LiteralUnlimitedNatural diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LoopNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LoopNode.java new file mode 100644 index 00000000..038579aa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/LoopNode.java @@ -0,0 +1,364 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LoopNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Loop Node'. + * + * + * + * Each section is a well-nested subregion of the activity whose nodes follow any predecessors of the loop and precede any successors of the loop. The test section may precede or follow the body section. The setup section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the test produces a false value. The results of the final execution of the test or body are available after completion of execution of the loop. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LoopNode#isTestedFirst Is Tested First}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getBodyParts Body Part}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getSetupParts Setup Part}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getDecider Decider}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getTests Test}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getResults Result}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getLoopVariables Loop Variable}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getBodyOutputs Body Output}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#getLoopVariableInputs Loop Variable Input}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode() + * @model + * @generated + */ +public interface LoopNode + extends StructuredActivityNode { + + /** + * Returns the value of the 'Is Tested First' attribute. + * + * + * + * If true, the test is performed before the first execution of the body. + * If false, the body is executed once before the test is performed. + * + * + * @return the value of the 'Is Tested First' attribute. + * @see #setIsTestedFirst(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_IsTestedFirst() + * @model required="true" ordered="false" + * @generated + */ + boolean isTestedFirst(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LoopNode#isTestedFirst Is Tested First}' attribute. + * + * + * @param value the new value of the 'Is Tested First' attribute. + * @see #isTestedFirst() + * @generated + */ + void setIsTestedFirst(boolean value); + + /** + * Returns the value of the 'Body Part' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExecutableNode}. + * + * + * + * The set of nodes and edges that perform the repetitive computations of the loop. The body section is executed as long as the test section produces a true value. + * + * @return the value of the 'Body Part' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_BodyPart() + * @model type="org.eclipse.uml2.uml.ExecutableNode" ordered="false" + * @generated + */ + List getBodyParts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name' from the 'Body Part' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExecutableNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name', or null. + * @see #getBodyParts() + * @generated + */ + ExecutableNode getBodyPart(String name); + + /** + * Returns the value of the 'Setup Part' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExecutableNode}. + * + * + * + * The set of nodes and edges that initialize values or perform other setup computations for the loop. + * + * @return the value of the 'Setup Part' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_SetupPart() + * @model type="org.eclipse.uml2.uml.ExecutableNode" ordered="false" + * @generated + */ + List getSetupParts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name' from the 'Setup Part' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExecutableNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name', or null. + * @see #getSetupParts() + * @generated + */ + ExecutableNode getSetupPart(String name); + + /** + * Returns the value of the 'Decider' reference. + * + * + * + * An output pin within the test fragment the value of which is examined after execution of the test to determine whether to execute the loop body. + * + * @return the value of the 'Decider' reference. + * @see #setDecider(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_Decider() + * @model required="true" ordered="false" + * @generated + */ + OutputPin getDecider(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.LoopNode#getDecider Decider}' reference. + * + * + * @param value the new value of the 'Decider' reference. + * @see #getDecider() + * @generated + */ + void setDecider(OutputPin value); + + /** + * Returns the value of the 'Test' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExecutableNode}. + * + * + * + * The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed. + * + * @return the value of the 'Test' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_Test() + * @model type="org.eclipse.uml2.uml.ExecutableNode" ordered="false" + * @generated + */ + List getTests(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name' from the 'Test' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExecutableNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name', or null. + * @see #getTests() + * @generated + */ + ExecutableNode getTest(String name); + + /** + * Returns the value of the 'Result' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * A list of output pins that constitute the data flow output of the entire loop. + * + * @return the value of the 'Result' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_Result() + * @model type="org.eclipse.uml2.uml.OutputPin" containment="true" resolveProxies="false" + * @generated + */ + List getResults(); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and appends it to the 'Result' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResults() + * @generated + */ + OutputPin createResult(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Result' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getResults() + * @generated + */ + OutputPin getResult(String name); + + /** + * Returns the value of the 'Loop Variable' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * A list of output pins owned by the loop that hold the values of the loop variables during an execution of the loop. When the test fails, the values are movied to the result pins of the loop. + * + * @return the value of the 'Loop Variable' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_LoopVariable() + * @model type="org.eclipse.uml2.uml.OutputPin" containment="true" resolveProxies="false" + * @generated + */ + List getLoopVariables(); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and appends it to the 'Loop Variable' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getLoopVariables() + * @generated + */ + OutputPin createLoopVariable(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Loop Variable' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getLoopVariables() + * @generated + */ + OutputPin getLoopVariable(String name); + + /** + * Returns the value of the 'Body Output' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * A list of output pins within the body fragment the values of which are moved to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits. + * + * @return the value of the 'Body Output' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_BodyOutput() + * @model type="org.eclipse.uml2.uml.OutputPin" ordered="false" + * @generated + */ + List getBodyOutputs(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Body Output' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getBodyOutputs() + * @generated + */ + OutputPin getBodyOutput(String name); + + /** + * Returns the value of the 'Loop Variable Input' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InputPin}. + * + * + * + * A list of values that are moved into the loop variable pins before the first iteration of the loop. + * + * @return the value of the 'Loop Variable Input' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getLoopNode_LoopVariableInput() + * @model type="org.eclipse.uml2.uml.InputPin" containment="true" resolveProxies="false" + * @generated + */ + List getLoopVariableInputs(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Loop Variable Input' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getLoopVariableInputs() + * @generated + */ + InputPin createLoopVariableInput(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Loop Variable Input' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getLoopVariableInputs() + * @generated + */ + InputPin createLoopVariableInput(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name' from the 'Loop Variable Input' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name', or null. + * @see #getLoopVariableInputs() + * @generated + */ + InputPin getLoopVariableInput(String name); + + /** + * + * + * + * Loop variable inputs must not have outgoing edges. + * true + * + * @model + * @generated + */ + boolean validateInputEdges(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The bodyOutput pins are output pins on actions in the body of the loop node. + * true + * + * @model + * @generated + */ + boolean validateBodyOutput(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The result output pins have no incoming edges. + * true + * + * @model + * @generated + */ + boolean validateResultNoIncoming(DiagnosticChain diagnostics, Map context); + +} // LoopNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Manifestation.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Manifestation.java new file mode 100644 index 00000000..1a7bc329 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Manifestation.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Manifestation.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Manifestation'. + * + * + * + * In the metamodel, a Manifestation is a subtype of Abstraction. A Manifestation is owned by an Artifact. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Manifestation#getUtilizedElement Utilized Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getManifestation() + * @model + * @generated + */ +public interface Manifestation + extends Abstraction { + + /** + * Returns the value of the 'Utilized Element' reference. + * + * + * + * The model element that is utilized in the manifestation in an Artifact. + * + * @return the value of the 'Utilized Element' reference. + * @see #setUtilizedElement(PackageableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getManifestation_UtilizedElement() + * @model required="true" ordered="false" + * @generated + */ + PackageableElement getUtilizedElement(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Manifestation#getUtilizedElement Utilized Element}' reference. + * + * + * @param value the new value of the 'Utilized Element' reference. + * @see #getUtilizedElement() + * @generated + */ + void setUtilizedElement(PackageableElement value); + +} // Manifestation diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MergeNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MergeNode.java new file mode 100644 index 00000000..e2bbb90d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MergeNode.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MergeNode.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Merge Node'. + * + * + * + * A merge node has multiple incoming edges and a single outgoing edge. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getMergeNode() + * @model + * @generated + */ +public interface MergeNode + extends ControlNode { + + /** + * + * + * + * A merge node has one outgoing edge. + * true + * + * @model + * @generated + */ + boolean validateOneOutgoingEdge(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The edges coming into and out of a merge node must be either all object flows or all control flows. + * true + * + * @model + * @generated + */ + boolean validateEdges(DiagnosticChain diagnostics, Map context); + +} // MergeNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Message.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Message.java new file mode 100644 index 00000000..8dac96ca --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Message.java @@ -0,0 +1,345 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Message.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Message'. + * + * + * + * A Message is a NamedElement that defines a particular communication between Lifelines of an Interaction. A communication can be e.g. raising a signal, invoking an Operation, creating or destroying an Instance. The Message specifies not only the kind of communication given by the dispatching ExecutionSpecification, but also the sender and the receiver. A Message associates normally two OccurrenceSpecifications - one sending OccurrenceSpecification and one receiving OccurrenceSpecification. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Message#getMessageKind Message Kind}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getMessageSort Message Sort}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getReceiveEvent Receive Event}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getSendEvent Send Event}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getConnector Connector}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getInteraction Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getArguments Argument}
  • + *
  • {@link org.eclipse.uml2.uml.Message#getSignature Signature}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getMessage() + * @model + * @generated + */ +public interface Message + extends NamedElement { + + /** + * Returns the value of the 'Message Kind' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.MessageKind}. + * + * + * + * The derived kind of the Message (complete, lost, found or unknown) + * + * @return the value of the 'Message Kind' attribute. + * @see org.eclipse.uml2.uml.MessageKind + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_MessageKind() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + MessageKind getMessageKind(); + + /** + * Returns the value of the 'Message Sort' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.MessageSort}. + * + * + * + * The sort of communication reflected by the Message + * + * @return the value of the 'Message Sort' attribute. + * @see org.eclipse.uml2.uml.MessageSort + * @see #setMessageSort(MessageSort) + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_MessageSort() + * @model required="true" ordered="false" + * @generated + */ + MessageSort getMessageSort(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Message#getMessageSort Message Sort}' attribute. + * + * + * @param value the new value of the 'Message Sort' attribute. + * @see org.eclipse.uml2.uml.MessageSort + * @see #getMessageSort() + * @generated + */ + void setMessageSort(MessageSort value); + + /** + * Returns the value of the 'Receive Event' reference. + * + * + * + * References the Receiving of the Message + * + * @return the value of the 'Receive Event' reference. + * @see #setReceiveEvent(MessageEnd) + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_ReceiveEvent() + * @model ordered="false" + * @generated + */ + MessageEnd getReceiveEvent(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Message#getReceiveEvent Receive Event}' reference. + * + * + * @param value the new value of the 'Receive Event' reference. + * @see #getReceiveEvent() + * @generated + */ + void setReceiveEvent(MessageEnd value); + + /** + * Returns the value of the 'Send Event' reference. + * + * + * + * References the Sending of the Message. + * + * @return the value of the 'Send Event' reference. + * @see #setSendEvent(MessageEnd) + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_SendEvent() + * @model ordered="false" + * @generated + */ + MessageEnd getSendEvent(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Message#getSendEvent Send Event}' reference. + * + * + * @param value the new value of the 'Send Event' reference. + * @see #getSendEvent() + * @generated + */ + void setSendEvent(MessageEnd value); + + /** + * Returns the value of the 'Connector' reference. + * + * + * + * The Connector on which this Message is sent. + * + * @return the value of the 'Connector' reference. + * @see #setConnector(Connector) + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_Connector() + * @model ordered="false" + * @generated + */ + Connector getConnector(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Message#getConnector Connector}' reference. + * + * + * @param value the new value of the 'Connector' reference. + * @see #getConnector() + * @generated + */ + void setConnector(Connector value); + + /** + * Returns the value of the 'Interaction' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Interaction#getMessages Message}'. + * + * + * + * The enclosing Interaction owning the Message + * + * @return the value of the 'Interaction' container reference. + * @see #setInteraction(Interaction) + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_Interaction() + * @see org.eclipse.uml2.uml.Interaction#getMessages + * @model opposite="message" required="true" ordered="false" + * @generated + */ + Interaction getInteraction(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Message#getInteraction Interaction}' container reference. + * + * + * @param value the new value of the 'Interaction' container reference. + * @see #getInteraction() + * @generated + */ + void setInteraction(Interaction value); + + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ValueSpecification}. + * + * + * + * The arguments of the Message + * + * @return the value of the 'Argument' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_Argument() + * @model type="org.eclipse.uml2.uml.ValueSpecification" containment="true" resolveProxies="false" + * @generated + */ + List getArguments(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and appends it to the 'Argument' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getArguments() + * @generated + */ + ValueSpecification createArgument(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ValueSpecification} with the specified 'Name' from the 'Argument' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ValueSpecification} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ValueSpecification} with the specified 'Name', or null. + * @see #getArguments() + * @generated + */ + ValueSpecification getArgument(String name); + + /** + * Returns the value of the 'Signature' reference. + * + * + * + * The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event. + * + * @return the value of the 'Signature' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getMessage_Signature() + * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + NamedElement getSignature(); + + /** + * + * + * + * If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent. + * true + * + * @model + * @generated + */ + boolean validateSendingReceivingMessageEvent(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message. + * true + * + * @model + * @generated + */ + boolean validateSignatureReferTo(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter. + * true + * + * @model + * @generated + */ + boolean validateSignatureIsOperation(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute. + * true + * + * @model + * @generated + */ + boolean validateSignatureIsSignal(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Arguments of a Message must only be: + * i) attributes of the sending lifeline + * ii) constants + * iii) symbolic values (which are wildcard values representing any legal value) + * iv) explicit parameters of the enclosing Interaction + * v) attributes of the class owning the Interaction + * + * true + * + * @model + * @generated + */ + boolean validateArguments(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Messages cannot cross bounderies of CombinedFragments or their operands. + * true + * + * @model + * @generated + */ + boolean validateCannotCrossBoundaries(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds. + * true + * + * @model + * @generated + */ + boolean validateOccurrenceSpecifications(DiagnosticChain diagnostics, + Map context); + +} // Message diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEnd.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEnd.java new file mode 100644 index 00000000..503ff1c7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEnd.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageEnd.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Message End'. + * + * + * + * A MessageEnd is an abstract NamedElement that represents what can occur at the end of a Message. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.MessageEnd#getMessage Message}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getMessageEnd() + * @model abstract="true" + * @generated + */ +public interface MessageEnd + extends NamedElement { + + /** + * Returns the value of the 'Message' reference. + * + * + * + * References a Message. + * + * @return the value of the 'Message' reference. + * @see #setMessage(Message) + * @see org.eclipse.uml2.uml.UMLPackage#getMessageEnd_Message() + * @model ordered="false" + * @generated + */ + Message getMessage(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MessageEnd#getMessage Message}' reference. + * + * + * @param value the new value of the 'Message' reference. + * @see #getMessage() + * @generated + */ + void setMessage(Message value); + +} // MessageEnd diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEvent.java new file mode 100644 index 00000000..58c5504e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageEvent.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageEvent.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Message Event'. + * + * + * + * A message event specifies the receipt by an object of either a call or a signal. MessageEvent is an abstract metaclass. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getMessageEvent() + * @model abstract="true" + * @generated + */ +public interface MessageEvent + extends Event { +} // MessageEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageKind.java new file mode 100644 index 00000000..3f9825cc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageKind.java @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageKind.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Message Kind', + * and utility methods for working with them. + * + * + * MessageKind is an enumeration of the following values: + * + * - complete = sendEvent and receiveEvent are present + * + * - lost = sendEvent present and receiveEvent absent + * + * - found = sendEvent absent and receiveEvent present + * + * - unknown = sendEvent and receiveEvent absent (should not appear) + * + * @see org.eclipse.uml2.uml.UMLPackage#getMessageKind() + * @model + * @generated + */ +public final class MessageKind + extends AbstractEnumerator { + + /** + * The 'Complete' literal value. + * + * + * + * sendEvent and receiveEvent are present + * + * @see #COMPLETE_LITERAL + * @model name="complete" + * @generated + * @ordered + */ + public static final int COMPLETE = 0; + + /** + * The 'Lost' literal value. + * + * + * + * sendEvent present and receiveEvent absent + * + * @see #LOST_LITERAL + * @model name="lost" + * @generated + * @ordered + */ + public static final int LOST = 1; + + /** + * The 'Found' literal value. + * + * + * + * sendEvent absent and receiveEvent present + * + * @see #FOUND_LITERAL + * @model name="found" + * @generated + * @ordered + */ + public static final int FOUND = 2; + + /** + * The 'Unknown' literal value. + * + * + * + * sendEvent and receiveEvent absent (should not appear) + * + * @see #UNKNOWN_LITERAL + * @model name="unknown" + * @generated + * @ordered + */ + public static final int UNKNOWN = 3; + + /** + * The 'Complete' literal object. + * + * + * @see #COMPLETE + * @generated + * @ordered + */ + public static final MessageKind COMPLETE_LITERAL = new MessageKind( + COMPLETE, "complete", "complete"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Lost' literal object. + * + * + * @see #LOST + * @generated + * @ordered + */ + public static final MessageKind LOST_LITERAL = new MessageKind(LOST, + "lost", "lost"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Found' literal object. + * + * + * @see #FOUND + * @generated + * @ordered + */ + public static final MessageKind FOUND_LITERAL = new MessageKind(FOUND, + "found", "found"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Unknown' literal object. + * + * + * @see #UNKNOWN + * @generated + * @ordered + */ + public static final MessageKind UNKNOWN_LITERAL = new MessageKind(UNKNOWN, + "unknown", "unknown"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Message Kind' enumerators. + * + * + * @generated + */ + private static final MessageKind[] VALUES_ARRAY = new MessageKind[]{ + COMPLETE_LITERAL, LOST_LITERAL, FOUND_LITERAL, UNKNOWN_LITERAL,}; + + /** + * A public read-only list of all the 'Message Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Message Kind' literal with the specified literal value. + * + * + * @generated + */ + public static MessageKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + MessageKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Message Kind' literal with the specified name. + * + * + * @generated + */ + public static MessageKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + MessageKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Message Kind' literal with the specified integer value. + * + * + * @generated + */ + public static MessageKind get(int value) { + switch (value) { + case COMPLETE : + return COMPLETE_LITERAL; + case LOST : + return LOST_LITERAL; + case FOUND : + return FOUND_LITERAL; + case UNKNOWN : + return UNKNOWN_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private MessageKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //MessageKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageOccurrenceSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageOccurrenceSpecification.java new file mode 100644 index 00000000..1d8fef5d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageOccurrenceSpecification.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageOccurrenceSpecification.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Message Occurrence Specification'. + * + * + * + * Specifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getMessageOccurrenceSpecification() + * @model + * @generated + */ +public interface MessageOccurrenceSpecification + extends OccurrenceSpecification, MessageEnd { +} // MessageOccurrenceSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageSort.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageSort.java new file mode 100644 index 00000000..7171142a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MessageSort.java @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageSort.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Message Sort', + * and utility methods for working with them. + * + * + * MessageSort is an enumeration of the following values: + * ? synchCall - the message was generated by a synchronous call to an operation + * ? asynchCall - the message was generated by an asynchronous call to an operation; i.e., a CallAction with ?isSynchronous= false? + * ? asynchSignal -the message was generated by an asynchronous send action + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getMessageSort() + * @model + * @generated + */ +public final class MessageSort + extends AbstractEnumerator { + + /** + * The 'Synch Call' literal value. + * + * + * + * The message was generated by a synchronous call to an operation + * + * @see #SYNCH_CALL_LITERAL + * @model name="synchCall" + * @generated + * @ordered + */ + public static final int SYNCH_CALL = 0; + + /** + * The 'Asynch Call' literal value. + * + * + * + * The message was generated by an asynchronous call to an operation; i.e., a CallAction with ?isSynchronous + * = false? + * + * + * @see #ASYNCH_CALL_LITERAL + * @model name="asynchCall" + * @generated + * @ordered + */ + public static final int ASYNCH_CALL = 1; + + /** + * The 'Asynch Signal' literal value. + * + * + * + * The message was generated by an asynchronous send action + * + * @see #ASYNCH_SIGNAL_LITERAL + * @model name="asynchSignal" + * @generated + * @ordered + */ + public static final int ASYNCH_SIGNAL = 2; + + /** + * The 'Synch Call' literal object. + * + * + * @see #SYNCH_CALL + * @generated + * @ordered + */ + public static final MessageSort SYNCH_CALL_LITERAL = new MessageSort( + SYNCH_CALL, "synchCall", "synchCall"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Asynch Call' literal object. + * + * + * @see #ASYNCH_CALL + * @generated + * @ordered + */ + public static final MessageSort ASYNCH_CALL_LITERAL = new MessageSort( + ASYNCH_CALL, "asynchCall", "asynchCall"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Asynch Signal' literal object. + * + * + * @see #ASYNCH_SIGNAL + * @generated + * @ordered + */ + public static final MessageSort ASYNCH_SIGNAL_LITERAL = new MessageSort( + ASYNCH_SIGNAL, "asynchSignal", "asynchSignal"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Message Sort' enumerators. + * + * + * @generated + */ + private static final MessageSort[] VALUES_ARRAY = new MessageSort[]{ + SYNCH_CALL_LITERAL, ASYNCH_CALL_LITERAL, ASYNCH_SIGNAL_LITERAL,}; + + /** + * A public read-only list of all the 'Message Sort' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Message Sort' literal with the specified literal value. + * + * + * @generated + */ + public static MessageSort get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + MessageSort result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Message Sort' literal with the specified name. + * + * + * @generated + */ + public static MessageSort getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + MessageSort result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Message Sort' literal with the specified integer value. + * + * + * @generated + */ + public static MessageSort get(int value) { + switch (value) { + case SYNCH_CALL : + return SYNCH_CALL_LITERAL; + case ASYNCH_CALL : + return ASYNCH_CALL_LITERAL; + case ASYNCH_SIGNAL : + return ASYNCH_SIGNAL_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private MessageSort(int value, String name, String literal) { + super(value, name, literal); + } + +} //MessageSort diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Model.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Model.java new file mode 100644 index 00000000..0c439e48 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Model.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Model.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Model'. + * + * + * + * The Model construct is defined as a Package. It contains a (hierarchical) set of elements that together describe the physical system being modeled. A Model may also contain a set of elements that represents the environment of the system, typically Actors, together with their interrelationships, such as Associations and Dependencies + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Model#getViewpoint Viewpoint}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getModel() + * @model + * @generated + */ +public interface Model + extends org.eclipse.uml2.uml.Package { + + /** + * Returns the value of the 'Viewpoint' attribute. + * + * + * + * The name of the viewpoint that is expressed by a model (This name may refer to a profile definition). + * + * @return the value of the 'Viewpoint' attribute. + * @see #setViewpoint(String) + * @see org.eclipse.uml2.uml.UMLPackage#getModel_Viewpoint() + * @model required="true" ordered="false" + * @generated + */ + String getViewpoint(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Model#getViewpoint Viewpoint}' attribute. + * + * + * @param value the new value of the 'Viewpoint' attribute. + * @see #getViewpoint() + * @generated + */ + void setViewpoint(String value); + +} // Model diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java new file mode 100644 index 00000000..a60b5fe5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/MultiplicityElement.java @@ -0,0 +1,360 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MultiplicityElement.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Multiplicity Element'. + * + * + * + * A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#getUpperValue Upper Value}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#getLowerValue Lower Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement() + * @model abstract="true" + * @generated + */ +public interface MultiplicityElement + extends Element { + + /** + * Returns the value of the 'Is Ordered' attribute. + * The default value is "false". + * + * + * + * For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.. + * For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered. + * + * @return the value of the 'Is Ordered' attribute. + * @see #setIsOrdered(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement_IsOrdered() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isOrdered(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MultiplicityElement#isOrdered Is Ordered}' attribute. + * + * + * @param value the new value of the 'Is Ordered' attribute. + * @see #isOrdered() + * @generated + */ + void setIsOrdered(boolean value); + + /** + * Returns the value of the 'Is Unique' attribute. + * The default value is "true". + * + * + * + * For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. + * + * @return the value of the 'Is Unique' attribute. + * @see #setIsUnique(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement_IsUnique() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isUnique(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MultiplicityElement#isUnique Is Unique}' attribute. + * + * + * @param value the new value of the 'Is Unique' attribute. + * @see #isUnique() + * @generated + */ + void setIsUnique(boolean value); + + /** + * Returns the value of the 'Upper' attribute. + * The default value is "1". + * + * + * + * Specifies the upper bound of the multiplicity interval. + * Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural. + * + * @return the value of the 'Upper' attribute. + * @see #setUpper(int) + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement_Upper() + * @model default="1" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + int getUpper(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MultiplicityElement#getUpper Upper}' attribute. + * + * + * @param value the new value of the 'Upper' attribute. + * @see #getUpper() + * @generated + */ + void setUpper(int value); + + /** + * Returns the value of the 'Lower' attribute. + * The default value is "1". + * + * + * + * Specifies the lower bound of the multiplicity interval. + * Specifies the lower bound of the multiplicity interval, if it is expressed as an integer. + * + * @return the value of the 'Lower' attribute. + * @see #setLower(int) + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement_Lower() + * @model default="1" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + int getLower(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MultiplicityElement#getLower Lower}' attribute. + * + * + * @param value the new value of the 'Lower' attribute. + * @see #getLower() + * @generated + */ + void setLower(int value); + + /** + * Returns the value of the 'Upper Value' containment reference. + * + * + * + * The specification of the upper bound for this multiplicity. + * + * @return the value of the 'Upper Value' containment reference. + * @see #setUpperValue(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement_UpperValue() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getUpperValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MultiplicityElement#getUpperValue Upper Value}' containment reference. + * + * + * @param value the new value of the 'Upper Value' containment reference. + * @see #getUpperValue() + * @generated + */ + void setUpperValue(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Upper Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getUpperValue() + * @generated + */ + ValueSpecification createUpperValue(EClass eClass); + + /** + * Returns the value of the 'Lower Value' containment reference. + * + * + * + * The specification of the lower bound for this multiplicity. + * + * @return the value of the 'Lower Value' containment reference. + * @see #setLowerValue(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getMultiplicityElement_LowerValue() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getLowerValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.MultiplicityElement#getLowerValue Lower Value}' containment reference. + * + * + * @param value the new value of the 'Lower Value' containment reference. + * @see #getLowerValue() + * @generated + */ + void setLowerValue(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Lower Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getLowerValue() + * @generated + */ + ValueSpecification createLowerValue(EClass eClass); + + /** + * + * + * + * A multiplicity must define at least one valid cardinality that is greater than zero. + * upperBound()->notEmpty() implies upperBound() > 0 + * + * @model + * @generated + */ + boolean validateUpperGt0(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The lower bound must be a non-negative integer literal. + * lowerBound()->notEmpty() implies lowerBound() >= 0 + * + * @model + * @generated + */ + boolean validateLowerGe0(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The upper bound must be greater than or equal to the lower bound. + * (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + * + * @model + * @generated + */ + boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects. + * true + * + * @model + * @generated + */ + boolean validateValueSpecificationNoSideEffects( + DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression. + * true + * + * @model + * @generated + */ + boolean validateValueSpecificationConstant(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + * upperBound()->notEmpty() + * result = upperBound() > 1 + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isMultivalued(); + + /** + * + * + * + * The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + * upperBound()->notEmpty() and lowerBound()->notEmpty() + * result = (lowerBound() <= C) and (upperBound() >= C) + * + * @model required="true" ordered="false" CRequired="true" COrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean includesCardinality(int C); + + /** + * + * + * + * The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + * self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() + * and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + * + * result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + * + * @model required="true" ordered="false" MRequired="true" MOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean includesMultiplicity(MultiplicityElement M); + + /** + * + * + * + * The query lowerBound() returns the lower bound of the multiplicity as an integer. + * result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int lowerBound(); + + /** + * + * + * + * The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + * result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int upperBound(); + +} // MultiplicityElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/NamedElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/NamedElement.java new file mode 100644 index 00000000..3c9a3889 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/NamedElement.java @@ -0,0 +1,299 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NamedElement.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Named Element'. + * + * + * + * NamedElement has a visibility attribute. + * A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass. + * NamedElement specializes Kernel::NamedElement and adds a composition association to Expression. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.NamedElement#getName Name}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#getQualifiedName Qualified Name}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#getNamespace Namespace}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#getNameExpression Name Expression}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement() + * @model abstract="true" + * @generated + */ +public interface NamedElement + extends Element { + + /** + * Returns the value of the 'Name' attribute. + * + * + * + * The name of the NamedElement. + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement_Name() + * @model id="true" ordered="false" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.NamedElement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Visibility' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.VisibilityKind}. + * + * + * + * Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility. + * + * @return the value of the 'Visibility' attribute. + * @see org.eclipse.uml2.uml.VisibilityKind + * @see #setVisibility(VisibilityKind) + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement_Visibility() + * @model ordered="false" + * @generated + */ + VisibilityKind getVisibility(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.NamedElement#getVisibility Visibility}' attribute. + * + * + * @param value the new value of the 'Visibility' attribute. + * @see org.eclipse.uml2.uml.VisibilityKind + * @see #getVisibility() + * @generated + */ + void setVisibility(VisibilityKind value); + + /** + * Returns the value of the 'Qualified Name' attribute. + * + * + * + * A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself. + * + * @return the value of the 'Qualified Name' attribute. + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement_QualifiedName() + * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + String getQualifiedName(); + + /** + * Returns the value of the 'Client Dependency' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Dependency}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Dependency#getClients Client}'. + * + * + * + * Indicates the dependencies that reference the client. + * + * @return the value of the 'Client Dependency' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement_ClientDependency() + * @see org.eclipse.uml2.uml.Dependency#getClients + * @model type="org.eclipse.uml2.uml.Dependency" opposite="client" ordered="false" + * @generated + */ + List getClientDependencies(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Dependency} with the specified 'Name' from the 'Client Dependency' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Dependency} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Dependency} with the specified 'Name', or null. + * @see #getClientDependencies() + * @generated + */ + Dependency getClientDependency(String name); + + /** + * Returns the value of the 'Namespace' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers Owned Member}'. + * + * + * + * Specifies the namespace that owns the NamedElement. + * + * @return the value of the 'Namespace' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement_Namespace() + * @see org.eclipse.uml2.uml.Namespace#getOwnedMembers + * @model opposite="ownedMember" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + Namespace getNamespace(); + + /** + * Returns the value of the 'Name Expression' containment reference. + * + * + * + * The string expression used to define the name of this named element. + * + * @return the value of the 'Name Expression' containment reference. + * @see #setNameExpression(StringExpression) + * @see org.eclipse.uml2.uml.UMLPackage#getNamedElement_NameExpression() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + StringExpression getNameExpression(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.NamedElement#getNameExpression Name Expression}' containment reference. + * + * + * @param value the new value of the 'Name Expression' containment reference. + * @see #getNameExpression() + * @generated + */ + void setNameExpression(StringExpression value); + + /** + * Creates a {@link org.eclipse.uml2.uml.StringExpression} and sets the 'Name Expression' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.StringExpression}. + * @see #getNameExpression() + * @generated + */ + StringExpression createNameExpression(); + + /** + * + * + * + * If there is no name, or one of the containing namespaces has no name, there is no qualified name. + * (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) + * + * implies self.qualifiedName->isEmpty() + * + * @model + * @generated + */ + boolean validateNoName(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + * (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies + * self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + * + * @model + * @generated + */ + boolean validateQualifiedName(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a NamedElement is not owned by a Namespace, it does not have a visibility. + * namespace->isEmpty() implies visibility->isEmpty() + * + * @model + * @generated + */ + boolean validateVisibilityNeedsOwnership(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + * result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() + * then + * self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + * else + * Set{} + * endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + String qualifiedName(); + + /** + * + * + * + * The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. + * result = if self.namespace->isEmpty() + * then Sequence{} + * else self.namespace.allNamespaces()->prepend(self.namespace) + * endif + * + * @model type="org.eclipse.uml2.uml.Namespace" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allNamespaces(); + + /** + * + * + * + * The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. + * result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) + * then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty() + * else true + * endif + * + * @model required="true" ordered="false" nRequired="true" nOrdered="false" nsRequired="true" nsOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isDistinguishableFrom(NamedElement n, Namespace ns); + + /** + * + * + * + * The query separator() gives the string that is used to separate names when constructing a qualified name. + * result = '::' + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + String separator(); + +} // NamedElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java new file mode 100644 index 00000000..b70ee30c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Namespace.java @@ -0,0 +1,336 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Namespace.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Namespace'. + * + * + * + * A namespace has the ability to import either individial members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements. + * A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + * + * + * + * A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace. + * + * + * + * A namespace has the ability to import either individual members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements. + * + * + * + * + * A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Namespace#getElementImports Element Import}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getPackageImports Package Import}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getOwnedRules Owned Rule}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getImportedMembers Imported Member}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getOwnedMembers Owned Member}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace() + * @model abstract="true" + * @generated + */ +public interface Namespace + extends NamedElement { + + /** + * Returns the value of the 'Element Import' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ElementImport}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ElementImport#getImportingNamespace Importing Namespace}'. + * + * + * + * References the ElementImports owned by the Namespace. + * + * @return the value of the 'Element Import' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace_ElementImport() + * @see org.eclipse.uml2.uml.ElementImport#getImportingNamespace + * @model type="org.eclipse.uml2.uml.ElementImport" opposite="importingNamespace" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getElementImports(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ElementImport} and appends it to the 'Element Import' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ElementImport}. + * @see #getElementImports() + * @generated + */ + ElementImport createElementImport(); + + /** + * Returns the value of the 'Package Import' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageImport}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.PackageImport#getImportingNamespace Importing Namespace}'. + * + * + * + * References the PackageImports owned by the Namespace. + * + * @return the value of the 'Package Import' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace_PackageImport() + * @see org.eclipse.uml2.uml.PackageImport#getImportingNamespace + * @model type="org.eclipse.uml2.uml.PackageImport" opposite="importingNamespace" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getPackageImports(); + + /** + * Creates a {@link org.eclipse.uml2.uml.PackageImport} and appends it to the 'Package Import' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.PackageImport} to create. + * @return The new {@link org.eclipse.uml2.uml.PackageImport}. + * @see #getPackageImports() + * @generated + */ + PackageImport createPackageImport(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.PackageImport} and appends it to the 'Package Import' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.PackageImport}. + * @see #getPackageImports() + * @generated + */ + PackageImport createPackageImport(); + + /** + * Returns the value of the 'Owned Rule' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Constraint}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Constraint#getContext Context}'. + * + * + * + * Specifies a set of Constraints owned by this Namespace. + * + * @return the value of the 'Owned Rule' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace_OwnedRule() + * @see org.eclipse.uml2.uml.Constraint#getContext + * @model type="org.eclipse.uml2.uml.Constraint" opposite="context" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedRules(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Owned Rule' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getOwnedRules() + * @generated + */ + Constraint createOwnedRule(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Owned Rule' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getOwnedRules() + * @generated + */ + Constraint createOwnedRule(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name' from the 'Owned Rule' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Constraint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name', or null. + * @see #getOwnedRules() + * @generated + */ + Constraint getOwnedRule(String name); + + /** + * Returns the value of the 'Member' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * + * + * + * Redefines the corresponding property of Abstractions::Namespaces::Namespace. + * A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance. + * + * @return the value of the 'Member' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace_Member() + * @model type="org.eclipse.uml2.uml.NamedElement" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getMembers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Member' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getMembers() + * @generated + */ + NamedElement getMember(String name); + + /** + * Returns the value of the 'Imported Member' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageableElement}. + * + * + * + * References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + * + * @return the value of the 'Imported Member' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace_ImportedMember() + * @model type="org.eclipse.uml2.uml.PackageableElement" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getImportedMembers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name' from the 'Imported Member' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name', or null. + * @see #getImportedMembers() + * @generated + */ + PackageableElement getImportedMember(String name); + + /** + * Returns the value of the 'Owned Member' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.NamedElement#getNamespace Namespace}'. + * + * + * + * Redefines the corresponding property of Abstractions::Namespaces::Namespace. + * A collection of NamedElements owned by the Namespace. + * + * @return the value of the 'Owned Member' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNamespace_OwnedMember() + * @see org.eclipse.uml2.uml.NamedElement#getNamespace + * @model type="org.eclipse.uml2.uml.NamedElement" opposite="namespace" resolveProxies="false" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getOwnedMembers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Owned Member' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. + * @see #getOwnedMembers() + * @generated + */ + NamedElement getOwnedMember(String name); + + /** + * + * + * + * All the members of a Namespace are distinguishable within it. + * membersAreDistinguishable() + * + * @model + * @generated + */ + boolean validateMembersAreDistinguishable(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query getNamesOfMember() is overridden to take account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + * The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + * result = if self.ownedMember ->includes(element) + * then Set{}->include(element.name) + * else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in + * if elementImports->notEmpty() + * then elementImports->collect(el | el.getName()) + * else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element)) + * endif + * endif + * + * @model type="java.lang.String" ordered="false" elementRequired="true" elementOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List getNamesOfMember(NamedElement element); + + /** + * + * + * + * The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it. + * result = self.member->forAll( memb | + * self.member->excluding(memb)->forAll(other | + * memb.isDistinguishableFrom(other, self))) + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean membersAreDistinguishable(); + + /** + * + * + * + * The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported. + * result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem | + * mem.imp.isDistinguishableFrom(mem, self))) + * + * @model type="org.eclipse.uml2.uml.PackageableElement" ordered="false" impsType="org.eclipse.uml2.uml.PackageableElement" impsMany="true" impsOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List importMembers(List imps); + + /** + * + * + * + * The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace. + * result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self))) + * + * @model type="org.eclipse.uml2.uml.PackageableElement" ordered="false" impsType="org.eclipse.uml2.uml.PackageableElement" impsMany="true" impsOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List excludeCollisions(List imps); + +} // Namespace diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Node.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Node.java new file mode 100644 index 00000000..1606bd93 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Node.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Node.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Node'. + * + * + * + * In the metamodel, a Node is a subclass of Class. It is associated with a Deployment of an Artifact. It is also associated with a set of Elements that are deployed on it. This is a derived association in that these PackageableElements are involved in a Manifestation of an Artifact that is deployed on the Node. Nodes may have an internal structure defined in terms of parts and connectors associated with them for advanced modeling applications. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Node#getNestedNodes Nested Node}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getNode() + * @model + * @generated + */ +public interface Node + extends org.eclipse.uml2.uml.Class, DeploymentTarget { + + /** + * Returns the value of the 'Nested Node' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Node}. + * + * + * + * The Nodes that are defined (nested) within the Node. + * + * @return the value of the 'Nested Node' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getNode_NestedNode() + * @model type="org.eclipse.uml2.uml.Node" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getNestedNodes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Node} and appends it to the 'Nested Node' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Node} to create. + * @return The new {@link org.eclipse.uml2.uml.Node}. + * @see #getNestedNodes() + * @generated + */ + Node createNestedNode(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Node} and appends it to the 'Nested Node' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Node}. + * @see #getNestedNodes() + * @generated + */ + Node createNestedNode(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Node} with the specified 'Name' from the 'Nested Node' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Node} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Node} with the specified 'Name', or null. + * @see #getNestedNodes() + * @generated + */ + Node getNestedNode(String name); + + /** + * + * + * + * The internal structure of a Node (if defined) consists solely of parts of type Node. + * true + * + * @model + * @generated + */ + boolean validateInternalStructure(DiagnosticChain diagnostics, Map context); + +} // Node diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectFlow.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectFlow.java new file mode 100644 index 00000000..3f0aa91c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectFlow.java @@ -0,0 +1,248 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectFlow.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Object Flow'. + * + * + * + * An object flow models the flow of values to or from object nodes. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#isMulticast Is Multicast}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#isMultireceive Is Multireceive}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#getTransformation Transformation}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#getSelection Selection}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getObjectFlow() + * @model + * @generated + */ +public interface ObjectFlow + extends ActivityEdge { + + /** + * Returns the value of the 'Is Multicast' attribute. + * The default value is "false". + * + * + * + * Tells whether the objects in the flow are passed by multicasting. + * + * @return the value of the 'Is Multicast' attribute. + * @see #setIsMulticast(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectFlow_IsMulticast() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isMulticast(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectFlow#isMulticast Is Multicast}' attribute. + * + * + * @param value the new value of the 'Is Multicast' attribute. + * @see #isMulticast() + * @generated + */ + void setIsMulticast(boolean value); + + /** + * Returns the value of the 'Is Multireceive' attribute. + * The default value is "false". + * + * + * + * Tells whether the objects in the flow are gathered from respondents to multicasting. + * + * @return the value of the 'Is Multireceive' attribute. + * @see #setIsMultireceive(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectFlow_IsMultireceive() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isMultireceive(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectFlow#isMultireceive Is Multireceive}' attribute. + * + * + * @param value the new value of the 'Is Multireceive' attribute. + * @see #isMultireceive() + * @generated + */ + void setIsMultireceive(boolean value); + + /** + * Returns the value of the 'Transformation' reference. + * + * + * + * Changes or replaces data tokens flowing along edge. + * + * @return the value of the 'Transformation' reference. + * @see #setTransformation(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectFlow_Transformation() + * @model ordered="false" + * @generated + */ + Behavior getTransformation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectFlow#getTransformation Transformation}' reference. + * + * + * @param value the new value of the 'Transformation' reference. + * @see #getTransformation() + * @generated + */ + void setTransformation(Behavior value); + + /** + * Returns the value of the 'Selection' reference. + * + * + * + * Selects tokens from a source object node. + * + * @return the value of the 'Selection' reference. + * @see #setSelection(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectFlow_Selection() + * @model ordered="false" + * @generated + */ + Behavior getSelection(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectFlow#getSelection Selection}' reference. + * + * + * @param value the new value of the 'Selection' reference. + * @see #getSelection() + * @generated + */ + void setSelection(Behavior value); + + /** + * + * + * + * Object flows may not have actions at either end. + * true + * + * @model + * @generated + */ + boolean validateNoActions(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type. + * + * + * true + * + * @model + * @generated + */ + boolean validateCompatibleTypes(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds. + * true + * + * @model + * @generated + */ + boolean validateSameUpperBounds(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight. + * true + * + * @model + * @generated + */ + boolean validateTarget(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects. + * true + * + * @model + * @generated + */ + boolean validateTransformationBehaviour(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * An object flow may have a selection behavior only if has an object node as a source. + * true + * + * @model + * @generated + */ + boolean validateSelectionBehaviour(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects. + * true + * + * @model + * @generated + */ + boolean validateInputAndOutputParameter(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * isMulticast and isMultireceive cannot both be true. + * true + * + * @model + * @generated + */ + boolean validateIsMulticastOrIsMultireceive(DiagnosticChain diagnostics, + Map context); + +} // ObjectFlow diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java new file mode 100644 index 00000000..dc746173 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNode.java @@ -0,0 +1,245 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectNode.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Object Node'. + * + * + * + * An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section. + * An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section. + * + * Complete object nodes add support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ObjectNode#getOrdering Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#isControlType Is Control Type}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#getUpperBound Upper Bound}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#getInStates In State}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#getSelection Selection}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNode() + * @model abstract="true" + * @generated + */ +public interface ObjectNode + extends ActivityNode, TypedElement { + + /** + * Returns the value of the 'Ordering' attribute. + * The default value is "FIFO". + * The literals are from the enumeration {@link org.eclipse.uml2.uml.ObjectNodeOrderingKind}. + * + * + * + * Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node. + * + * @return the value of the 'Ordering' attribute. + * @see org.eclipse.uml2.uml.ObjectNodeOrderingKind + * @see #setOrdering(ObjectNodeOrderingKind) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNode_Ordering() + * @model default="FIFO" required="true" ordered="false" + * @generated + */ + ObjectNodeOrderingKind getOrdering(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectNode#getOrdering Ordering}' attribute. + * + * + * @param value the new value of the 'Ordering' attribute. + * @see org.eclipse.uml2.uml.ObjectNodeOrderingKind + * @see #getOrdering() + * @generated + */ + void setOrdering(ObjectNodeOrderingKind value); + + /** + * Returns the value of the 'Is Control Type' attribute. + * The default value is "false". + * + * + * + * Tells whether the type of the object node is to be treated as control. + * + * @return the value of the 'Is Control Type' attribute. + * @see #setIsControlType(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNode_IsControlType() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isControlType(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectNode#isControlType Is Control Type}' attribute. + * + * + * @param value the new value of the 'Is Control Type' attribute. + * @see #isControlType() + * @generated + */ + void setIsControlType(boolean value); + + /** + * Returns the value of the 'Upper Bound' containment reference. + * + * + * + * The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached. + * + * @return the value of the 'Upper Bound' containment reference. + * @see #setUpperBound(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNode_UpperBound() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getUpperBound(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectNode#getUpperBound Upper Bound}' containment reference. + * + * + * @param value the new value of the 'Upper Bound' containment reference. + * @see #getUpperBound() + * @generated + */ + void setUpperBound(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Upper Bound' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getUpperBound() + * @generated + */ + ValueSpecification createUpperBound(EClass eClass); + + /** + * Returns the value of the 'In State' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.State}. + * + * + * + * The required states of the object available at this point in the activity. + * + * @return the value of the 'In State' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNode_InState() + * @model type="org.eclipse.uml2.uml.State" ordered="false" + * @generated + */ + List getInStates(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.State} with the specified 'Name' from the 'In State' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.State} to retrieve. + * @return The {@link org.eclipse.uml2.uml.State} with the specified 'Name', or null. + * @see #getInStates() + * @generated + */ + State getInState(String name); + + /** + * Returns the value of the 'Selection' reference. + * + * + * + * Selects tokens for outgoing edges. + * + * @return the value of the 'Selection' reference. + * @see #setSelection(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNode_Selection() + * @model ordered="false" + * @generated + */ + Behavior getSelection(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ObjectNode#getSelection Selection}' reference. + * + * + * @param value the new value of the 'Selection' reference. + * @see #getSelection() + * @generated + */ + void setSelection(Behavior value); + + /** + * + * + * + * All edges coming into or going out of object nodes must be object flow edges. + * true + * + * @model + * @generated + */ + boolean validateObjectFlowEdges(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Object nodes are not unique typed elements + * isUnique = false + * + * @model + * @generated + */ + boolean validateNotUnique(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa. + * true + * + * @model + * @generated + */ + boolean validateSelectionBehavior(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects. + * true + * + * @model + * @generated + */ + boolean validateInputOutputParameter(DiagnosticChain diagnostics, + Map context); + +} // ObjectNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNodeOrderingKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNodeOrderingKind.java new file mode 100644 index 00000000..96279866 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ObjectNodeOrderingKind.java @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectNodeOrderingKind.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Object Node Ordering Kind', + * and utility methods for working with them. + * + * + * ObjectNodeOrderingKind is an enumeration indicating queuing order within a node. + * + * @see org.eclipse.uml2.uml.UMLPackage#getObjectNodeOrderingKind() + * @model + * @generated + */ +public final class ObjectNodeOrderingKind + extends AbstractEnumerator { + + /** + * The 'Unordered' literal value. + * + *

+ * If the meaning of 'Unordered' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #UNORDERED_LITERAL + * @model name="unordered" + * @generated + * @ordered + */ + public static final int UNORDERED = 0; + + /** + * The 'Ordered' literal value. + * + *

+ * If the meaning of 'Ordered' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #ORDERED_LITERAL + * @model name="ordered" + * @generated + * @ordered + */ + public static final int ORDERED = 1; + + /** + * The 'LIFO' literal value. + * + *

+ * If the meaning of 'LIFO' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #LIFO_LITERAL + * @model + * @generated + * @ordered + */ + public static final int LIFO = 2; + + /** + * The 'FIFO' literal value. + * + *

+ * If the meaning of 'FIFO' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #FIFO_LITERAL + * @model + * @generated + * @ordered + */ + public static final int FIFO = 3; + + /** + * The 'Unordered' literal object. + * + * + * @see #UNORDERED + * @generated + * @ordered + */ + public static final ObjectNodeOrderingKind UNORDERED_LITERAL = new ObjectNodeOrderingKind( + UNORDERED, "unordered", "unordered"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Ordered' literal object. + * + * + * @see #ORDERED + * @generated + * @ordered + */ + public static final ObjectNodeOrderingKind ORDERED_LITERAL = new ObjectNodeOrderingKind( + ORDERED, "ordered", "ordered"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'LIFO' literal object. + * + * + * @see #LIFO + * @generated + * @ordered + */ + public static final ObjectNodeOrderingKind LIFO_LITERAL = new ObjectNodeOrderingKind( + LIFO, "LIFO", "LIFO"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'FIFO' literal object. + * + * + * @see #FIFO + * @generated + * @ordered + */ + public static final ObjectNodeOrderingKind FIFO_LITERAL = new ObjectNodeOrderingKind( + FIFO, "FIFO", "FIFO"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Object Node Ordering Kind' enumerators. + * + * + * @generated + */ + private static final ObjectNodeOrderingKind[] VALUES_ARRAY = new ObjectNodeOrderingKind[]{ + UNORDERED_LITERAL, ORDERED_LITERAL, LIFO_LITERAL, FIFO_LITERAL,}; + + /** + * A public read-only list of all the 'Object Node Ordering Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Object Node Ordering Kind' literal with the specified literal value. + * + * + * @generated + */ + public static ObjectNodeOrderingKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ObjectNodeOrderingKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Object Node Ordering Kind' literal with the specified name. + * + * + * @generated + */ + public static ObjectNodeOrderingKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ObjectNodeOrderingKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Object Node Ordering Kind' literal with the specified integer value. + * + * + * @generated + */ + public static ObjectNodeOrderingKind get(int value) { + switch (value) { + case UNORDERED : + return UNORDERED_LITERAL; + case ORDERED : + return ORDERED_LITERAL; + case LIFO : + return LIFO_LITERAL; + case FIFO : + return FIFO_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ObjectNodeOrderingKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //ObjectNodeOrderingKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OccurrenceSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OccurrenceSpecification.java new file mode 100644 index 00000000..fabbd462 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OccurrenceSpecification.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OccurrenceSpecification.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Occurrence Specification'. + * + * + * + * An OccurrenceSpecification is the basic semantic unit of Interactions. The sequences of occurrences specified by them are the meanings of Interactions. + * + * OccurrenceSpecifications are ordered along a Lifeline. + * + * The namespace of an OccurrenceSpecification is the Interaction in which it is contained. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.OccurrenceSpecification#getToBefores To Before}
  • + *
  • {@link org.eclipse.uml2.uml.OccurrenceSpecification#getEvent Event}
  • + *
  • {@link org.eclipse.uml2.uml.OccurrenceSpecification#getToAfters To After}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getOccurrenceSpecification() + * @model abstract="true" + * @generated + */ +public interface OccurrenceSpecification + extends InteractionFragment { + + /** + * Returns the value of the 'To Before' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.GeneralOrdering}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.GeneralOrdering#getAfter After}'. + * + * + * + * References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification + * + * + * + * @return the value of the 'To Before' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOccurrenceSpecification_ToBefore() + * @see org.eclipse.uml2.uml.GeneralOrdering#getAfter + * @model type="org.eclipse.uml2.uml.GeneralOrdering" opposite="after" ordered="false" + * @generated + */ + List getToBefores(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.GeneralOrdering} with the specified 'Name' from the 'To Before' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralOrdering} to retrieve. + * @return The {@link org.eclipse.uml2.uml.GeneralOrdering} with the specified 'Name', or null. + * @see #getToBefores() + * @generated + */ + GeneralOrdering getToBefore(String name); + + /** + * Returns the value of the 'Event' reference. + * + * + * + * References a specification of the occurring event. + * + * @return the value of the 'Event' reference. + * @see #setEvent(Event) + * @see org.eclipse.uml2.uml.UMLPackage#getOccurrenceSpecification_Event() + * @model required="true" ordered="false" + * @generated + */ + Event getEvent(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.OccurrenceSpecification#getEvent Event}' reference. + * + * + * @param value the new value of the 'Event' reference. + * @see #getEvent() + * @generated + */ + void setEvent(Event value); + + /** + * Returns the value of the 'To After' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.GeneralOrdering}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.GeneralOrdering#getBefore Before}'. + * + * + * + * References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification + * + * + * + * @return the value of the 'To After' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOccurrenceSpecification_ToAfter() + * @see org.eclipse.uml2.uml.GeneralOrdering#getBefore + * @model type="org.eclipse.uml2.uml.GeneralOrdering" opposite="before" ordered="false" + * @generated + */ + List getToAfters(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.GeneralOrdering} with the specified 'Name' from the 'To After' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralOrdering} to retrieve. + * @return The {@link org.eclipse.uml2.uml.GeneralOrdering} with the specified 'Name', or null. + * @see #getToAfters() + * @generated + */ + GeneralOrdering getToAfter(String name); + +} // OccurrenceSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueAction.java new file mode 100644 index 00000000..0b4a54c3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueAction.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Opaque Action'. + * + * + * + * An action with implementation-specific semantics. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.OpaqueAction#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueAction#getLanguages Language}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueAction#getInputValues Input Value}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueAction#getOutputValues Output Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueAction() + * @model + * @generated + */ +public interface OpaqueAction + extends Action { + + /** + * Returns the value of the 'Body' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * Specifies the action in one or more languages. + * + * @return the value of the 'Body' attribute list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueAction_Body() + * @model type="java.lang.String" required="true" + * @generated + */ + List getBodies(); + + /** + * Returns the value of the 'Language' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * Languages the body strings use, in the same order as the body strings + * + * @return the value of the 'Language' attribute list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueAction_Language() + * @model type="java.lang.String" + * @generated + */ + List getLanguages(); + + /** + * Returns the value of the 'Input Value' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InputPin}. + * + * + * + * Provides input to the action. + * + * @return the value of the 'Input Value' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueAction_InputValue() + * @model type="org.eclipse.uml2.uml.InputPin" ordered="false" + * @generated + */ + List getInputValues(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name' from the 'Input Value' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name', or null. + * @see #getInputValues() + * @generated + */ + InputPin getInputValue(String name); + + /** + * Returns the value of the 'Output Value' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * Takes output from the action. + * + * @return the value of the 'Output Value' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueAction_OutputValue() + * @model type="org.eclipse.uml2.uml.OutputPin" ordered="false" + * @generated + */ + List getOutputValues(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Output Value' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getOutputValues() + * @generated + */ + OutputPin getOutputValue(String name); + +} // OpaqueAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueBehavior.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueBehavior.java new file mode 100644 index 00000000..4e41e100 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueBehavior.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueBehavior.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Opaque Behavior'. + * + * + * + * An behavior with implementation-specific semantics. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.OpaqueBehavior#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueBehavior#getLanguages Language}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueBehavior() + * @model + * @generated + */ +public interface OpaqueBehavior + extends Behavior { + + /** + * Returns the value of the 'Body' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * Specifies the behavior in one or more languages. + * + * @return the value of the 'Body' attribute list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueBehavior_Body() + * @model type="java.lang.String" required="true" + * @generated + */ + List getBodies(); + + /** + * Returns the value of the 'Language' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * Languages the body strings use in the same order as the body strings. + * + * @return the value of the 'Language' attribute list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueBehavior_Language() + * @model type="java.lang.String" + * @generated + */ + List getLanguages(); + +} // OpaqueBehavior diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java new file mode 100644 index 00000000..7a27d2e8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OpaqueExpression.java @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueExpression.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Opaque Expression'. + * + * + * + * An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + * An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + * + * One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. + * + * + * Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#getLanguages Language}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#getBehavior Behavior}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueExpression() + * @model + * @generated + */ +public interface OpaqueExpression + extends ValueSpecification { + + /** + * Returns the value of the 'Body' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * The text of the expression, possibly in multiple languages. + * + * @return the value of the 'Body' attribute list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueExpression_Body() + * @model type="java.lang.String" required="true" + * extendedMetaData="kind='element'" + * @generated + */ + List getBodies(); + + /** + * Returns the value of the 'Language' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + * Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order. + * Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order. + * + * + * + * @return the value of the 'Language' attribute list. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueExpression_Language() + * @model type="java.lang.String" + * @generated + */ + List getLanguages(); + + /** + * Returns the value of the 'Result' reference. + * + * + * + * Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior. + * + * @return the value of the 'Result' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueExpression_Result() + * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + Parameter getResult(); + + /** + * Returns the value of the 'Behavior' reference. + * + * + * + * Specifies the behavior of the opaque expression. + * + * @return the value of the 'Behavior' reference. + * @see #setBehavior(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getOpaqueExpression_Behavior() + * @model ordered="false" + * @generated + */ + Behavior getBehavior(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.OpaqueExpression#getBehavior Behavior}' reference. + * + * + * @param value the new value of the 'Behavior' reference. + * @see #getBehavior() + * @generated + */ + void setBehavior(Behavior value); + + /** + * + * + * + * If the language attribute is not empty, then the size of the body and language arrays must be the same. + * language->notEmpty() implies (body->size() = language->size()) + * + * @model + * @generated + */ + boolean validateLanguageBodySize(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If there is only one body then the size of the language is exactly 0 (corresponding to the default language). + * The there is only one body then the size of the language is exactly 0 (corresponding to the default language). + * language->isEmpty() implies (body->size() = 1) + * + * @model + * @generated + */ + boolean validateOneBodyDefaultLanguage(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The behavior may only have return result parameters. + * self.behavior.notEmpty() implies + * + * self.behavior.ownedParameters->select(p | p.direction<>#return)->isEmpty() + * + * @model + * @generated + */ + boolean validateOnlyReturnResultParameters(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The behavior must have exactly one return result parameter. + * self.behavior.notEmpty() implies + * + * self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1 + * + * @model + * @generated + */ + boolean validateOneReturnResultParameter(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query value() gives an integer value for an expression intended to produce one. + * self.isIntegral() + * true + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int value(); + + /** + * + * + * + * The query isIntegral() tells whether an expression is intended to produce an integer. + * result = false + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isIntegral(); + + /** + * + * + * + * The query isPositive() tells whether an integer expression has a positive value. + * self.isIntegral() + * result = false + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isPositive(); + + /** + * + * + * + * The query isNonNegative() tells whether an integer expression has a non-negative value. + * self.isIntegral() + * result = false + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isNonNegative(); + +} // OpaqueExpression diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java new file mode 100644 index 00000000..22c72d1e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Operation.java @@ -0,0 +1,478 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Operation.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Operation'. + * + * + * + * An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element. + * An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages. + * + * One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. + * + * + * An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior. + * An operation may invoke both the execution of method behaviors as well as other behavioral responses. + * Operation specializes TemplateableElement in order to support specification of template operations and bound operations. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Operation#isQuery Is Query}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getClass_ Class }
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getPreconditions Precondition}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getPostconditions Postcondition}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getRedefinedOperations Redefined Operation}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getDatatype Datatype}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getBodyCondition Body Condition}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getInterface Interface}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getOperation() + * @model + * @generated + */ +public interface Operation + extends BehavioralFeature, ParameterableElement, TemplateableElement { + + /** + * Returns the value of the 'Is Query' attribute. + * The default value is "false". + * + * + * + * Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false). + * + * @return the value of the 'Is Query' attribute. + * @see #setIsQuery(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_IsQuery() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isQuery(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#isQuery Is Query}' attribute. + * + * + * @param value the new value of the 'Is Query' attribute. + * @see #isQuery() + * @generated + */ + void setIsQuery(boolean value); + + /** + * Returns the value of the 'Is Ordered' attribute. + * The default value is "false". + * + * + * + * Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + * Specifies whether the return parameter is ordered or not, if present. + * + * @return the value of the 'Is Ordered' attribute. + * @see #setIsOrdered(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_IsOrdered() + * @model default="false" required="true" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isOrdered(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#isOrdered Is Ordered}' attribute. + * + * + * @param value the new value of the 'Is Ordered' attribute. + * @see #isOrdered() + * @generated + */ + void setIsOrdered(boolean value); + + /** + * Returns the value of the 'Is Unique' attribute. + * The default value is "true". + * + * + * + * Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + * Specifies whether the return parameter is unique or not, if present. + * + * @return the value of the 'Is Unique' attribute. + * @see #setIsUnique(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_IsUnique() + * @model default="true" required="true" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isUnique(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#isUnique Is Unique}' attribute. + * + * + * @param value the new value of the 'Is Unique' attribute. + * @see #isUnique() + * @generated + */ + void setIsUnique(boolean value); + + /** + * Returns the value of the 'Lower' attribute. + * The default value is "1". + * + * + * + * Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + * Specifies the lower multiplicity of the return parameter, if present. + * + * @return the value of the 'Lower' attribute. + * @see #setLower(int) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Lower() + * @model default="1" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + int getLower(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getLower Lower}' attribute. + * + * + * @param value the new value of the 'Lower' attribute. + * @see #getLower() + * @generated + */ + void setLower(int value); + + /** + * Returns the value of the 'Upper' attribute. + * The default value is "1". + * + * + * + * Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + * Specifies the upper multiplicity of the return parameter, if present. + * + * @return the value of the 'Upper' attribute. + * @see #setUpper(int) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Upper() + * @model default="1" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + int getUpper(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getUpper Upper}' attribute. + * + * + * @param value the new value of the 'Upper' attribute. + * @see #getUpper() + * @generated + */ + void setUpper(int value); + + /** + * Returns the value of the 'Class ' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Class#getOwnedOperations Owned Operation}'. + * + * + * + * The class that owns the operation. + * The class that owns this operation. + * + * @return the value of the 'Class ' container reference. + * @see #setClass_(org.eclipse.uml2.uml.Class) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Class_() + * @see org.eclipse.uml2.uml.Class#getOwnedOperations + * @model opposite="ownedOperation" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Class getClass_(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getClass_ Class }' container reference. + * + * + * @param value the new value of the 'Class ' container reference. + * @see #getClass_() + * @generated + */ + void setClass_(org.eclipse.uml2.uml.Class value); + + /** + * Returns the value of the 'Precondition' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Constraint}. + * + * + * + * An optional set of Constraints on the state of the system when the Operation is invoked. + * + * @return the value of the 'Precondition' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Precondition() + * @model type="org.eclipse.uml2.uml.Constraint" resolveProxies="false" ordered="false" + * @generated + */ + List getPreconditions(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name' from the 'Precondition' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Constraint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name', or null. + * @see #getPreconditions() + * @generated + */ + Constraint getPrecondition(String name); + + /** + * Returns the value of the 'Postcondition' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Constraint}. + * + * + * + * An optional set of Constraints specifying the state of the system when the Operation is completed. + * + * @return the value of the 'Postcondition' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Postcondition() + * @model type="org.eclipse.uml2.uml.Constraint" resolveProxies="false" ordered="false" + * @generated + */ + List getPostconditions(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name' from the 'Postcondition' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Constraint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name', or null. + * @see #getPostconditions() + * @generated + */ + Constraint getPostcondition(String name); + + /** + * Returns the value of the 'Redefined Operation' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Operation}. + * + * + * + * References the Operations that are redefined by this Operation. + * + * @return the value of the 'Redefined Operation' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_RedefinedOperation() + * @model type="org.eclipse.uml2.uml.Operation" ordered="false" + * @generated + */ + List getRedefinedOperations(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified 'Name' from the 'Redefined Operation' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Operation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Operation} with the specified 'Name', or null. + * @see #getRedefinedOperations() + * @generated + */ + Operation getRedefinedOperation(String name); + + /** + * Returns the value of the 'Datatype' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.DataType#getOwnedOperations Owned Operation}'. + * + * + * + * The DataType that owns this Operation. + * The DataType that owns this Property. + * + * @return the value of the 'Datatype' container reference. + * @see #setDatatype(DataType) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Datatype() + * @see org.eclipse.uml2.uml.DataType#getOwnedOperations + * @model opposite="ownedOperation" ordered="false" + * @generated + */ + DataType getDatatype(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getDatatype Datatype}' container reference. + * + * + * @param value the new value of the 'Datatype' container reference. + * @see #getDatatype() + * @generated + */ + void setDatatype(DataType value); + + /** + * Returns the value of the 'Body Condition' reference. + * + * + * + * An optional Constraint on the result values of an invocation of this Operation. + * + * @return the value of the 'Body Condition' reference. + * @see #setBodyCondition(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_BodyCondition() + * @model resolveProxies="false" ordered="false" + * @generated + */ + Constraint getBodyCondition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getBodyCondition Body Condition}' reference. + * + * + * @param value the new value of the 'Body Condition' reference. + * @see #getBodyCondition() + * @generated + */ + void setBodyCondition(Constraint value); + + /** + * Returns the value of the 'Type' reference. + * + * + * + * Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + * Specifies the return result of the operation, if present. + * + * @return the value of the 'Type' reference. + * @see #setType(Type) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Type() + * @model transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(Type value); + + /** + * Returns the value of the 'Interface' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Interface#getOwnedOperations Owned Operation}'. + * + * + * + * The Interface that owns this Operation. + * + * @return the value of the 'Interface' container reference. + * @see #setInterface(Interface) + * @see org.eclipse.uml2.uml.UMLPackage#getOperation_Interface() + * @see org.eclipse.uml2.uml.Interface#getOwnedOperations + * @model opposite="ownedOperation" ordered="false" + * @generated + */ + Interface getInterface(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Operation#getInterface Interface}' container reference. + * + * + * @param value the new value of the 'Interface' container reference. + * @see #getInterface() + * @generated + */ + void setInterface(Interface value); + + /** + * + * + * + * An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' + * self.ownedParameter->select(par | par.direction = #return)->size() <= 1 + * + * @model + * @generated + */ + boolean validateAtMostOneReturn(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A bodyCondition can only be specified for a query operation. + * bodyCondition->notEmpty() implies isQuery + * + * @model + * @generated + */ + boolean validateOnlyBodyForQuery(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + * If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + * + * + * result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int lowerBound(); + + /** + * + * + * + * If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + * If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + * + * + * result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int upperBound(); + + /** + * + * + * + * The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set + * result = ownedParameter->select (par | par.direction = #return) + * + * @model type="org.eclipse.uml2.uml.Parameter" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List returnResult(); + +} // Operation diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OperationTemplateParameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OperationTemplateParameter.java new file mode 100644 index 00000000..6376d043 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OperationTemplateParameter.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OperationTemplateParameter.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Operation Template Parameter'. + * + * + * + * OperationTemplateParameter is a template parameter where the parametered element is an Operation. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getOperationTemplateParameter() + * @model + * @generated + */ +public interface OperationTemplateParameter + extends TemplateParameter { +} // OperationTemplateParameter diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OutputPin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OutputPin.java new file mode 100644 index 00000000..8ab006d8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/OutputPin.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OutputPin.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Output Pin'. + * + * + * + * An output pin is a pin that holds output values produced by an action. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getOutputPin() + * @model + * @generated + */ +public interface OutputPin + extends Pin { +} // OutputPin diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java new file mode 100644 index 00000000..d4b7f047 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Package.java @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Package.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Package'. + * + * + * + * A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. In addition a package can be merged with other packages. + * A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. + * + * In addition a package can be merged with other packages. + * + * + * Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter. + * A Package can have one or more ProfileApplications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Package#getPackageMerges Package Merge}
  • + *
  • {@link org.eclipse.uml2.uml.Package#getPackagedElements Packaged Element}
  • + *
  • {@link org.eclipse.uml2.uml.Package#getOwnedTypes Owned Type}
  • + *
  • {@link org.eclipse.uml2.uml.Package#getNestedPackages Nested Package}
  • + *
  • {@link org.eclipse.uml2.uml.Package#getNestingPackage Nesting Package}
  • + *
  • {@link org.eclipse.uml2.uml.Package#getAppliedProfiles Applied Profile}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getPackage() + * @model + * @generated + */ +public interface Package + extends Namespace, PackageableElement, TemplateableElement { + + /** + * Returns the value of the 'Package Merge' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageMerge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.PackageMerge#getReceivingPackage Receiving Package}'. + * + * + * + * References the PackageMerges that are owned by this Package. + * + * @return the value of the 'Package Merge' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPackage_PackageMerge() + * @see org.eclipse.uml2.uml.PackageMerge#getReceivingPackage + * @model type="org.eclipse.uml2.uml.PackageMerge" opposite="receivingPackage" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getPackageMerges(); + + /** + * Creates a {@link org.eclipse.uml2.uml.PackageMerge} and appends it to the 'Package Merge' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.PackageMerge}. + * @see #getPackageMerges() + * @generated + */ + PackageMerge createPackageMerge(); + + /** + * Returns the value of the 'Packaged Element' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageableElement}. + * + * + * + * Specifies the packageable elements that are owned by this Package. + * + * @return the value of the 'Packaged Element' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPackage_PackagedElement() + * @model type="org.eclipse.uml2.uml.PackageableElement" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getPackagedElements(); + + /** + * Creates a {@link org.eclipse.uml2.uml.PackageableElement} and appends it to the 'Packaged Element' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.PackageableElement} to create. + * @return The new {@link org.eclipse.uml2.uml.PackageableElement}. + * @see #getPackagedElements() + * @generated + */ + PackageableElement createPackagedElement(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name' from the 'Packaged Element' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.PackageableElement} with the specified 'Name', or null. + * @see #getPackagedElements() + * @generated + */ + PackageableElement getPackagedElement(String name); + + /** + * Returns the value of the 'Owned Type' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Type}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Type#getPackage Package}'. + * + * + * + * References the packaged elements that are Types. + * + * @return the value of the 'Owned Type' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPackage_OwnedType() + * @see org.eclipse.uml2.uml.Type#getPackage + * @model type="org.eclipse.uml2.uml.Type" opposite="package" resolveProxies="false" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + List getOwnedTypes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Type} with the specified 'Name' from the 'Owned Type' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Type} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Type} with the specified 'Name', or null. + * @see #getOwnedTypes() + * @generated + */ + Type getOwnedType(String name); + + /** + * Returns the value of the 'Nested Package' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Package}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Package#getNestingPackage Nesting Package}'. + * + * + * + * References the packaged elements that are Packages. + * + * @return the value of the 'Nested Package' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPackage_NestedPackage() + * @see org.eclipse.uml2.uml.Package#getNestingPackage + * @model type="org.eclipse.uml2.uml.Package" opposite="nestingPackage" resolveProxies="false" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + List getNestedPackages(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Package} with the specified 'Name' from the 'Nested Package' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Package} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Package} with the specified 'Name', or null. + * @see #getNestedPackages() + * @generated + */ + Package getNestedPackage(String name); + + /** + * Returns the value of the 'Nesting Package' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Package#getNestedPackages Nested Package}'. + * + * + * + * References the owning package of a package. + * References the Package that owns this Package. + * + * @return the value of the 'Nesting Package' reference. + * @see #setNestingPackage(Package) + * @see org.eclipse.uml2.uml.UMLPackage#getPackage_NestingPackage() + * @see org.eclipse.uml2.uml.Package#getNestedPackages + * @model opposite="nestedPackage" resolveProxies="false" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + Package getNestingPackage(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Package#getNestingPackage Nesting Package}' reference. + * + * + * @param value the new value of the 'Nesting Package' reference. + * @see #getNestingPackage() + * @generated + */ + void setNestingPackage(Package value); + + /** + * Returns the value of the 'Applied Profile' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ProfileApplication}. + * + * + * + * References the ProfileApplications that indicate which profiles have been applied to the Package. + * + * @return the value of the 'Applied Profile' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPackage_AppliedProfile() + * @model type="org.eclipse.uml2.uml.ProfileApplication" resolveProxies="false" ordered="false" + * @generated + */ + List getAppliedProfiles(); + + /** + * + * + * + * If an element that is owned by a package has visibility, it is public or private. + * self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private) + * + * @model + * @generated + */ + boolean validateElementsPublicOrPrivate(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query visibleMembers() defines which members of a Package can be accessed outside it. + * result = member->select( m | self.makesVisible(m)) + * + * @model type="org.eclipse.uml2.uml.PackageableElement" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List visibleMembers(); + + /** + * + * + * + * The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. + * self.member->includes(el) + * result = (ownedMember->includes(el)) or + * (elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or + * (packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty()) + * + * @model required="true" ordered="false" elRequired="true" elOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean makesVisible(NamedElement el); + +} // Package diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java new file mode 100644 index 00000000..e4e9485d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageImport.java @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageImport.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Package Import'. + * + * + * + * A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.PackageImport#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.PackageImport#getImportedPackage Imported Package}
  • + *
  • {@link org.eclipse.uml2.uml.PackageImport#getImportingNamespace Importing Namespace}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getPackageImport() + * @model + * @generated + */ +public interface PackageImport + extends DirectedRelationship { + + /** + * Returns the value of the 'Visibility' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.VisibilityKind}. + * + * + * + * Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not. + * + * @return the value of the 'Visibility' attribute. + * @see org.eclipse.uml2.uml.VisibilityKind + * @see #setVisibility(VisibilityKind) + * @see org.eclipse.uml2.uml.UMLPackage#getPackageImport_Visibility() + * @model required="true" ordered="false" + * @generated + */ + VisibilityKind getVisibility(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.PackageImport#getVisibility Visibility}' attribute. + * + * + * @param value the new value of the 'Visibility' attribute. + * @see org.eclipse.uml2.uml.VisibilityKind + * @see #getVisibility() + * @generated + */ + void setVisibility(VisibilityKind value); + + /** + * Returns the value of the 'Imported Package' reference. + * + * + * + * Specifies the Package whose members are imported into a Namespace. + * + * @return the value of the 'Imported Package' reference. + * @see #setImportedPackage(org.eclipse.uml2.uml.Package) + * @see org.eclipse.uml2.uml.UMLPackage#getPackageImport_ImportedPackage() + * @model required="true" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Package getImportedPackage(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.PackageImport#getImportedPackage Imported Package}' reference. + * + * + * @param value the new value of the 'Imported Package' reference. + * @see #getImportedPackage() + * @generated + */ + void setImportedPackage(org.eclipse.uml2.uml.Package value); + + /** + * Returns the value of the 'Importing Namespace' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Namespace#getPackageImports Package Import}'. + * + * + * + * Specifies the Namespace that imports the members from a Package. + * + * @return the value of the 'Importing Namespace' container reference. + * @see #setImportingNamespace(Namespace) + * @see org.eclipse.uml2.uml.UMLPackage#getPackageImport_ImportingNamespace() + * @see org.eclipse.uml2.uml.Namespace#getPackageImports + * @model opposite="packageImport" required="true" ordered="false" + * @generated + */ + Namespace getImportingNamespace(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.PackageImport#getImportingNamespace Importing Namespace}' container reference. + * + * + * @param value the new value of the 'Importing Namespace' container reference. + * @see #getImportingNamespace() + * @generated + */ + void setImportingNamespace(Namespace value); + + /** + * + * + * + * The visibility of a PackageImport is either public or private. + * self.visibility = #public or self.visibility = #private + * + * @model + * @generated + */ + boolean validatePublicOrPrivate(DiagnosticChain diagnostics, Map context); + +} // PackageImport diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java new file mode 100644 index 00000000..297025fa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageMerge.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageMerge.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Package Merge'. + * + * + * + * A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. + * + * + * + * This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel. + * + * + * + * Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed. + * A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel. + * + * + * + * Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.PackageMerge#getMergedPackage Merged Package}
  • + *
  • {@link org.eclipse.uml2.uml.PackageMerge#getReceivingPackage Receiving Package}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getPackageMerge() + * @model + * @generated + */ +public interface PackageMerge + extends DirectedRelationship { + + /** + * Returns the value of the 'Merged Package' reference. + * + * + * + * References the Package that is to be merged with the receiving package of the PackageMerge. + * + * @return the value of the 'Merged Package' reference. + * @see #setMergedPackage(org.eclipse.uml2.uml.Package) + * @see org.eclipse.uml2.uml.UMLPackage#getPackageMerge_MergedPackage() + * @model required="true" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Package getMergedPackage(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.PackageMerge#getMergedPackage Merged Package}' reference. + * + * + * @param value the new value of the 'Merged Package' reference. + * @see #getMergedPackage() + * @generated + */ + void setMergedPackage(org.eclipse.uml2.uml.Package value); + + /** + * Returns the value of the 'Receiving Package' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Package#getPackageMerges Package Merge}'. + * + * + * + * References the Package that is being extended with the contents of the merged package of the PackageMerge. + * + * @return the value of the 'Receiving Package' container reference. + * @see #setReceivingPackage(org.eclipse.uml2.uml.Package) + * @see org.eclipse.uml2.uml.UMLPackage#getPackageMerge_ReceivingPackage() + * @see org.eclipse.uml2.uml.Package#getPackageMerges + * @model opposite="packageMerge" required="true" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Package getReceivingPackage(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.PackageMerge#getReceivingPackage Receiving Package}' container reference. + * + * + * @param value the new value of the 'Receiving Package' container reference. + * @see #getReceivingPackage() + * @generated + */ + void setReceivingPackage(org.eclipse.uml2.uml.Package value); + +} // PackageMerge diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java new file mode 100644 index 00000000..c60c5470 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PackageableElement.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageableElement.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Packageable Element'. + * + * + * + * A packageable element indicates a named element that may be owned directly by a package. + * PackageableElements are extended to enable any such element to serve as a template parameter. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getPackageableElement() + * @model abstract="true" + * @generated + */ +public interface PackageableElement + extends NamedElement, ParameterableElement { +} // PackageableElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java new file mode 100644 index 00000000..ea7d7821 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Parameter.java @@ -0,0 +1,328 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Parameter.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Parameter'. + * + * + * + * A parameter is a kind of typed element in order to allow the specification of an optional multiplicity on parameters. In addition, it supports the specification of an optional default value. + * A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature. It has a type, and may have a multiplicity and an optional default value. + * Parameters are allowed to be treated as connectable elements. + * Parameters are extended in complete activities to add support for streaming, exceptions, and parameter sets. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Parameter#getParameterSets Parameter Set}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#getOperation Operation}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#getDirection Direction}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#getDefault Default}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#getDefaultValue Default Value}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#isException Is Exception}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#isStream Is Stream}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#getEffect Effect}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getParameter() + * @model + * @generated + */ +public interface Parameter + extends ConnectableElement, MultiplicityElement { + + /** + * Returns the value of the 'Parameter Set' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ParameterSet}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ParameterSet#getParameters Parameter}'. + * + * + * + * The parameter sets containing the parameter. See ParameterSet. + * + * @return the value of the 'Parameter Set' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_ParameterSet() + * @see org.eclipse.uml2.uml.ParameterSet#getParameters + * @model type="org.eclipse.uml2.uml.ParameterSet" opposite="parameter" ordered="false" + * @generated + */ + List getParameterSets(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ParameterSet} with the specified 'Name' from the 'Parameter Set' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ParameterSet} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ParameterSet} with the specified 'Name', or null. + * @see #getParameterSets() + * @generated + */ + ParameterSet getParameterSet(String name); + + /** + * Returns the value of the 'Operation' reference. + * + * + * + * References the Operation for which this is a formal parameter. + * References the Operation owning this parameter. + * + * @return the value of the 'Operation' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_Operation() + * @model transient="true" changeable="false" volatile="true" ordered="false" + * @generated + */ + Operation getOperation(); + + /** + * Returns the value of the 'Direction' attribute. + * The default value is "in". + * The literals are from the enumeration {@link org.eclipse.uml2.uml.ParameterDirectionKind}. + * + * + * + * Indicates whether a parameter is being sent into or out of a behavioral element. + * + * @return the value of the 'Direction' attribute. + * @see org.eclipse.uml2.uml.ParameterDirectionKind + * @see #setDirection(ParameterDirectionKind) + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_Direction() + * @model default="in" required="true" ordered="false" + * @generated + */ + ParameterDirectionKind getDirection(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Parameter#getDirection Direction}' attribute. + * + * + * @param value the new value of the 'Direction' attribute. + * @see org.eclipse.uml2.uml.ParameterDirectionKind + * @see #getDirection() + * @generated + */ + void setDirection(ParameterDirectionKind value); + + /** + * Returns the value of the 'Default' attribute. + * + * + * + * Specifies a String that represents a value to be used when no argument is supplied for the Parameter. + * + * @return the value of the 'Default' attribute. + * @see #setDefault(String) + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_Default() + * @model transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + String getDefault(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Parameter#getDefault Default}' attribute. + * + * + * @param value the new value of the 'Default' attribute. + * @see #getDefault() + * @generated + */ + void setDefault(String value); + + /** + * Returns the value of the 'Default Value' containment reference. + * + * + * + * Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter. + * + * @return the value of the 'Default Value' containment reference. + * @see #setDefaultValue(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_DefaultValue() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getDefaultValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Parameter#getDefaultValue Default Value}' containment reference. + * + * + * @param value the new value of the 'Default Value' containment reference. + * @see #getDefaultValue() + * @generated + */ + void setDefaultValue(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Default Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getDefaultValue() + * @generated + */ + ValueSpecification createDefaultValue(EClass eClass); + + /** + * Returns the value of the 'Is Exception' attribute. + * The default value is "false". + * + * + * + * Tells whether an output parameter may emit a value to the exclusion of the other outputs. + * + * @return the value of the 'Is Exception' attribute. + * @see #setIsException(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_IsException() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isException(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Parameter#isException Is Exception}' attribute. + * + * + * @param value the new value of the 'Is Exception' attribute. + * @see #isException() + * @generated + */ + void setIsException(boolean value); + + /** + * Returns the value of the 'Is Stream' attribute. + * The default value is "false". + * + * + * + * Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing. + * + * @return the value of the 'Is Stream' attribute. + * @see #setIsStream(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_IsStream() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isStream(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Parameter#isStream Is Stream}' attribute. + * + * + * @param value the new value of the 'Is Stream' attribute. + * @see #isStream() + * @generated + */ + void setIsStream(boolean value); + + /** + * Returns the value of the 'Effect' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.ParameterEffectKind}. + * + * + * + * Specifies the effect that the owner of the parameter has on values passed in or out of the parameter. + * + * @return the value of the 'Effect' attribute. + * @see org.eclipse.uml2.uml.ParameterEffectKind + * @see #setEffect(ParameterEffectKind) + * @see org.eclipse.uml2.uml.UMLPackage#getParameter_Effect() + * @model required="true" ordered="false" + * @generated + */ + ParameterEffectKind getEffect(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Parameter#getEffect Effect}' attribute. + * + * + * @param value the new value of the 'Effect' attribute. + * @see org.eclipse.uml2.uml.ParameterEffectKind + * @see #getEffect() + * @generated + */ + void setEffect(ParameterEffectKind value); + + /** + * + * + * + * A parameter may only be associated with a connector end within the context of a collaboration. + * self.end.notEmpty() implies self.collaboration.notEmpty() + * + * @model + * @generated + */ + boolean validateConnectorEnd(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A parameter cannot be a stream and exception at the same time. + * true + * + * @model + * @generated + */ + boolean validateStreamAndException(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * An input parameter cannot be an exception. + * true + * + * @model + * @generated + */ + boolean validateNotException(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Reentrant behaviors cannot have stream parameters. + * true + * + * @model + * @generated + */ + boolean validateReentrantBehaviors(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect. + * true + * + * @model + * @generated + */ + boolean validateInAndOut(DiagnosticChain diagnostics, Map context); + +} // Parameter diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterDirectionKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterDirectionKind.java new file mode 100644 index 00000000..3d9aaf1b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterDirectionKind.java @@ -0,0 +1,232 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterDirectionKind.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Parameter Direction Kind', + * and utility methods for working with them. + * + * + * ParameterDirectionKind is an enumeration of the following literal values: + * + * - in Indicates that parameter values are passed into the behavioral element by the caller. + * + * - inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + * + * - out Indicates that parameter values are passed from a behavioral element out to the caller. + * + * - return Indicates that parameter values are passed as return values from a behavioral element back to the caller. + * + * + * ParameterDirectionKind is an enumeration of the following literal values: + * ? in Indicates that parameter values are passed into the behavioral element by the caller. + * ? inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + * ? out Indicates that parameter values are passed from a behavioral element out to the caller. + * ? return Indicates that parameter values are passed as return values from a behavioral element back to the caller. + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getParameterDirectionKind() + * @model + * @generated + */ +public final class ParameterDirectionKind + extends AbstractEnumerator { + + /** + * The 'In' literal value. + * + * + * + * Indicates that parameter values are passed into the behavioral element by the caller. + * + * @see #IN_LITERAL + * @model name="in" + * @generated + * @ordered + */ + public static final int IN = 0; + + /** + * The 'Inout' literal value. + * + * + * + * Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. + * + * @see #INOUT_LITERAL + * @model name="inout" + * @generated + * @ordered + */ + public static final int INOUT = 1; + + /** + * The 'Out' literal value. + * + * + * + * Indicates that parameter values are passed from a behavioral element out to the caller. + * + * @see #OUT_LITERAL + * @model name="out" + * @generated + * @ordered + */ + public static final int OUT = 2; + + /** + * The 'Return' literal value. + * + * + * + * Indicates that parameter values are passed as return values from a behavioral element back to the caller. + * + * @see #RETURN_LITERAL + * @model name="return" + * @generated + * @ordered + */ + public static final int RETURN = 3; + + /** + * The 'In' literal object. + * + * + * @see #IN + * @generated + * @ordered + */ + public static final ParameterDirectionKind IN_LITERAL = new ParameterDirectionKind( + IN, "in", "in"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Inout' literal object. + * + * + * @see #INOUT + * @generated + * @ordered + */ + public static final ParameterDirectionKind INOUT_LITERAL = new ParameterDirectionKind( + INOUT, "inout", "inout"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Out' literal object. + * + * + * @see #OUT + * @generated + * @ordered + */ + public static final ParameterDirectionKind OUT_LITERAL = new ParameterDirectionKind( + OUT, "out", "out"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Return' literal object. + * + * + * @see #RETURN + * @generated + * @ordered + */ + public static final ParameterDirectionKind RETURN_LITERAL = new ParameterDirectionKind( + RETURN, "return", "return"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Parameter Direction Kind' enumerators. + * + * + * @generated + */ + private static final ParameterDirectionKind[] VALUES_ARRAY = new ParameterDirectionKind[]{ + IN_LITERAL, INOUT_LITERAL, OUT_LITERAL, RETURN_LITERAL,}; + + /** + * A public read-only list of all the 'Parameter Direction Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Parameter Direction Kind' literal with the specified literal value. + * + * + * @generated + */ + public static ParameterDirectionKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ParameterDirectionKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Parameter Direction Kind' literal with the specified name. + * + * + * @generated + */ + public static ParameterDirectionKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ParameterDirectionKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Parameter Direction Kind' literal with the specified integer value. + * + * + * @generated + */ + public static ParameterDirectionKind get(int value) { + switch (value) { + case IN : + return IN_LITERAL; + case INOUT : + return INOUT_LITERAL; + case OUT : + return OUT_LITERAL; + case RETURN : + return RETURN_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ParameterDirectionKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //ParameterDirectionKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterEffectKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterEffectKind.java new file mode 100644 index 00000000..7306e1bf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterEffectKind.java @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterEffectKind.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Parameter Effect Kind', + * and utility methods for working with them. + * + * + * The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters. + * + * @see org.eclipse.uml2.uml.UMLPackage#getParameterEffectKind() + * @model + * @generated + */ +public final class ParameterEffectKind + extends AbstractEnumerator { + + /** + * The 'Create' literal value. + * + *

+ * If the meaning of 'Create' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #CREATE_LITERAL + * @model name="create" + * @generated + * @ordered + */ + public static final int CREATE = 0; + + /** + * The 'Read' literal value. + * + *

+ * If the meaning of 'Read' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #READ_LITERAL + * @model name="read" + * @generated + * @ordered + */ + public static final int READ = 1; + + /** + * The 'Update' literal value. + * + *

+ * If the meaning of 'Update' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #UPDATE_LITERAL + * @model name="update" + * @generated + * @ordered + */ + public static final int UPDATE = 2; + + /** + * The 'Delete' literal value. + * + *

+ * If the meaning of 'Delete' literal object isn't clear, + * there really should be more of a description here... + *

+ * + * @see #DELETE_LITERAL + * @model name="delete" + * @generated + * @ordered + */ + public static final int DELETE = 3; + + /** + * The 'Create' literal object. + * + * + * @see #CREATE + * @generated + * @ordered + */ + public static final ParameterEffectKind CREATE_LITERAL = new ParameterEffectKind( + CREATE, "create", "create"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Read' literal object. + * + * + * @see #READ + * @generated + * @ordered + */ + public static final ParameterEffectKind READ_LITERAL = new ParameterEffectKind( + READ, "read", "read"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Update' literal object. + * + * + * @see #UPDATE + * @generated + * @ordered + */ + public static final ParameterEffectKind UPDATE_LITERAL = new ParameterEffectKind( + UPDATE, "update", "update"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Delete' literal object. + * + * + * @see #DELETE + * @generated + * @ordered + */ + public static final ParameterEffectKind DELETE_LITERAL = new ParameterEffectKind( + DELETE, "delete", "delete"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Parameter Effect Kind' enumerators. + * + * + * @generated + */ + private static final ParameterEffectKind[] VALUES_ARRAY = new ParameterEffectKind[]{ + CREATE_LITERAL, READ_LITERAL, UPDATE_LITERAL, DELETE_LITERAL,}; + + /** + * A public read-only list of all the 'Parameter Effect Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Parameter Effect Kind' literal with the specified literal value. + * + * + * @generated + */ + public static ParameterEffectKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ParameterEffectKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Parameter Effect Kind' literal with the specified name. + * + * + * @generated + */ + public static ParameterEffectKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ParameterEffectKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Parameter Effect Kind' literal with the specified integer value. + * + * + * @generated + */ + public static ParameterEffectKind get(int value) { + switch (value) { + case CREATE : + return CREATE_LITERAL; + case READ : + return READ_LITERAL; + case UPDATE : + return UPDATE_LITERAL; + case DELETE : + return DELETE_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ParameterEffectKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //ParameterEffectKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterSet.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterSet.java new file mode 100644 index 00000000..55ebf2a6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterSet.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterSet.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Parameter Set'. + * + * + * + * An parameter set acts as a complete set of inputs and outputs to a behavior, exclusive of other parameter sets on the behavior. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ParameterSet#getParameters Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.ParameterSet#getConditions Condition}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getParameterSet() + * @model + * @generated + */ +public interface ParameterSet + extends NamedElement { + + /** + * Returns the value of the 'Parameter' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Parameter}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Parameter#getParameterSets Parameter Set}'. + * + * + * + * Parameters in the parameter set. + * + * @return the value of the 'Parameter' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getParameterSet_Parameter() + * @see org.eclipse.uml2.uml.Parameter#getParameterSets + * @model type="org.eclipse.uml2.uml.Parameter" opposite="parameterSet" required="true" ordered="false" + * @generated + */ + List getParameters(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Parameter} with the specified 'Name' from the 'Parameter' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Parameter} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Parameter} with the specified 'Name', or null. + * @see #getParameters() + * @generated + */ + Parameter getParameter(String name); + + /** + * Returns the value of the 'Condition' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Constraint}. + * + * + * + * Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied. + * + * @return the value of the 'Condition' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getParameterSet_Condition() + * @model type="org.eclipse.uml2.uml.Constraint" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getConditions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Condition' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getConditions() + * @generated + */ + Constraint createCondition(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and appends it to the 'Condition' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getConditions() + * @generated + */ + Constraint createCondition(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name' from the 'Condition' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Constraint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Constraint} with the specified 'Name', or null. + * @see #getConditions() + * @generated + */ + Constraint getCondition(String name); + + /** + * + * + * + * The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity. + * true + * + * @model + * @generated + */ + boolean validateSameParameterizedEntity(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters. + * true + * + * @model + * @generated + */ + boolean validateInput(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Two parameter sets cannot have exactly the same set of parameters. + * true + * + * @model + * @generated + */ + boolean validateTwoParameterSets(DiagnosticChain diagnostics, Map context); + +} // ParameterSet diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterableElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterableElement.java new file mode 100644 index 00000000..8da93096 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ParameterableElement.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterableElement.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Parameterable Element'. + * + * + * + * A ParameterableElement can be referenced by a TemplateParameter when defining a formal template parameter for a template. A ParameterableElement can be referenced by a TemplateParameterSubstitution when used as an actual parameter in a binding of a template. + * + * ParameterableElement is an abstract metaclass. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter Owning Template Parameter}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getParameterableElement() + * @model abstract="true" + * @generated + */ +public interface ParameterableElement + extends Element { + + /** + * Returns the value of the 'Template Parameter' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateParameter#getParameteredElement Parametered Element}'. + * + * + * + * The template parameter that exposes this element as a formal parameter. + * + * @return the value of the 'Template Parameter' reference. + * @see #setTemplateParameter(TemplateParameter) + * @see org.eclipse.uml2.uml.UMLPackage#getParameterableElement_TemplateParameter() + * @see org.eclipse.uml2.uml.TemplateParameter#getParameteredElement + * @model opposite="parameteredElement" ordered="false" + * @generated + */ + TemplateParameter getTemplateParameter(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter Template Parameter}' reference. + * + * + * @param value the new value of the 'Template Parameter' reference. + * @see #getTemplateParameter() + * @generated + */ + void setTemplateParameter(TemplateParameter value); + + /** + * Returns the value of the 'Owning Template Parameter' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement Owned Parametered Element}'. + * + * + * + * The formal template parameter that owns this element. + * + * @return the value of the 'Owning Template Parameter' container reference. + * @see #setOwningTemplateParameter(TemplateParameter) + * @see org.eclipse.uml2.uml.UMLPackage#getParameterableElement_OwningTemplateParameter() + * @see org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement + * @model opposite="ownedParameteredElement" ordered="false" + * @generated + */ + TemplateParameter getOwningTemplateParameter(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter Owning Template Parameter}' container reference. + * + * + * @param value the new value of the 'Owning Template Parameter' container reference. + * @see #getOwningTemplateParameter() + * @generated + */ + void setOwningTemplateParameter(TemplateParameter value); + + /** + * + * + * + * The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints. + * result = p->oclIsKindOf(self.oclType) + * + * @model required="true" ordered="false" pRequired="true" pOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isCompatibleWith(ParameterableElement p); + + /** + * + * + * + * The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter. + * result = templateParameter->notEmpty() + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isTemplateParameter(); + +} // ParameterableElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PartDecomposition.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PartDecomposition.java new file mode 100644 index 00000000..40f31969 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PartDecomposition.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PartDecomposition.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Part Decomposition'. + * + * + * + * PartDecomposition is a description of the internal interactions of one Lifeline relative to an Interaction. + * + * + * + * A Lifeline has a class associated as the type of the ConnectableElement that the Lifeline represents. That class may have an internal structure and the PartDecomposition is an Interaction that describes the behavior of that internal structure relative to the Interaction where the decomposition is referenced. + * + * + * + * A PartDecomposition is a specialization of InteractionUse. It associates with the ConnectableElement that it decomposes. + * + * + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getPartDecomposition() + * @model + * @generated + */ +public interface PartDecomposition + extends InteractionUse { + + /** + * + * + * + * PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations. + * true + * + * @model + * @generated + */ + boolean validatePartsOfInternalStructures(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order. + * + * + * + * i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D + * + * ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D. + * + * iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D + * + * + * true + * + * @model + * @generated + */ + boolean validateAssume(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an + * + * InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition) + * + * + * true + * + * @model + * @generated + */ + boolean validateCommutativityOfDecomposition(DiagnosticChain diagnostics, + Map context); + +} // PartDecomposition diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java new file mode 100644 index 00000000..bc65fcf8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pin.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Pin.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Pin'. + * + * + * + * A pin is a typed element and multiplicity element that provides values to actions and accept result values from them. + * A pin is an object node for inputs and outputs to actions. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Pin#isControl Is Control}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getPin() + * @model + * @generated + */ +public interface Pin + extends ObjectNode { + + /** + * Returns the value of the 'Is Control' attribute. + * The default value is "false". + * + * + * + * Tells whether the pins provide data to the actions, or just controls when it executes it. + * + * @return the value of the 'Is Control' attribute. + * @see #setIsControl(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getPin_IsControl() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isControl(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Pin#isControl Is Control}' attribute. + * + * + * @param value the new value of the 'Is Control' attribute. + * @see #isControl() + * @generated + */ + void setIsControl(boolean value); + + /** + * + * + * + * Control pins have a control type + * isControl implies isControlType + * + * @model + * @generated + */ + boolean validateControlPins(DiagnosticChain diagnostics, Map context); + +} // Pin diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java new file mode 100644 index 00000000..e9935df5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Port.java @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Port.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Port'. + * + * + * + * Ports represent interaction points between a classifier and its environment. The interfaces associated with a port specify the nature of the interactions that may occur over a port. The required interfaces of a port characterize the requests which may be made from the classifier to its environment through this port. The provided interfaces of a port characterize requests to the classifier that its environment may make through this port. + * + * + * + * A port has the ability to specify that any requests arriving at this port are handled by the behavior of the instance of the owning classifier, rather than being forwarded to any contained instances, if any. + * + * + * Port is defined as a specialization of the general Port, adding an association to a protocol state machine. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Port#isBehavior Is Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.Port#isService Is Service}
  • + *
  • {@link org.eclipse.uml2.uml.Port#getRequireds Required}
  • + *
  • {@link org.eclipse.uml2.uml.Port#getRedefinedPorts Redefined Port}
  • + *
  • {@link org.eclipse.uml2.uml.Port#getProvideds Provided}
  • + *
  • {@link org.eclipse.uml2.uml.Port#getProtocol Protocol}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getPort() + * @model + * @generated + */ +public interface Port + extends Property { + + /** + * Returns the value of the 'Is Behavior' attribute. + * The default value is "false". + * + * + * + * Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain. + * + * @return the value of the 'Is Behavior' attribute. + * @see #setIsBehavior(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getPort_IsBehavior() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isBehavior(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Port#isBehavior Is Behavior}' attribute. + * + * + * @param value the new value of the 'Is Behavior' attribute. + * @see #isBehavior() + * @generated + */ + void setIsBehavior(boolean value); + + /** + * Returns the value of the 'Is Service' attribute. + * The default value is "true". + * + * + * + * If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation. + * + * @return the value of the 'Is Service' attribute. + * @see #setIsService(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getPort_IsService() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isService(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Port#isService Is Service}' attribute. + * + * + * @param value the new value of the 'Is Service' attribute. + * @see #isService() + * @generated + */ + void setIsService(boolean value); + + /** + * Returns the value of the 'Required' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Interface}. + * + * + * + * References the interfaces specifying the set of operations and receptions which the classifier expects its environment to handle. This association is derived as the set of interfaces required by the type of the port or its supertypes. + * + * @return the value of the 'Required' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPort_Required() + * @model type="org.eclipse.uml2.uml.Interface" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getRequireds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Interface} with the specified 'Name' from the 'Required' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Interface} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Interface} with the specified 'Name', or null. + * @see #getRequireds() + * @generated + */ + Interface getRequired(String name); + + /** + * Returns the value of the 'Redefined Port' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Port}. + * + * + * + * A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes. + * + * @return the value of the 'Redefined Port' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPort_RedefinedPort() + * @model type="org.eclipse.uml2.uml.Port" ordered="false" + * @generated + */ + List getRedefinedPorts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Port} with the specified 'Name' from the 'Redefined Port' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Port} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Port} with the specified 'Name', or null. + * @see #getRedefinedPorts() + * @generated + */ + Port getRedefinedPort(String name); + + /** + * Returns the value of the 'Provided' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Interface}. + * + * + * + * References the interfaces specifying the set of operations and receptions which the classifier offers to its environment, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived from the interfaces realized by the type of the port or by the type of the port, if the port was typed by an interface. + * + * + * + * @return the value of the 'Provided' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getPort_Provided() + * @model type="org.eclipse.uml2.uml.Interface" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getProvideds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Interface} with the specified 'Name' from the 'Provided' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Interface} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Interface} with the specified 'Name', or null. + * @see #getProvideds() + * @generated + */ + Interface getProvided(String name); + + /** + * Returns the value of the 'Protocol' reference. + * + * + * + * References an optional protocol state machine which describes valid interactions at this interaction point. + * + * @return the value of the 'Protocol' reference. + * @see #setProtocol(ProtocolStateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getPort_Protocol() + * @model ordered="false" + * @generated + */ + ProtocolStateMachine getProtocol(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Port#getProtocol Protocol}' reference. + * + * + * @param value the new value of the 'Protocol' reference. + * @see #getProtocol() + * @generated + */ + void setProtocol(ProtocolStateMachine value); + + /** + * + * + * + * The required interfaces of a port must be provided by elements to which the port is connected. + * true + * + * @model + * @generated + */ + boolean validateRequiredInterfaces(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Port.aggregation must be composite. + * true + * + * @model + * @generated + */ + boolean validatePortAggregation(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * When a port is destroyed, all connectors attached to this port will be destroyed also. + * true + * + * @model + * @generated + */ + boolean validatePortDestroyed(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A defaultValue for port cannot be specified when the type of the Port is an Interface + * true + * + * @model + * @generated + */ + boolean validateDefaultValue(DiagnosticChain diagnostics, Map context); + +} // Port diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PrimitiveType.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PrimitiveType.java new file mode 100644 index 00000000..3a0b7651 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PrimitiveType.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PrimitiveType.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Primitive Type'. + * + * + * + * A primitive type defines a predefined data type, without any relevant substructure (i.e. it has no parts in the context of the UML). A primitive datatype may have an algebra and operations defined out of UML, for example, mathematically. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getPrimitiveType() + * @model + * @generated + */ +public interface PrimitiveType + extends DataType { +} // PrimitiveType diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Profile.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Profile.java new file mode 100644 index 00000000..64542944 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Profile.java @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Profile.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Profile'. + * + * + * + * A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which are defined as part of Profiles. + * + * + * + * A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in this package. + * + * + * + * A profile is a restricted form of a metamodel that must always be related to a reference metamodel, such as UML, as described below. A profile cannot be used without its reference metamodel, and defines a limited capability to extendmetaclasses of the reference metamodel. The extensions are defined as stereotypes that apply to existing metaclasses. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Profile#getOwnedStereotypes Owned Stereotype}
  • + *
  • {@link org.eclipse.uml2.uml.Profile#getMetaclassReferences Metaclass Reference}
  • + *
  • {@link org.eclipse.uml2.uml.Profile#getMetamodelReferences Metamodel Reference}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getProfile() + * @model + * @generated + */ +public interface Profile + extends org.eclipse.uml2.uml.Package { + + /** + * Returns the value of the 'Owned Stereotype' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Stereotype}. + * + * + * + * References the Stereotypes that are owned by the Profile. + * + * @return the value of the 'Owned Stereotype' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProfile_OwnedStereotype() + * @model type="org.eclipse.uml2.uml.Stereotype" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedStereotypes(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Stereotype} with the specified 'Name' from the 'Owned Stereotype' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Stereotype} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Stereotype} with the specified 'Name', or null. + * @see #getOwnedStereotypes() + * @generated + */ + Stereotype getOwnedStereotype(String name); + + /** + * Returns the value of the 'Metaclass Reference' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ElementImport}. + * + * + * + * References a metaclass that may be extended. + * + * @return the value of the 'Metaclass Reference' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProfile_MetaclassReference() + * @model type="org.eclipse.uml2.uml.ElementImport" resolveProxies="false" ordered="false" + * @generated + */ + List getMetaclassReferences(); + + /** + * Returns the value of the 'Metamodel Reference' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.PackageImport}. + * + * + * + * References a package containing (directly or indirectly) metaclasses that may be extended. + * + * @return the value of the 'Metamodel Reference' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProfile_MetamodelReference() + * @model type="org.eclipse.uml2.uml.PackageImport" resolveProxies="false" ordered="false" + * @generated + */ + List getMetamodelReferences(); + + /** + * + * + * + * An element imported as a metaclassReference is not specialized or generalized in a Profile. + * self.metaclassReference.importedElement-> + * + * select(c | c.oclIsKindOf(Classifier) and + * + * (c.generalization.namespace = self or + * + * (c.specialization.namespace = self) )->isEmpty() + * + * @model + * @generated + */ + boolean validateMetaclassReferenceNotSpecialized( + DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel. + * self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())-> + * + * union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty() + * + * @model + * @generated + */ + boolean validateReferencesSameMetamodel(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query allOwningPackages() returns all the directly or indirectly owning packages. + * result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages()) + * + * @model type="org.eclipse.uml2.uml.Package" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allOwningPackages(); + +} // Profile diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java new file mode 100644 index 00000000..7a94c207 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProfileApplication.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProfileApplication.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Profile Application'. + * + * + * + * ProfileApplication is a kind of PackageImport that adds the capability to state that a Profile is applied to a Package. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ProfileApplication#getImportedProfile Imported Profile}
  • + *
  • {@link org.eclipse.uml2.uml.ProfileApplication#isStrict Is Strict}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getProfileApplication() + * @model + * @generated + */ +public interface ProfileApplication + extends PackageImport { + + /** + * Returns the value of the 'Imported Profile' reference. + * + * + * + * References the Profiles that are applied to a Package through this ProfileApplication. + * + * @return the value of the 'Imported Profile' reference. + * @see #setImportedProfile(Profile) + * @see org.eclipse.uml2.uml.UMLPackage#getProfileApplication_ImportedProfile() + * @model required="true" ordered="false" + * @generated + */ + Profile getImportedProfile(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ProfileApplication#getImportedProfile Imported Profile}' reference. + * + * + * @param value the new value of the 'Imported Profile' reference. + * @see #getImportedProfile() + * @generated + */ + void setImportedProfile(Profile value); + + /** + * Returns the value of the 'Is Strict' attribute. + * + * + * + * Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied. + * + * @return the value of the 'Is Strict' attribute. + * @see #setIsStrict(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getProfileApplication_IsStrict() + * @model required="true" ordered="false" + * @generated + */ + boolean isStrict(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ProfileApplication#isStrict Is Strict}' attribute. + * + * + * @param value the new value of the 'Is Strict' attribute. + * @see #isStrict() + * @generated + */ + void setIsStrict(boolean value); + +} // ProfileApplication diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java new file mode 100644 index 00000000..b5bf735d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Property.java @@ -0,0 +1,666 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Property.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Property'. + * + * + * + * Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. + * + * + * + * Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type. + * A property is a structural feature. + * + * A property related to a classifier by ownedAttribute represents an attribute, and it may also represent an association end. It relates an instance of the class to a value or collection of values of the type of the attribute. + * + * A property related to an Association by memberEnd or its specializations represents an end of the association. The type of property is the type of the end of the association. + * + * + * A property represents a set of instances that are owned by a containing classifier instance. + * In the metamodel, Property is a specialization of DeploymentTarget. + * Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type. + * + * + * Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Property#getDatatype Datatype}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isDerived Is Derived}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isDerivedUnion Is Derived Union}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getDefault Default}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getAggregation Aggregation}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isComposite Is Composite}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getClass_ Class }
  • + *
  • {@link org.eclipse.uml2.uml.Property#getRedefinedProperties Redefined Property}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getOwningAssociation Owning Association}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getAssociation Association}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getDefaultValue Default Value}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getOpposite Opposite}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getSubsettedProperties Subsetted Property}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getQualifiers Qualifier}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getAssociationEnd Association End}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getProperty() + * @model + * @generated + */ +public interface Property + extends StructuralFeature, ConnectableElement, DeploymentTarget, + TemplateableElement { + + /** + * Returns the value of the 'Datatype' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.DataType#getOwnedAttributes Owned Attribute}'. + * + * + * + * The DataType that owns this Operation. + * The DataType that owns this Property. + * + * + * + * @return the value of the 'Datatype' container reference. + * @see #setDatatype(DataType) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Datatype() + * @see org.eclipse.uml2.uml.DataType#getOwnedAttributes + * @model opposite="ownedAttribute" ordered="false" + * @generated + */ + DataType getDatatype(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getDatatype Datatype}' container reference. + * + * + * @param value the new value of the 'Datatype' container reference. + * @see #getDatatype() + * @generated + */ + void setDatatype(DataType value); + + /** + * Returns the value of the 'Is Derived' attribute. + * The default value is "false". + * + * + * + * If isDerived is true, the value of the attribute is derived from information elsewhere. + * Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. + * + * @return the value of the 'Is Derived' attribute. + * @see #setIsDerived(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsDerived() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDerived(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isDerived Is Derived}' attribute. + * + * + * @param value the new value of the 'Is Derived' attribute. + * @see #isDerived() + * @generated + */ + void setIsDerived(boolean value); + + /** + * Returns the value of the 'Is Derived Union' attribute. + * The default value is "false". + * + * + * + * Specifies whether the property is derived as the union of all of the properties that are constrained to subset it. + * + * @return the value of the 'Is Derived Union' attribute. + * @see #setIsDerivedUnion(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsDerivedUnion() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDerivedUnion(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isDerivedUnion Is Derived Union}' attribute. + * + * + * @param value the new value of the 'Is Derived Union' attribute. + * @see #isDerivedUnion() + * @generated + */ + void setIsDerivedUnion(boolean value); + + /** + * Returns the value of the 'Default' attribute. + * + * + * + * Specifies a String that represents a value to be used when no argument is supplied for the Property. + * A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated. + * + * @return the value of the 'Default' attribute. + * @see #setDefault(String) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Default() + * @model transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + String getDefault(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getDefault Default}' attribute. + * + * + * @param value the new value of the 'Default' attribute. + * @see #getDefault() + * @generated + */ + void setDefault(String value); + + /** + * Returns the value of the 'Aggregation' attribute. + * The default value is "none". + * The literals are from the enumeration {@link org.eclipse.uml2.uml.AggregationKind}. + * + * + * + * Specifies the kind of aggregation that applies to the Property. + * + * @return the value of the 'Aggregation' attribute. + * @see org.eclipse.uml2.uml.AggregationKind + * @see #setAggregation(AggregationKind) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Aggregation() + * @model default="none" required="true" ordered="false" + * @generated + */ + AggregationKind getAggregation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getAggregation Aggregation}' attribute. + * + * + * @param value the new value of the 'Aggregation' attribute. + * @see org.eclipse.uml2.uml.AggregationKind + * @see #getAggregation() + * @generated + */ + void setAggregation(AggregationKind value); + + /** + * Returns the value of the 'Is Composite' attribute. + * The default value is "false". + * + * + * + * If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. + * This is a derived value, indicating whether the aggregation of the Property is composite or not. + * + * @return the value of the 'Is Composite' attribute. + * @see #setIsComposite(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsComposite() + * @model default="false" required="true" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isComposite(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isComposite Is Composite}' attribute. + * + * + * @param value the new value of the 'Is Composite' attribute. + * @see #isComposite() + * @generated + */ + void setIsComposite(boolean value); + + /** + * Returns the value of the 'Class ' reference. + * + *

+ * If the meaning of the 'Class ' reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Class ' reference. + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Class_() + * @model resolveProxies="false" transient="true" changeable="false" volatile="true" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Class getClass_(); + + /** + * Returns the value of the 'Redefined Property' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * References the properties that are redefined by this property. + * + * @return the value of the 'Redefined Property' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_RedefinedProperty() + * @model type="org.eclipse.uml2.uml.Property" ordered="false" + * @generated + */ + List getRedefinedProperties(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Redefined Property' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getRedefinedProperties() + * @generated + */ + Property getRedefinedProperty(String name); + + /** + * Returns the value of the 'Owning Association' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Association#getOwnedEnds Owned End}'. + * + * + * + * References the owning association of this property, if any. + * References the owning association of this property. + * + * @return the value of the 'Owning Association' container reference. + * @see #setOwningAssociation(Association) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_OwningAssociation() + * @see org.eclipse.uml2.uml.Association#getOwnedEnds + * @model opposite="ownedEnd" ordered="false" + * @generated + */ + Association getOwningAssociation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getOwningAssociation Owning Association}' container reference. + * + * + * @param value the new value of the 'Owning Association' container reference. + * @see #getOwningAssociation() + * @generated + */ + void setOwningAssociation(Association value); + + /** + * Returns the value of the 'Association' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Association#getMemberEnds Member End}'. + * + * + * + * References the association of which this property is a member, if any. + * + * @return the value of the 'Association' reference. + * @see #setAssociation(Association) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Association() + * @see org.eclipse.uml2.uml.Association#getMemberEnds + * @model opposite="memberEnd" ordered="false" + * @generated + */ + Association getAssociation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getAssociation Association}' reference. + * + * + * @param value the new value of the 'Association' reference. + * @see #getAssociation() + * @generated + */ + void setAssociation(Association value); + + /** + * Returns the value of the 'Default Value' containment reference. + * + * + * + * A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated. + * + * @return the value of the 'Default Value' containment reference. + * @see #setDefaultValue(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_DefaultValue() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ValueSpecification getDefaultValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getDefaultValue Default Value}' containment reference. + * + * + * @param value the new value of the 'Default Value' containment reference. + * @see #getDefaultValue() + * @generated + */ + void setDefaultValue(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Default Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getDefaultValue() + * @generated + */ + ValueSpecification createDefaultValue(EClass eClass); + + /** + * Returns the value of the 'Opposite' reference. + * + * + * + * In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end. + * + * @return the value of the 'Opposite' reference. + * @see #setOpposite(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Opposite() + * @model transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + Property getOpposite(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getOpposite Opposite}' reference. + * + * + * @param value the new value of the 'Opposite' reference. + * @see #getOpposite() + * @generated + */ + void setOpposite(Property value); + + /** + * Returns the value of the 'Subsetted Property' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * References the properties of which this property is constrained to be a subset. + * + * @return the value of the 'Subsetted Property' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_SubsettedProperty() + * @model type="org.eclipse.uml2.uml.Property" ordered="false" + * @generated + */ + List getSubsettedProperties(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Subsetted Property' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getSubsettedProperties() + * @generated + */ + Property getSubsettedProperty(String name); + + /** + * Returns the value of the 'Qualifier' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getAssociationEnd Association End}'. + * + * + * + * An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified. + * + * @return the value of the 'Qualifier' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Qualifier() + * @see org.eclipse.uml2.uml.Property#getAssociationEnd + * @model type="org.eclipse.uml2.uml.Property" opposite="associationEnd" containment="true" resolveProxies="false" + * @generated + */ + List getQualifiers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Qualifier' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getQualifiers() + * @generated + */ + Property createQualifier(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Qualifier' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getQualifiers() + * @generated + */ + Property createQualifier(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Qualifier' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getQualifiers() + * @generated + */ + Property getQualifier(String name); + + /** + * Returns the value of the 'Association End' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getQualifiers Qualifier}'. + * + * + * + * Designates the optional association end that owns a qualifier attribute. + * + * @return the value of the 'Association End' container reference. + * @see #setAssociationEnd(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getProperty_AssociationEnd() + * @see org.eclipse.uml2.uml.Property#getQualifiers + * @model opposite="qualifier" ordered="false" + * @generated + */ + Property getAssociationEnd(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getAssociationEnd Association End}' container reference. + * + * + * @param value the new value of the 'Association End' container reference. + * @see #getAssociationEnd() + * @generated + */ + void setAssociationEnd(Property value); + + /** + * + * + * + * A multiplicity of a composite aggregation must not have an upper bound greater than 1. + * A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1. + * isComposite implies (upperBound()->isEmpty() or upperBound() <= 1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfComposite(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. + * self.subsettedProperty->notEmpty() implies + * (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc | + * self.subsettedProperty->forAll(sp | + * sp.subsettingContext()->exists(c | sc.conformsTo(c))))) + * + * @model + * @generated + */ + boolean validateSubsettingContext(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A navigable property can only be redefined or subsetted by a navigable property. + * (self.subsettedProperty->exists(sp | sp.isNavigable()) implies self.isNavigable()) + * and (self.redefinedProperty->exists(rp | rp.isNavigable()) implies self.isNavigable()) + * + * @model + * @generated + */ + boolean validateNavigablePropertyRedefinition(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less. + * self.subsettedProperty->forAll(sp | + * self.type.conformsTo(sp.type) and + * ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies + * self.upperBound()<=sp.upperBound() )) + * + * @model + * @generated + */ + boolean validateSubsettingRules(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only a navigable property can be marked as readOnly. + * isReadOnly implies isNavigable() + * + * @model + * @generated + */ + boolean validateNavigableReadonly(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A derived union is derived. + * isDerivedUnion implies isDerived + * + * @model + * @generated + */ + boolean validateDerivedUnionIsDerived(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A derived union is read only. + * isDerivedUnion implies isReadOnly + * + * @model + * @generated + */ + boolean validateDerivedUnionIsReadOnly(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node. + * true + * + * @model + * @generated + */ + boolean validateDeploymentTarget(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A binding of a property template parameter representing an attribute must be to an attribute. + * (isAttribute(self) and (templateParameterSubstitution->notEmpty()) + * + * implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal))) + * + * @model + * @generated + */ + boolean validateBindingToAttribute(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The query isAttribute() is true if the Property is defined as an attribute of some classifier. + * result = Classifier.allInstances->exists(c | c.attribute->includes(p)) + * + * @model required="true" ordered="false" pRequired="true" pOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isAttribute(Property p); + + /** + * + * + * + * The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends. + * result = if association->notEmpty() + * then association.endType-type + * else if classifier->notEmpty() then Set{classifier} else Set{} endif + * endif + * + * @model type="org.eclipse.uml2.uml.Type" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List subsettingContext(); + + /** + * + * + * + * The query isNavigable indicates whether it is possible to navigate across the property. + * The query isNavigable() indicates whether it is possible to navigate across the property. + * result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self) + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isNavigable(); + +} // Property diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java new file mode 100644 index 00000000..91e68e26 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolConformance.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolConformance.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Protocol Conformance'. + * + * + * + * Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. + * + * + * + * Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine. + * + * + * + * A protocol state machine is owned by a classifier. The classifiers owning a general state machine and an associated specific state machine are generally also connected by a generalization or a realization link. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ProtocolConformance#getGeneralMachine General Machine}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolConformance#getSpecificMachine Specific Machine}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolConformance() + * @model + * @generated + */ +public interface ProtocolConformance + extends DirectedRelationship { + + /** + * Returns the value of the 'General Machine' reference. + * + * + * + * Specifies the protocol state machine to which the specific state machine conforms. + * + * @return the value of the 'General Machine' reference. + * @see #setGeneralMachine(ProtocolStateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolConformance_GeneralMachine() + * @model required="true" ordered="false" + * @generated + */ + ProtocolStateMachine getGeneralMachine(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ProtocolConformance#getGeneralMachine General Machine}' reference. + * + * + * @param value the new value of the 'General Machine' reference. + * @see #getGeneralMachine() + * @generated + */ + void setGeneralMachine(ProtocolStateMachine value); + + /** + * Returns the value of the 'Specific Machine' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ProtocolStateMachine#getConformances Conformance}'. + * + * + * + * Specifies the state machine which conforms to the general state machine. + * + * @return the value of the 'Specific Machine' container reference. + * @see #setSpecificMachine(ProtocolStateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolConformance_SpecificMachine() + * @see org.eclipse.uml2.uml.ProtocolStateMachine#getConformances + * @model opposite="conformance" required="true" ordered="false" + * @generated + */ + ProtocolStateMachine getSpecificMachine(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ProtocolConformance#getSpecificMachine Specific Machine}' container reference. + * + * + * @param value the new value of the 'Specific Machine' container reference. + * @see #getSpecificMachine() + * @generated + */ + void setSpecificMachine(ProtocolStateMachine value); + +} // ProtocolConformance diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolStateMachine.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolStateMachine.java new file mode 100644 index 00000000..1266020b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolStateMachine.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolStateMachine.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Protocol State Machine'. + * + * + * + * A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ProtocolStateMachine#getConformances Conformance}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolStateMachine() + * @model + * @generated + */ +public interface ProtocolStateMachine + extends StateMachine { + + /** + * Returns the value of the 'Conformance' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ProtocolConformance}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ProtocolConformance#getSpecificMachine Specific Machine}'. + * + * + * + * Conformance between protocol state machines. + * + * @return the value of the 'Conformance' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolStateMachine_Conformance() + * @see org.eclipse.uml2.uml.ProtocolConformance#getSpecificMachine + * @model type="org.eclipse.uml2.uml.ProtocolConformance" opposite="specificMachine" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getConformances(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ProtocolConformance} and appends it to the 'Conformance' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ProtocolConformance}. + * @see #getConformances() + * @generated + */ + ProtocolConformance createConformance(); + + /** + * + * + * + * All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package) + * region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition))) + * + * @model + * @generated + */ + boolean validateProtocolTransitions(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The states of a protocol state machine cannot have entry, exit, or do activity actions. + * region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies + * (v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty()))) + * + * + * @model + * @generated + */ + boolean validateEntryExitDo(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Protocol state machines cannot have deep or shallow history pseudostates. + * region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies + * ((v.kind <> #deepHistory) and (v.kind <> #shallowHistory))))) + * + * + * @model + * @generated + */ + boolean validateDeepOrShallowHistory(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined). + * true + * + * @model + * @generated + */ + boolean validatePortsConnected(DiagnosticChain diagnostics, Map context); + +} // ProtocolStateMachine diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolTransition.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolTransition.java new file mode 100644 index 00000000..36688aaa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ProtocolTransition.java @@ -0,0 +1,205 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolTransition.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Protocol Transition'. + * + * + * + * A protocol transition (transition as specialized in the ProtocolStateMachines package) specifies a legal transition for an operation. Transitions of protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation (referred BehavioralFeature) that belongs to the context classifier of the protocol state machine. + * + * + * + * The protocol transition specifies that the associated (referred) operation can be called for an instance in the origin state under the initial condition (guard), and that at the end of the transition, the destination state will be reached under the final condition (post). + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#getPostCondition Post Condition}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#getReferreds Referred}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#getPreCondition Pre Condition}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolTransition() + * @model + * @generated + */ +public interface ProtocolTransition + extends Transition { + + /** + * Returns the value of the 'Post Condition' containment reference. + * + * + * + * Specifies the post condition of the transition which is the condition that should be obtained once the transition is triggered. This post condition is part of the post condition of the operation connected to the transition. + * + * + * + * @return the value of the 'Post Condition' containment reference. + * @see #setPostCondition(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolTransition_PostCondition() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Constraint getPostCondition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ProtocolTransition#getPostCondition Post Condition}' containment reference. + * + * + * @param value the new value of the 'Post Condition' containment reference. + * @see #getPostCondition() + * @generated + */ + void setPostCondition(Constraint value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Post Condition' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getPostCondition() + * @generated + */ + Constraint createPostCondition(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Post Condition' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getPostCondition() + * @generated + */ + Constraint createPostCondition(); + + /** + * Returns the value of the 'Referred' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Operation}. + * + * + * + * This association refers to the associated operation. It is derived from the operation of the call trigger when applicable. + * + * @return the value of the 'Referred' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolTransition_Referred() + * @model type="org.eclipse.uml2.uml.Operation" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getReferreds(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified 'Name' from the 'Referred' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Operation} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Operation} with the specified 'Name', or null. + * @see #getReferreds() + * @generated + */ + Operation getReferred(String name); + + /** + * Returns the value of the 'Pre Condition' reference. + * + * + * + * Specifies the precondition of the transition. It specifies the condition that should be verified before triggering the transition. This guard condition added to the source state will be evaluated as part of the precondition of the operation referred by the transition if any. + * + * @return the value of the 'Pre Condition' reference. + * @see #setPreCondition(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getProtocolTransition_PreCondition() + * @model resolveProxies="false" ordered="false" + * @generated + */ + Constraint getPreCondition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ProtocolTransition#getPreCondition Pre Condition}' reference. + * + * + * @param value the new value of the 'Pre Condition' reference. + * @see #getPreCondition() + * @generated + */ + void setPreCondition(Constraint value); + + /** + * + * + * + * A protocol transition always belongs to a protocol state machine. + * container.belongsToPSM() + * + * @model + * @generated + */ + boolean validateBelongsToPsm(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A protocol transition never has associated actions. + * effect->isEmpty() + * + * @model + * @generated + */ + boolean validateAssociatedActions(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a protocol transition refers to an operation (i. e. has a call trigger corresponding to an operation), then that operation should apply to the context classifier of the state machine of the protocol transition. + * true + * + * @model + * @generated + */ + boolean validateRefersToOperation(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The operation belongsToPSM () checks if the region belongs to a protocol state machine + * result = if not stateMachine->isEmpty() then + * oclIsTypeOf(ProtocolStateMachine) + * else if not state->isEmpty() then + * state.container.belongsToPSM () + * else false + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean belongsToPSM(); + +} // ProtocolTransition diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pseudostate.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pseudostate.java new file mode 100644 index 00000000..5286eadb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Pseudostate.java @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Pseudostate.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Pseudostate'. + * + * + * + * Pseudostates are typically used to connect multiple transitions into more complex state transitions paths. For example, by combining a transition entering a fork pseudostate with a set of transitions exiting the fork pseudostate, we get a compound transition that leads to a set of orthogonal target states. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Pseudostate#getKind Kind}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#getStateMachine State Machine}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#getState State}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getPseudostate() + * @model + * @generated + */ +public interface Pseudostate + extends Vertex { + + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.PseudostateKind}. + * + * + * + * Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice. + * + * @return the value of the 'Kind' attribute. + * @see org.eclipse.uml2.uml.PseudostateKind + * @see #setKind(PseudostateKind) + * @see org.eclipse.uml2.uml.UMLPackage#getPseudostate_Kind() + * @model required="true" ordered="false" + * @generated + */ + PseudostateKind getKind(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Pseudostate#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.eclipse.uml2.uml.PseudostateKind + * @see #getKind() + * @generated + */ + void setKind(PseudostateKind value); + + /** + * Returns the value of the 'State Machine' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StateMachine#getConnectionPoints Connection Point}'. + * + * + * + * The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint. + * + * @return the value of the 'State Machine' container reference. + * @see #setStateMachine(StateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getPseudostate_StateMachine() + * @see org.eclipse.uml2.uml.StateMachine#getConnectionPoints + * @model opposite="connectionPoint" ordered="false" + * @generated + */ + StateMachine getStateMachine(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Pseudostate#getStateMachine State Machine}' container reference. + * + * + * @param value the new value of the 'State Machine' container reference. + * @see #getStateMachine() + * @generated + */ + void setStateMachine(StateMachine value); + + /** + * Returns the value of the 'State' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.State#getConnectionPoints Connection Point}'. + * + * + * + * The State that owns the pseudostate. If a Pseudostat is owned by a State, then it cannot also be owned by a StateMachine. + * + * @return the value of the 'State' container reference. + * @see #setState(State) + * @see org.eclipse.uml2.uml.UMLPackage#getPseudostate_State() + * @see org.eclipse.uml2.uml.State#getConnectionPoints + * @model opposite="connectionPoint" ordered="false" + * @generated + */ + State getState(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Pseudostate#getState State}' container reference. + * + * + * @param value the new value of the 'State' container reference. + * @see #getState() + * @generated + */ + void setState(State value); + + /** + * + * + * + * An initial vertex can have at most one outgoing transition. + * (self.kind = #initial) implies (self.outgoing->size <= 1) + * + * @model + * @generated + */ + boolean validateInitialVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * History vertices can have at most one outgoing transition. + * ((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies + * (self.outgoing->size <= 1) + * + * + * @model + * @generated + */ + boolean validateHistoryVertices(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition. + * (self.kind = #join) implies + * ((self.outgoing->size = 1) and (self.incoming->size >= 2)) + * + * + * @model + * @generated + */ + boolean validateJoinVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * All transitions incoming a join vertex must originate in different regions of an orthogonal state. + * (self.kind = #join) implies + * self.incoming->forAll (t1, t2 | t1<>t2 implies + * (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal)) + * + * @model + * @generated + */ + boolean validateTransitionsIncoming(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition. + * (self.kind = #fork) implies + * ((self.incoming->size = 1) and (self.outgoing->size >= 2)) + * + * + * @model + * @generated + */ + boolean validateForkVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * All transitions outgoing a fork vertex must target states in different regions of an orthogonal state. + * (self.kind = #fork) implies + * self.outgoing->forAll (t1, t2 | t1<>t2 implies + * (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal)) + * + * @model + * @generated + */ + boolean validateTransitionsOutgoing(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition. + * (self.kind = #junction) implies + * ((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + * + * + * @model + * @generated + */ + boolean validateJunctionVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition. + * (self.kind = #choice) implies + * ((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + * + * + * @model + * @generated + */ + boolean validateChoiceVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard. + * (self.kind = #initial) implies (self.outgoing.guard->isEmpty() + * + * and self.outgoing.trigger->isEmpty()) + * + * @model + * @generated + */ + boolean validateOutgoingFromInitial(DiagnosticChain diagnostics, Map context); + +} // Pseudostate diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PseudostateKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PseudostateKind.java new file mode 100644 index 00000000..bcf86ae9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/PseudostateKind.java @@ -0,0 +1,393 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PseudostateKind.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Pseudostate Kind', + * and utility methods for working with them. + * + * + * PseudoStateKind is an enumeration of the following literal values: + * ? initial + * ? deepHistory + * ? shallowHistory + * ? join + * ? fork + * ? junction + * ? choice + * ? entryPoint + * ? exitPoint + * ? terminate + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getPseudostateKind() + * @model + * @generated + */ +public final class PseudostateKind + extends AbstractEnumerator { + + /** + * The 'Initial' literal value. + * + * + * + * An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard. + * + * @see #INITIAL_LITERAL + * @model name="initial" + * @generated + * @ordered + */ + public static final int INITIAL = 0; + + /** + * The 'Deep History' literal value. + * + * + * + * DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed. + * + * @see #DEEP_HISTORY_LITERAL + * @model name="deepHistory" + * @generated + * @ordered + */ + public static final int DEEP_HISTORY = 1; + + /** + * The 'Shallow History' literal value. + * + * + * + * ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed. + * + * @see #SHALLOW_HISTORY_LITERAL + * @model name="shallowHistory" + * @generated + * @ordered + */ + public static final int SHALLOW_HISTORY = 2; + + /** + * The 'Join' literal value. + * + * + * + * Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers. + * + * @see #JOIN_LITERAL + * @model name="join" + * @generated + * @ordered + */ + public static final int JOIN = 3; + + /** + * The 'Fork' literal value. + * + * + * + * Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices + * + * (i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers. + * + * @see #FORK_LITERAL + * @model name="fork" + * @generated + * @ordered + */ + public static final int FORK = 4; + + /** + * The 'Junction' literal value. + * + * + * + * Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted ?else? may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below). + * + * @see #JUNCTION_LITERAL + * @model name="junction" + * @generated + * @ordered + */ + public static final int JUNCTION = 5; + + /** + * The 'Choice' literal value. + * + * + * + * Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above). + * + * @see #CHOICE_LITERAL + * @model name="choice" + * @generated + * @ordered + */ + public static final int CHOICE = 6; + + /** + * The 'Entry Point' literal value. + * + * + * + * An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region. + * + * @see #ENTRY_POINT_LITERAL + * @model name="entryPoint" + * @generated + * @ordered + */ + public static final int ENTRY_POINT = 7; + + /** + * The 'Exit Point' literal value. + * + * + * + * An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state. + * + * @see #EXIT_POINT_LITERAL + * @model name="exitPoint" + * @generated + * @ordered + */ + public static final int EXIT_POINT = 8; + + /** + * The 'Terminate' literal value. + * + * + * + * Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction. + * + * @see #TERMINATE_LITERAL + * @model name="terminate" + * @generated + * @ordered + */ + public static final int TERMINATE = 9; + + /** + * The 'Initial' literal object. + * + * + * @see #INITIAL + * @generated + * @ordered + */ + public static final PseudostateKind INITIAL_LITERAL = new PseudostateKind( + INITIAL, "initial", "initial"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Deep History' literal object. + * + * + * @see #DEEP_HISTORY + * @generated + * @ordered + */ + public static final PseudostateKind DEEP_HISTORY_LITERAL = new PseudostateKind( + DEEP_HISTORY, "deepHistory", "deepHistory"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Shallow History' literal object. + * + * + * @see #SHALLOW_HISTORY + * @generated + * @ordered + */ + public static final PseudostateKind SHALLOW_HISTORY_LITERAL = new PseudostateKind( + SHALLOW_HISTORY, "shallowHistory", "shallowHistory"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Join' literal object. + * + * + * @see #JOIN + * @generated + * @ordered + */ + public static final PseudostateKind JOIN_LITERAL = new PseudostateKind( + JOIN, "join", "join"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Fork' literal object. + * + * + * @see #FORK + * @generated + * @ordered + */ + public static final PseudostateKind FORK_LITERAL = new PseudostateKind( + FORK, "fork", "fork"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Junction' literal object. + * + * + * @see #JUNCTION + * @generated + * @ordered + */ + public static final PseudostateKind JUNCTION_LITERAL = new PseudostateKind( + JUNCTION, "junction", "junction"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Choice' literal object. + * + * + * @see #CHOICE + * @generated + * @ordered + */ + public static final PseudostateKind CHOICE_LITERAL = new PseudostateKind( + CHOICE, "choice", "choice"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Entry Point' literal object. + * + * + * @see #ENTRY_POINT + * @generated + * @ordered + */ + public static final PseudostateKind ENTRY_POINT_LITERAL = new PseudostateKind( + ENTRY_POINT, "entryPoint", "entryPoint"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Exit Point' literal object. + * + * + * @see #EXIT_POINT + * @generated + * @ordered + */ + public static final PseudostateKind EXIT_POINT_LITERAL = new PseudostateKind( + EXIT_POINT, "exitPoint", "exitPoint"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Terminate' literal object. + * + * + * @see #TERMINATE + * @generated + * @ordered + */ + public static final PseudostateKind TERMINATE_LITERAL = new PseudostateKind( + TERMINATE, "terminate", "terminate"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Pseudostate Kind' enumerators. + * + * + * @generated + */ + private static final PseudostateKind[] VALUES_ARRAY = new PseudostateKind[]{ + INITIAL_LITERAL, DEEP_HISTORY_LITERAL, SHALLOW_HISTORY_LITERAL, + JOIN_LITERAL, FORK_LITERAL, JUNCTION_LITERAL, CHOICE_LITERAL, + ENTRY_POINT_LITERAL, EXIT_POINT_LITERAL, TERMINATE_LITERAL,}; + + /** + * A public read-only list of all the 'Pseudostate Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Pseudostate Kind' literal with the specified literal value. + * + * + * @generated + */ + public static PseudostateKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + PseudostateKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Pseudostate Kind' literal with the specified name. + * + * + * @generated + */ + public static PseudostateKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + PseudostateKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Pseudostate Kind' literal with the specified integer value. + * + * + * @generated + */ + public static PseudostateKind get(int value) { + switch (value) { + case INITIAL : + return INITIAL_LITERAL; + case DEEP_HISTORY : + return DEEP_HISTORY_LITERAL; + case SHALLOW_HISTORY : + return SHALLOW_HISTORY_LITERAL; + case JOIN : + return JOIN_LITERAL; + case FORK : + return FORK_LITERAL; + case JUNCTION : + return JUNCTION_LITERAL; + case CHOICE : + return CHOICE_LITERAL; + case ENTRY_POINT : + return ENTRY_POINT_LITERAL; + case EXIT_POINT : + return EXIT_POINT_LITERAL; + case TERMINATE : + return TERMINATE_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private PseudostateKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //PseudostateKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/QualifierValue.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/QualifierValue.java new file mode 100644 index 00000000..2a71ba00 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/QualifierValue.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: QualifierValue.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Qualifier Value'. + * + * + * + * A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.QualifierValue#getQualifier Qualifier}
  • + *
  • {@link org.eclipse.uml2.uml.QualifierValue#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getQualifierValue() + * @model + * @generated + */ +public interface QualifierValue + extends Element { + + /** + * Returns the value of the 'Qualifier' reference. + * + * + * + * Attribute representing the qualifier for which the value is to be specified. + * + * @return the value of the 'Qualifier' reference. + * @see #setQualifier(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getQualifierValue_Qualifier() + * @model required="true" ordered="false" + * @generated + */ + Property getQualifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.QualifierValue#getQualifier Qualifier}' reference. + * + * + * @param value the new value of the 'Qualifier' reference. + * @see #getQualifier() + * @generated + */ + void setQualifier(Property value); + + /** + * Returns the value of the 'Value' reference. + * + * + * + * Input pin from which the specified value for the qualifier is taken. + * + * @return the value of the 'Value' reference. + * @see #setValue(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getQualifierValue_Value() + * @model required="true" ordered="false" + * @generated + */ + InputPin getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.QualifierValue#getValue Value}' reference. + * + * + * @param value the new value of the 'Value' reference. + * @see #getValue() + * @generated + */ + void setValue(InputPin value); + + /** + * + * + * + * The qualifier attribute must be a qualifier of the association end of the link-end data. + * self.LinkEndData.end->collect(qualifier)->includes(self.qualifier) + * + * @model + * @generated + */ + boolean validateQualifierAttribute(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the qualifier value input pin is the same as the type of the qualifier attribute. + * self.value.type = self.qualifier.type + * + * @model + * @generated + */ + boolean validateTypeOfQualifier(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the qualifier value input pin is "1..1". + * self.value.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfQualifier(DiagnosticChain diagnostics, + Map context); + +} // QualifierValue diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RaiseExceptionAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RaiseExceptionAction.java new file mode 100644 index 00000000..253cffe3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RaiseExceptionAction.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RaiseExceptionAction.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Raise Exception Action'. + * + * + * + * RaiseExceptionAction is an action that causes an exception to occur. The input value becomes the exception object. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RaiseExceptionAction#getException Exception}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRaiseExceptionAction() + * @model + * @generated + */ +public interface RaiseExceptionAction + extends Action { + + /** + * Returns the value of the 'Exception' containment reference. + * + * + * + * An input pin whose value becomes an exception object. + * + * @return the value of the 'Exception' containment reference. + * @see #setException(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getRaiseExceptionAction_Exception() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getException(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RaiseExceptionAction#getException Exception}' containment reference. + * + * + * @param value the new value of the 'Exception' containment reference. + * @see #getException() + * @generated + */ + void setException(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Exception' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getException() + * @generated + */ + InputPin createException(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Exception' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getException() + * @generated + */ + InputPin createException(); + +} // RaiseExceptionAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadExtentAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadExtentAction.java new file mode 100644 index 00000000..398d18ad --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadExtentAction.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadExtentAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Read Extent Action'. + * + * + * + * ReadExtentAction is an action that retrieves the current instances of a classifier. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadExtentAction#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.ReadExtentAction#getClassifier Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadExtentAction() + * @model + * @generated + */ +public interface ReadExtentAction + extends Action { + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * The runtime instances of the classifier. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadExtentAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadExtentAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * Returns the value of the 'Classifier' reference. + * + * + * + * The classifier whose instances are to be retrieved. + * + * @return the value of the 'Classifier' reference. + * @see #setClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getReadExtentAction_Classifier() + * @model required="true" ordered="false" + * @generated + */ + Classifier getClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadExtentAction#getClassifier Classifier}' reference. + * + * + * @param value the new value of the 'Classifier' reference. + * @see #getClassifier() + * @generated + */ + void setClassifier(Classifier value); + + /** + * + * + * + * The type of the result output pin is the classifier. + * true + * + * @model + * @generated + */ + boolean validateTypeIsClassifier(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the result output pin is 0..*. + * self.result.multiplicity.is(0,#null) + * + * @model + * @generated + */ + boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context); + +} // ReadExtentAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadIsClassifiedObjectAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadIsClassifiedObjectAction.java new file mode 100644 index 00000000..22e65d8a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadIsClassifiedObjectAction.java @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadIsClassifiedObjectAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Read Is Classified Object Action'. + * + * + * + * This action tests the classification of an object against a given class. It can be restricted to testing direct instances. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#isDirect Is Direct}
  • + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getClassifier Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getObject Object}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadIsClassifiedObjectAction() + * @model + * @generated + */ +public interface ReadIsClassifiedObjectAction + extends Action { + + /** + * Returns the value of the 'Is Direct' attribute. + * The default value is "false". + * + * + * + * Indicates whether the classifier must directly classify the input object. + * + * @return the value of the 'Is Direct' attribute. + * @see #setIsDirect(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getReadIsClassifiedObjectAction_IsDirect() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isDirect(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#isDirect Is Direct}' attribute. + * + * + * @param value the new value of the 'Is Direct' attribute. + * @see #isDirect() + * @generated + */ + void setIsDirect(boolean value); + + /** + * Returns the value of the 'Classifier' reference. + * + * + * + * The classifier against which the classification of the input object is tested. + * + * @return the value of the 'Classifier' reference. + * @see #setClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getReadIsClassifiedObjectAction_Classifier() + * @model required="true" ordered="false" + * @generated + */ + Classifier getClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getClassifier Classifier}' reference. + * + * + * @param value the new value of the 'Classifier' reference. + * @see #getClassifier() + * @generated + */ + void setClassifier(Classifier value); + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * After termination of the action, will hold the result of the test. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadIsClassifiedObjectAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * Holds the object whose classification is to be tested. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadIsClassifiedObjectAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfInput(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The input pin has no type. + * self.object.type->isEmpty() + * + * @model + * @generated + */ + boolean validateNoType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfOutput(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The type of the output pin is Boolean + * self.result.type = Boolean + * + * @model + * @generated + */ + boolean validateBooleanResult(DiagnosticChain diagnostics, Map context); + +} // ReadIsClassifiedObjectAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkAction.java new file mode 100644 index 00000000..12e0e509 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkAction.java @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Read Link Action'. + * + * + * + * This action navigates an association towards one end, which is the end that does not have an input pin to take its object (the ?open? end). The objects put on the result output pin are the ones participating in the association at the open end, conforming to the specified qualifiers, in order if the end is ordered. The semantics is undefined for reading a link that violates the navigability or visibility of the open end. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadLinkAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkAction() + * @model + * @generated + */ +public interface ReadLinkAction + extends LinkAction { + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * The pin on which are put the objects participating in the association at the end not specified by the inputs. + * + * + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * Exactly one link-end data specification (the 'open' end) must not have an end object input pin. + * self.endData->select(ed | ed.value->size() = 0)->size() = 1 + * + * @model + * @generated + */ + boolean validateOneOpenEnd(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type and ordering of the result output pin are same as the type and ordering of the open association end. + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * self.result.type = openend.type + * and self.result.ordering = openend.ordering + * + * + * @model + * @generated + */ + boolean validateTypeAndOrdering(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the open association end must be compatible with the multiplicity of the result output pin. + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * openend.multiplicity.compatibleWith(self.result.multiplicity) + * + * + * @model + * @generated + */ + boolean validateCompatibleMultiplicity(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The open end must be navigable. + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * openend.isNavigable() + * + * + * @model + * @generated + */ + boolean validateNavigableOpenEnd(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Visibility of the open end must allow access to the object performing the action. + * let host : Classifier = self.context in + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * openend.visibility = #public + * or self.endData->exists(oed | not oed.end = openend + * and (host = oed.end.participant + * or (openend.visibility = #protected + * and host.allSupertypes->includes(oed.end.participant)))) + * + * + * @model + * @generated + */ + boolean validateVisibility(DiagnosticChain diagnostics, Map context); + +} // ReadLinkAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndAction.java new file mode 100644 index 00000000..5e3c2ad6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndAction.java @@ -0,0 +1,239 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkObjectEndAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Read Link Object End Action'. + * + * + * + * This action reads the object on an end of a link object. The association end to retrieve the object from is specified statically, and the link object to read is provided on the input pin at run time. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getObject Object}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getEnd End}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndAction() + * @model + * @generated + */ +public interface ReadLinkObjectEndAction + extends Action { + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * Gives the input pin from which the link object is obtained. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * Returns the value of the 'End' reference. + * + * + * + * Link end to be read. + * + * @return the value of the 'End' reference. + * @see #setEnd(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndAction_End() + * @model required="true" ordered="false" + * @generated + */ + Property getEnd(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getEnd End}' reference. + * + * + * @param value the new value of the 'End' reference. + * @see #getEnd() + * @generated + */ + void setEnd(Property value); + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Pin where the result value is placed + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The property must be an association end. + * self.end.association.notEmpty() + * + * @model + * @generated + */ + boolean validateProperty(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The association of the association end must be an association class. + * self.end.Association.oclIsKindOf(AssociationClass) + * + * @model + * @generated + */ + boolean validateAssociationOfAssociation(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The ends of the association must not be static. + * self.end.association.memberEnd->forall(e | not e.isStatic) + * + * @model + * @generated + */ + boolean validateEndsOfAssociation(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the object input pin is the association class that owns the association end. + * self.object.type = self.end.association + * + * @model + * @generated + */ + boolean validateTypeOfObject(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the object input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfObject(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The type of the result output pin is the same as the type of the association end. + * self.result.type = self.end.type + * + * @model + * @generated + */ + boolean validateTypeOfResult(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the result output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context); + +} // ReadLinkObjectEndAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndQualifierAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndQualifierAction.java new file mode 100644 index 00000000..39afda1a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadLinkObjectEndQualifierAction.java @@ -0,0 +1,252 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkObjectEndQualifierAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Read Link Object End Qualifier Action'. + * + * + * + * This action reads a qualifier value or values on an end of a link object. The association end to retrieve the qualifier from is specified statically, and the link object to read is provided on the input pin at run time. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getObject Object}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getQualifier Qualifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndQualifierAction() + * @model + * @generated + */ +public interface ReadLinkObjectEndQualifierAction + extends Action { + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * (Specialized from Action:input) Gives the input pin from which the link object is obtained. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndQualifierAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Pin where the result value is placed + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndQualifierAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * Returns the value of the 'Qualifier' reference. + * + * + * + * The attribute representing the qualifier to be read. + * + * @return the value of the 'Qualifier' reference. + * @see #setQualifier(Property) + * @see org.eclipse.uml2.uml.UMLPackage#getReadLinkObjectEndQualifierAction_Qualifier() + * @model required="true" ordered="false" + * @generated + */ + Property getQualifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getQualifier Qualifier}' reference. + * + * + * @param value the new value of the 'Qualifier' reference. + * @see #getQualifier() + * @generated + */ + void setQualifier(Property value); + + /** + * + * + * + * The qualifier attribute must be a qualifier attribute of an association end. + * self.qualifier.associationEnd->size() = 1 + * + * @model + * @generated + */ + boolean validateQualifierAttribute(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The association of the association end of the qualifier attribute must be an association class. + * self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass) + * + * @model + * @generated + */ + boolean validateAssociationOfAssociation(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The ends of the association must not be static. + * self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic) + * + * @model + * @generated + */ + boolean validateEndsOfAssociation(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the object input pin is the association class that owns the association end that has the given qualifier attribute. + * self.object.type = self.qualifier.associationEnd.association + * + * @model + * @generated + */ + boolean validateTypeOfObject(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the qualifier attribute is 1..1. + * self.qualifier.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfQualifier(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The multiplicity of the object input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfObject(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The type of the result output pin is the same as the type of the qualifier attribute. + * self.result.type = self.qualifier.type + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the result output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context); + +} // ReadLinkObjectEndQualifierAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadSelfAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadSelfAction.java new file mode 100644 index 00000000..942bd55d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadSelfAction.java @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadSelfAction.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Read Self Action'. + * + * + * + * Every action is ultimately a part of some behavior, which is in turn optionally attached in some way to the specification of a classifier; for example as the body of a method or as part of a state machine. When the behavior executes, it does so in the context of some specific host instance of that classifier. This action produces this host instance, if any, on its output pin. The type of the output pin is the classifier to which the behavior is associated in the user model. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadSelfAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadSelfAction() + * @model + * @generated + */ +public interface ReadSelfAction + extends Action { + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Gives the output pin on which the hosting object is placed. + * + * + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadSelfAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadSelfAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The action must be contained in an behavior that has a host classifier. + * self.context->size() = 1 + * + * @model + * @generated + */ + boolean validateContained(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static. + * true + * + * @model + * @generated + */ + boolean validateNotStatic(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the result output pin is the host classifier. + * self.result.type = self.context + * + * @model + * @generated + */ + boolean validateType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the result output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + +} // ReadSelfAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadStructuralFeatureAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadStructuralFeatureAction.java new file mode 100644 index 00000000..42e41ad4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadStructuralFeatureAction.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadStructuralFeatureAction.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Read Structural Feature Action'. + * + * + * + * This action reads the values of a structural feature, in order if the structural feature is ordered. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadStructuralFeatureAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadStructuralFeatureAction() + * @model + * @generated + */ +public interface ReadStructuralFeatureAction + extends StructuralFeatureAction { + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Gives the output pin on which the result is put. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadStructuralFeatureAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadStructuralFeatureAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The type and ordering of the result output pin are the same as the type and ordering of the structural feature. + * self.result.type = self.structuralFeature.type + * and self.result.ordering = self.structuralFeature.ordering + * + * + * @model + * @generated + */ + boolean validateTypeAndOrdering(DiagnosticChain diagnostics, Map context); + +} // ReadStructuralFeatureAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadVariableAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadVariableAction.java new file mode 100644 index 00000000..8de906c5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReadVariableAction.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadVariableAction.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Read Variable Action'. + * + * + * + * This action reads the values of a variables, in order if the variable is ordered. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadVariableAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReadVariableAction() + * @model + * @generated + */ +public interface ReadVariableAction + extends VariableAction { + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Gives the output pin on which the result is put. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReadVariableAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReadVariableAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The type and ordering of the result output pin of a read-variable action are the same as the type and ordering of the variable. + * self.result.type =self.variable.type + * and self.result.ordering = self.variable.ordering + * + * + * @model + * @generated + */ + boolean validateTypeAndOrdering(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the variable must be compatible with the multiplicity of the output pin. + * self.variable.multiplicity.compatibleWith(self.result.multiplicity) + * + * @model + * @generated + */ + boolean validateCompatibleMultiplicity(DiagnosticChain diagnostics, + Map context); + +} // ReadVariableAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Realization.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Realization.java new file mode 100644 index 00000000..b8ecc9e7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Realization.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Realization.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Realization'. + * + * + * + * Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getRealization() + * @model + * @generated + */ +public interface Realization + extends Abstraction { +} // Realization diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Reception.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Reception.java new file mode 100644 index 00000000..f0bf6754 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Reception.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Reception.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Reception'. + * + * + * + * A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Reception#getSignal Signal}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReception() + * @model + * @generated + */ +public interface Reception + extends BehavioralFeature { + + /** + * Returns the value of the 'Signal' reference. + * + * + * + * The signal that this reception handles. + * + * @return the value of the 'Signal' reference. + * @see #setSignal(Signal) + * @see org.eclipse.uml2.uml.UMLPackage#getReception_Signal() + * @model ordered="false" + * @generated + */ + Signal getSignal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Reception#getSignal Signal}' reference. + * + * + * @param value the new value of the 'Signal' reference. + * @see #getSignal() + * @generated + */ + void setSignal(Signal value); + + /** + * + * + * + * A Reception can not be a query. + * not self.isQuery + * + * @model + * @generated + */ + boolean validateNotQuery(DiagnosticChain diagnostics, Map context); + +} // Reception diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReclassifyObjectAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReclassifyObjectAction.java new file mode 100644 index 00000000..8b96f942 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReclassifyObjectAction.java @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReclassifyObjectAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Reclassify Object Action'. + * + * + * + * ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers may be added and removed at a time. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#getOldClassifiers Old Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#getNewClassifiers New Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#getObject Object}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReclassifyObjectAction() + * @model + * @generated + */ +public interface ReclassifyObjectAction + extends Action { + + /** + * Returns the value of the 'Is Replace All' attribute. + * The default value is "false". + * + * + * + * Specifies whether existing classifiers should be removed before adding the new classifiers. + * + * @return the value of the 'Is Replace All' attribute. + * @see #setIsReplaceAll(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getReclassifyObjectAction_IsReplaceAll() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isReplaceAll(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReclassifyObjectAction#isReplaceAll Is Replace All}' attribute. + * + * + * @param value the new value of the 'Is Replace All' attribute. + * @see #isReplaceAll() + * @generated + */ + void setIsReplaceAll(boolean value); + + /** + * Returns the value of the 'Old Classifier' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * A set of classifiers to be removed from the classifiers of the object. + * + * @return the value of the 'Old Classifier' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getReclassifyObjectAction_OldClassifier() + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * @generated + */ + List getOldClassifiers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Old Classifier' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getOldClassifiers() + * @generated + */ + Classifier getOldClassifier(String name); + + /** + * Returns the value of the 'New Classifier' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * A set of classifiers to be added to the classifiers of the object. + * + * @return the value of the 'New Classifier' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getReclassifyObjectAction_NewClassifier() + * @model type="org.eclipse.uml2.uml.Classifier" ordered="false" + * @generated + */ + List getNewClassifiers(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'New Classifier' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getNewClassifiers() + * @generated + */ + Classifier getNewClassifier(String name); + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * Holds the object to be reclassified. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReclassifyObjectAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReclassifyObjectAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * + * + * + * None of the new classifiers may be abstract. + * not self.newClassifier->exists(isAbstract = true) + * + * @model + * @generated + */ + boolean validateClassifierNotAbstract(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.argument.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The input pin has no type. + * self.argument.type->size() = 0 + * + * @model + * @generated + */ + boolean validateInputPin(DiagnosticChain diagnostics, Map context); + +} // ReclassifyObjectAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableElement.java new file mode 100644 index 00000000..56cd086a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableElement.java @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RedefinableElement.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Redefinable Element'. + * + * + * + * A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier. + * A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#isLeaf Is Leaf}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts Redefinition Context}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableElement() + * @model abstract="true" + * @generated + */ +public interface RedefinableElement + extends NamedElement { + + /** + * Returns the value of the 'Is Leaf' attribute. + * The default value is "false". + * + * + * + * Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement. + * + * @return the value of the 'Is Leaf' attribute. + * @see #setIsLeaf(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableElement_IsLeaf() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isLeaf(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RedefinableElement#isLeaf Is Leaf}' attribute. + * + * + * @param value the new value of the 'Is Leaf' attribute. + * @see #isLeaf() + * @generated + */ + void setIsLeaf(boolean value); + + /** + * Returns the value of the 'Redefined Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.RedefinableElement}. + * + * + * + * The redefinable element that is being redefined by this element. + * + * @return the value of the 'Redefined Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableElement_RedefinedElement() + * @model type="org.eclipse.uml2.uml.RedefinableElement" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getRedefinedElements(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.RedefinableElement} with the specified 'Name' from the 'Redefined Element' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.RedefinableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.RedefinableElement} with the specified 'Name', or null. + * @see #getRedefinedElements() + * @generated + */ + RedefinableElement getRedefinedElement(String name); + + /** + * Returns the value of the 'Redefinition Context' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * + * + * + * References the contexts that this element may be redefined from. + * + * @return the value of the 'Redefinition Context' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableElement_RedefinitionContext() + * @model type="org.eclipse.uml2.uml.Classifier" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getRedefinitionContexts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Redefinition Context' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getRedefinitionContexts() + * @generated + */ + Classifier getRedefinitionContext(String name); + + /** + * + * + * + * At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. + * self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e)) + * + * @model + * @generated + */ + boolean validateRedefinitionContextValid(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A redefining element must be consistent with each redefined element. + * self.redefinedElement->forAll(re | re.isConsistentWith(self)) + * + * @model + * @generated + */ + boolean validateRedefinitionConsistent(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + * result = self.redefinitionContext->exists(c | redefinable.redefinitionContext->exists(r | c.allParents()->includes(r))) + * + * @model required="true" ordered="false" redefinableRequired="true" redefinableOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isRedefinitionContextValid(RedefinableElement redefinable); + + /** + * + * + * + * The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. + * redefinee.isRedefinitionContextValid(self) + * + * + * result = false + * + * @model required="true" ordered="false" redefineeRequired="true" redefineeOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isConsistentWith(RedefinableElement redefinee); + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + * result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)) + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isRedefinitionContextValid(); + +} // RedefinableElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableTemplateSignature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableTemplateSignature.java new file mode 100644 index 00000000..2f68ae2c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RedefinableTemplateSignature.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RedefinableTemplateSignature.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Redefinable Template Signature'. + * + * + * + * RedefinableTemplateSignature specializes both TemplateSignature and RedefinableElement in order to allow the addition of new formal template parameters in the context of a specializing template Classifier. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getExtendedSignatures Extended Signature}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getInheritedParameters Inherited Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getClassifier Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableTemplateSignature() + * @model + * @generated + */ +public interface RedefinableTemplateSignature + extends RedefinableElement, TemplateSignature { + + /** + * Returns the value of the 'Extended Signature' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.RedefinableTemplateSignature}. + * + * + * + * The template signature that is extended by this template signature. + * + * @return the value of the 'Extended Signature' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableTemplateSignature_ExtendedSignature() + * @model type="org.eclipse.uml2.uml.RedefinableTemplateSignature" ordered="false" + * @generated + */ + List getExtendedSignatures(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.RedefinableTemplateSignature} with the specified 'Name' from the 'Extended Signature' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.RedefinableTemplateSignature} to retrieve. + * @return The {@link org.eclipse.uml2.uml.RedefinableTemplateSignature} with the specified 'Name', or null. + * @see #getExtendedSignatures() + * @generated + */ + RedefinableTemplateSignature getExtendedSignature(String name); + + /** + * Returns the value of the 'Inherited Parameter' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.TemplateParameter}. + * + * + * + * The formal template parameters of the extendedSignature. + * + * @return the value of the 'Inherited Parameter' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableTemplateSignature_InheritedParameter() + * @model type="org.eclipse.uml2.uml.TemplateParameter" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getInheritedParameters(); + + /** + * Returns the value of the 'Classifier' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Classifier#getOwnedSignature Owned Signature}'. + * + * + * + * The classifier that owns this template signature. + * + * @return the value of the 'Classifier' container reference. + * @see #setClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getRedefinableTemplateSignature_Classifier() + * @see org.eclipse.uml2.uml.Classifier#getOwnedSignature + * @model opposite="ownedSignature" required="true" ordered="false" + * @generated + */ + Classifier getClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getClassifier Classifier}' container reference. + * + * + * @param value the new value of the 'Classifier' container reference. + * @see #getClassifier() + * @generated + */ + void setClassifier(Classifier value); + + /** + * + * + * + * The inherited parameters are the parameters of the extended template signature. + * if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif + * + * @model + * @generated + */ + boolean validateInheritedParameters(DiagnosticChain diagnostics, Map context); + +} // RedefinableTemplateSignature diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Region.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Region.java new file mode 100644 index 00000000..569aa499 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Region.java @@ -0,0 +1,307 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Region.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Region'. + * + * + * + * A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Region#getSubvertices Subvertex}
  • + *
  • {@link org.eclipse.uml2.uml.Region#getTransitions Transition}
  • + *
  • {@link org.eclipse.uml2.uml.Region#getState State}
  • + *
  • {@link org.eclipse.uml2.uml.Region#getExtendedRegion Extended Region}
  • + *
  • {@link org.eclipse.uml2.uml.Region#getStateMachine State Machine}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRegion() + * @model + * @generated + */ +public interface Region + extends Namespace, RedefinableElement { + + /** + * Returns the value of the 'Subvertex' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Vertex}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Vertex#getContainer Container}'. + * + * + * + * The set of vertices that are owned by this region. + * + * @return the value of the 'Subvertex' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRegion_Subvertex() + * @see org.eclipse.uml2.uml.Vertex#getContainer + * @model type="org.eclipse.uml2.uml.Vertex" opposite="container" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getSubvertices(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Vertex} and appends it to the 'Subvertex' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Vertex} to create. + * @return The new {@link org.eclipse.uml2.uml.Vertex}. + * @see #getSubvertices() + * @generated + */ + Vertex createSubvertex(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Vertex} with the specified 'Name' from the 'Subvertex' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Vertex} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Vertex} with the specified 'Name', or null. + * @see #getSubvertices() + * @generated + */ + Vertex getSubvertex(String name); + + /** + * Returns the value of the 'Transition' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Transition}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Transition#getContainer Container}'. + * + * + * + * The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state. + * + * @return the value of the 'Transition' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRegion_Transition() + * @see org.eclipse.uml2.uml.Transition#getContainer + * @model type="org.eclipse.uml2.uml.Transition" opposite="container" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getTransitions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Transition} and appends it to the 'Transition' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Transition} to create. + * @return The new {@link org.eclipse.uml2.uml.Transition}. + * @see #getTransitions() + * @generated + */ + Transition createTransition(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Transition} and appends it to the 'Transition' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Transition}. + * @see #getTransitions() + * @generated + */ + Transition createTransition(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Transition} with the specified 'Name' from the 'Transition' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Transition} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Transition} with the specified 'Name', or null. + * @see #getTransitions() + * @generated + */ + Transition getTransition(String name); + + /** + * Returns the value of the 'State' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.State#getRegions Region}'. + * + * + * + * The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine. + * + * @return the value of the 'State' container reference. + * @see #setState(State) + * @see org.eclipse.uml2.uml.UMLPackage#getRegion_State() + * @see org.eclipse.uml2.uml.State#getRegions + * @model opposite="region" ordered="false" + * @generated + */ + State getState(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Region#getState State}' container reference. + * + * + * @param value the new value of the 'State' container reference. + * @see #getState() + * @generated + */ + void setState(State value); + + /** + * Returns the value of the 'Extended Region' reference. + * + * + * + * The region of which this region is an extension. + * + * @return the value of the 'Extended Region' reference. + * @see #setExtendedRegion(Region) + * @see org.eclipse.uml2.uml.UMLPackage#getRegion_ExtendedRegion() + * @model ordered="false" + * @generated + */ + Region getExtendedRegion(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Region#getExtendedRegion Extended Region}' reference. + * + * + * @param value the new value of the 'Extended Region' reference. + * @see #getExtendedRegion() + * @generated + */ + void setExtendedRegion(Region value); + + /** + * Returns the value of the 'State Machine' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StateMachine#getRegions Region}'. + * + * + * + * The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State. + * + * @return the value of the 'State Machine' container reference. + * @see #setStateMachine(StateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getRegion_StateMachine() + * @see org.eclipse.uml2.uml.StateMachine#getRegions + * @model opposite="region" ordered="false" + * @generated + */ + StateMachine getStateMachine(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Region#getStateMachine State Machine}' container reference. + * + * + * @param value the new value of the 'State Machine' container reference. + * @see #getStateMachine() + * @generated + */ + void setStateMachine(StateMachine value); + + /** + * + * + * + * A region can have at most one initial vertex + * self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> + * select(p : Pseudostate | p.kind = #initial)->size() <= 1 + * + * + * @model + * @generated + */ + boolean validateInitialVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A region can have at most one deep history vertex + * self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> + * select(p : Pseudostate | p.kind = #deepHistory)->size() <= 1 + * + * + * @model + * @generated + */ + boolean validateDeepHistoryVertex(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A region can have at most one shallow history vertex + * self.subvertex->select(v | v.oclIsKindOf(Pseudostate))-> + * select(p : Pseudostate | p.kind = #shallowHistory)->size() <= 1 + * + * + * @model + * @generated + */ + boolean validateShallowHistoryVertex(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa. + * (stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty()) + * + * @model + * @generated + */ + boolean validateOwned(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The redefinition context of a region is the nearest containing statemachine + * result = let sm = containingStateMachine() in + * if sm.context->isEmpty() or sm.general->notEmpty() then + * sm + * else + * sm.context + * endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + Classifier redefinitionContext(); + + /** + * + * + * + * The operation containingStateMachine() returns the sate machine in which this Region is defined + * result = if stateMachine->isEmpty() + * then + * state.containingStateMachine() + * else + * stateMachine + * endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + StateMachine containingStateMachine(); + +} // Region diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Relationship.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Relationship.java new file mode 100644 index 00000000..d2e48916 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Relationship.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Relationship.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Relationship'. + * + * + * + * A relationship references one or more related elements. Relationship is an abstract metaclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Relationship#getRelatedElements Related Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRelationship() + * @model abstract="true" + * @generated + */ +public interface Relationship + extends Element { + + /** + * Returns the value of the 'Related Element' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Element}. + * + * + * + * Specifies the elements related by the Relationship. + * + * @return the value of the 'Related Element' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getRelationship_RelatedElement() + * @model type="org.eclipse.uml2.uml.Element" required="true" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getRelatedElements(); + +} // Relationship diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveStructuralFeatureValueAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveStructuralFeatureValueAction.java new file mode 100644 index 00000000..9f3f94ce --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveStructuralFeatureValueAction.java @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RemoveStructuralFeatureValueAction.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Remove Structural Feature Value Action'. + * + * + * + * The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + * + * + * + * Structural features are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#isRemoveDuplicates Is Remove Duplicates}
  • + *
  • {@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#getRemoveAt Remove At}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRemoveStructuralFeatureValueAction() + * @model + * @generated + */ +public interface RemoveStructuralFeatureValueAction + extends WriteStructuralFeatureAction { + + /** + * Returns the value of the 'Is Remove Duplicates' attribute. + * The default value is "false". + * + * + * + * Specifies whether to remove duplicates of the value in nonunique structural features. + * + * @return the value of the 'Is Remove Duplicates' attribute. + * @see #setIsRemoveDuplicates(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getRemoveStructuralFeatureValueAction_IsRemoveDuplicates() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isRemoveDuplicates(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#isRemoveDuplicates Is Remove Duplicates}' attribute. + * + * + * @param value the new value of the 'Is Remove Duplicates' attribute. + * @see #isRemoveDuplicates() + * @generated + */ + void setIsRemoveDuplicates(boolean value); + + /** + * Returns the value of the 'Remove At' containment reference. + * + * + * + * Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + * + * @return the value of the 'Remove At' containment reference. + * @see #setRemoveAt(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getRemoveStructuralFeatureValueAction_RemoveAt() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + InputPin getRemoveAt(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#getRemoveAt Remove At}' containment reference. + * + * + * @param value the new value of the 'Remove At' containment reference. + * @see #getRemoveAt() + * @generated + */ + void setRemoveAt(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Remove At' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getRemoveAt() + * @generated + */ + InputPin createRemoveAt(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Remove At' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getRemoveAt() + * @generated + */ + InputPin createRemoveAt(); + + /** + * + * + * + * Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin. + * + * + * true + * + * @model + * @generated + */ + boolean validateNonUniqueRemoval(DiagnosticChain diagnostics, Map context); + +} // RemoveStructuralFeatureValueAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveVariableValueAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveVariableValueAction.java new file mode 100644 index 00000000..289591f2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/RemoveVariableValueAction.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RemoveVariableValueAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Remove Variable Value Action'. + * + * + * + * One value is removed from the set of possible variable values. Variables are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RemoveVariableValueAction#isRemoveDuplicates Is Remove Duplicates}
  • + *
  • {@link org.eclipse.uml2.uml.RemoveVariableValueAction#getRemoveAt Remove At}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getRemoveVariableValueAction() + * @model + * @generated + */ +public interface RemoveVariableValueAction + extends WriteVariableAction { + + /** + * Returns the value of the 'Is Remove Duplicates' attribute. + * The default value is "false". + * + * + * + * Specifies whether to remove duplicates of the value in nonunique variables. + * + * @return the value of the 'Is Remove Duplicates' attribute. + * @see #setIsRemoveDuplicates(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getRemoveVariableValueAction_IsRemoveDuplicates() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isRemoveDuplicates(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RemoveVariableValueAction#isRemoveDuplicates Is Remove Duplicates}' attribute. + * + * + * @param value the new value of the 'Is Remove Duplicates' attribute. + * @see #isRemoveDuplicates() + * @generated + */ + void setIsRemoveDuplicates(boolean value); + + /** + * Returns the value of the 'Remove At' containment reference. + * + * + * + * Specifies the position of an existing value to remove in ordered nonunique variables. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. + * + * @return the value of the 'Remove At' containment reference. + * @see #setRemoveAt(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getRemoveVariableValueAction_RemoveAt() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + InputPin getRemoveAt(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.RemoveVariableValueAction#getRemoveAt Remove At}' containment reference. + * + * + * @param value the new value of the 'Remove At' containment reference. + * @see #getRemoveAt() + * @generated + */ + void setRemoveAt(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Remove At' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getRemoveAt() + * @generated + */ + InputPin createRemoveAt(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Remove At' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getRemoveAt() + * @generated + */ + InputPin createRemoveAt(); + + /** + * + * + * + * Actions removing a value from ordered nonunique variables must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type UnlimitedNatural with multiplicity of 1..1, otherwise the action has no removeAt input pin. + * true + * + * @model + * @generated + */ + boolean validateUnlimitedNatural(DiagnosticChain diagnostics, Map context); + +} // RemoveVariableValueAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReplyAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReplyAction.java new file mode 100644 index 00000000..31c676a7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ReplyAction.java @@ -0,0 +1,190 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReplyAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Reply Action'. + * + * + * + * ReplyAction is an action that accepts a set of return values and a value containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReplyAction#getReplyToCall Reply To Call}
  • + *
  • {@link org.eclipse.uml2.uml.ReplyAction#getReturnInformation Return Information}
  • + *
  • {@link org.eclipse.uml2.uml.ReplyAction#getReplyValues Reply Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getReplyAction() + * @model + * @generated + */ +public interface ReplyAction + extends Action { + + /** + * Returns the value of the 'Reply To Call' reference. + * + * + * + * The trigger specifying the operation whose call is being replied to. + * + * @return the value of the 'Reply To Call' reference. + * @see #setReplyToCall(Trigger) + * @see org.eclipse.uml2.uml.UMLPackage#getReplyAction_ReplyToCall() + * @model required="true" ordered="false" + * @generated + */ + Trigger getReplyToCall(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReplyAction#getReplyToCall Reply To Call}' reference. + * + * + * @param value the new value of the 'Reply To Call' reference. + * @see #getReplyToCall() + * @generated + */ + void setReplyToCall(Trigger value); + + /** + * Returns the value of the 'Return Information' containment reference. + * + * + * + * A pin containing the return information value produced by an earlier AcceptCallAction. + * + * @return the value of the 'Return Information' containment reference. + * @see #setReturnInformation(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getReplyAction_ReturnInformation() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getReturnInformation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ReplyAction#getReturnInformation Return Information}' containment reference. + * + * + * @param value the new value of the 'Return Information' containment reference. + * @see #getReturnInformation() + * @generated + */ + void setReturnInformation(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Return Information' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getReturnInformation() + * @generated + */ + InputPin createReturnInformation(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Return Information' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getReturnInformation() + * @generated + */ + InputPin createReturnInformation(); + + /** + * Returns the value of the 'Reply Value' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.InputPin}. + * + * + * + * A list of pins containing the reply values of the operation. These values are returned to the caller. + * + * @return the value of the 'Reply Value' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getReplyAction_ReplyValue() + * @model type="org.eclipse.uml2.uml.InputPin" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getReplyValues(); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Reply Value' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getReplyValues() + * @generated + */ + InputPin createReplyValue(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and appends it to the 'Reply Value' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getReplyValues() + * @generated + */ + InputPin createReplyValue(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name' from the 'Reply Value' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.InputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.InputPin} with the specified 'Name', or null. + * @see #getReplyValues() + * @generated + */ + InputPin getReplyValue(String name); + + /** + * + * + * + * The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order. + * true + * + * @model + * @generated + */ + boolean validatePinsMatchParameter(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent) + * replyToCallEvent.oclIsKindOf(CallEvent) + * + * @model + * @generated + */ + boolean validateEventOnReplyToCallTrigger(DiagnosticChain diagnostics, + Map context); + +} // ReplyAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendObjectAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendObjectAction.java new file mode 100644 index 00000000..48448486 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendObjectAction.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendObjectAction.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Send Object Action'. + * + * + * + * SendObjectAction is an action that transmits an object to the target object, where it may invoke behavior such as the firing of state machine transitions or the execution of an activity. The value of the object is available to the execution of invoked behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SendObjectAction#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.SendObjectAction#getRequest Request}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSendObjectAction() + * @model + * @generated + */ +public interface SendObjectAction + extends InvocationAction { + + /** + * Returns the value of the 'Target' containment reference. + * + * + * + * The target object to which the object is sent. + * + * @return the value of the 'Target' containment reference. + * @see #setTarget(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getSendObjectAction_Target() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SendObjectAction#getTarget Target}' containment reference. + * + * + * @param value the new value of the 'Target' containment reference. + * @see #getTarget() + * @generated + */ + void setTarget(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(); + + /** + * Returns the value of the 'Request' containment reference. + * + * + * + * The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved. (Specialized from InvocationActon.argument) + * + * @return the value of the 'Request' containment reference. + * @see #setRequest(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getSendObjectAction_Request() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getRequest(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SendObjectAction#getRequest Request}' containment reference. + * + * + * @param value the new value of the 'Request' containment reference. + * @see #getRequest() + * @generated + */ + void setRequest(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Request' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getRequest() + * @generated + */ + InputPin createRequest(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Request' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getRequest() + * @generated + */ + InputPin createRequest(); + +} // SendObjectAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendOperationEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendOperationEvent.java new file mode 100644 index 00000000..7841c6ce --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendOperationEvent.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendOperationEvent.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Send Operation Event'. + * + * + * + * A SendOperationEvent models the invocation of an operation call. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SendOperationEvent#getOperation Operation}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSendOperationEvent() + * @model + * @generated + */ +public interface SendOperationEvent + extends MessageEvent { + + /** + * Returns the value of the 'Operation' reference. + * + * + * + * The operation associated with this event. + * + * @return the value of the 'Operation' reference. + * @see #setOperation(Operation) + * @see org.eclipse.uml2.uml.UMLPackage#getSendOperationEvent_Operation() + * @model required="true" ordered="false" + * @generated + */ + Operation getOperation(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SendOperationEvent#getOperation Operation}' reference. + * + * + * @param value the new value of the 'Operation' reference. + * @see #getOperation() + * @generated + */ + void setOperation(Operation value); + +} // SendOperationEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalAction.java new file mode 100644 index 00000000..67f570c0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalAction.java @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendSignalAction.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Send Signal Action'. + * + * + * + * SendSignalAction is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use SendObjectAction. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SendSignalAction#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.SendSignalAction#getSignal Signal}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSendSignalAction() + * @model + * @generated + */ +public interface SendSignalAction + extends InvocationAction { + + /** + * Returns the value of the 'Target' containment reference. + * + * + * + * The target object to which the signal is sent. + * + * @return the value of the 'Target' containment reference. + * @see #setTarget(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getSendSignalAction_Target() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SendSignalAction#getTarget Target}' containment reference. + * + * + * @param value the new value of the 'Target' containment reference. + * @see #getTarget() + * @generated + */ + void setTarget(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Target' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getTarget() + * @generated + */ + InputPin createTarget(); + + /** + * Returns the value of the 'Signal' reference. + * + * + * + * The type of signal transmitted to the target object. + * + * @return the value of the 'Signal' reference. + * @see #setSignal(Signal) + * @see org.eclipse.uml2.uml.UMLPackage#getSendSignalAction_Signal() + * @model required="true" ordered="false" + * @generated + */ + Signal getSignal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SendSignalAction#getSignal Signal}' reference. + * + * + * @param value the new value of the 'Signal' reference. + * @see #getSignal() + * @generated + */ + void setSignal(Signal value); + + /** + * + * + * + * The number and order of argument pins must be the same as the number and order of attributes in the signal. + * true + * + * @model + * @generated + */ + boolean validateNumberOrder(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + * true + * + * @model + * @generated + */ + boolean validateTypeOrderingMultiplicity(DiagnosticChain diagnostics, + Map context); + +} // SendSignalAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalEvent.java new file mode 100644 index 00000000..e9891574 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SendSignalEvent.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendSignalEvent.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Send Signal Event'. + * + * + * + * A SendSignalEvent models the sending of a signal. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SendSignalEvent#getSignal Signal}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSendSignalEvent() + * @model + * @generated + */ +public interface SendSignalEvent + extends MessageEvent { + + /** + * Returns the value of the 'Signal' reference. + * + * + * + * The signal associated with this event. + * + * @return the value of the 'Signal' reference. + * @see #setSignal(Signal) + * @see org.eclipse.uml2.uml.UMLPackage#getSendSignalEvent_Signal() + * @model required="true" ordered="false" + * @generated + */ + Signal getSignal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SendSignalEvent#getSignal Signal}' reference. + * + * + * @param value the new value of the 'Signal' reference. + * @see #getSignal() + * @generated + */ + void setSignal(Signal value); + +} // SendSignalEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SequenceNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SequenceNode.java new file mode 100644 index 00000000..49927cee --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SequenceNode.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SequenceNode.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Sequence Node'. + * + * + * + * A sequence node is a structured activity node that executes its actions in order. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SequenceNode#getExecutableNodes Executable Node}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSequenceNode() + * @model + * @generated + */ +public interface SequenceNode + extends StructuredActivityNode { + + /** + * Returns the value of the 'Executable Node' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExecutableNode}. + * + * + * + * An ordered set of executable nodes. + * + * @return the value of the 'Executable Node' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getSequenceNode_ExecutableNode() + * @model type="org.eclipse.uml2.uml.ExecutableNode" containment="true" resolveProxies="false" + * @generated + */ + List getExecutableNodes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ExecutableNode} and appends it to the 'Executable Node' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ExecutableNode} to create. + * @return The new {@link org.eclipse.uml2.uml.ExecutableNode}. + * @see #getExecutableNodes() + * @generated + */ + ExecutableNode createExecutableNode(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name' from the 'Executable Node' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExecutableNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExecutableNode} with the specified 'Name', or null. + * @see #getExecutableNodes() + * @generated + */ + ExecutableNode getExecutableNode(String name); + +} // SequenceNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java new file mode 100644 index 00000000..a8174301 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Signal.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Signal.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Signal'. + * + * + * + * A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Signal#getOwnedAttributes Owned Attribute}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSignal() + * @model + * @generated + */ +public interface Signal + extends Classifier { + + /** + * Returns the value of the 'Owned Attribute' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * The attributes owned by the signal. + * + * @return the value of the 'Owned Attribute' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getSignal_OwnedAttribute() + * @model type="org.eclipse.uml2.uml.Property" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedAttributes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Owned Attribute' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getOwnedAttributes() + * @generated + */ + Property getOwnedAttribute(String name); + +} // Signal diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SignalEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SignalEvent.java new file mode 100644 index 00000000..92f57e52 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/SignalEvent.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SignalEvent.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Signal Event'. + * + * + * + * A signal event represents the receipt of an asynchronous signal. A signal event may cause a response, such as a state machine transition as specified in the classifier behavior of the classifier that specified the receiver object, if the signal referenced by the send request is mentioned in a reception owned or inherited by the classifier that specified the receiver object. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SignalEvent#getSignal Signal}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSignalEvent() + * @model + * @generated + */ +public interface SignalEvent + extends MessageEvent { + + /** + * Returns the value of the 'Signal' reference. + * + * + * + * The specific signal that is associated with this event. + * + * @return the value of the 'Signal' reference. + * @see #setSignal(Signal) + * @see org.eclipse.uml2.uml.UMLPackage#getSignalEvent_Signal() + * @model required="true" ordered="false" + * @generated + */ + Signal getSignal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.SignalEvent#getSignal Signal}' reference. + * + * + * @param value the new value of the 'Signal' reference. + * @see #getSignal() + * @generated + */ + void setSignal(Signal value); + +} // SignalEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Slot.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Slot.java new file mode 100644 index 00000000..495a060b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Slot.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Slot.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Slot'. + * + * + * + * A slot is owned by an instance specification. It specifies the value or values for its defining feature, which must be a structural feature of a classifier of the instance specification owning the slot. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Slot#getOwningInstance Owning Instance}
  • + *
  • {@link org.eclipse.uml2.uml.Slot#getDefiningFeature Defining Feature}
  • + *
  • {@link org.eclipse.uml2.uml.Slot#getValues Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSlot() + * @model + * @generated + */ +public interface Slot + extends Element { + + /** + * Returns the value of the 'Owning Instance' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.InstanceSpecification#getSlots Slot}'. + * + * + * + * The instance specification that owns this slot. + * + * @return the value of the 'Owning Instance' container reference. + * @see #setOwningInstance(InstanceSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getSlot_OwningInstance() + * @see org.eclipse.uml2.uml.InstanceSpecification#getSlots + * @model opposite="slot" required="true" ordered="false" + * @generated + */ + InstanceSpecification getOwningInstance(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Slot#getOwningInstance Owning Instance}' container reference. + * + * + * @param value the new value of the 'Owning Instance' container reference. + * @see #getOwningInstance() + * @generated + */ + void setOwningInstance(InstanceSpecification value); + + /** + * Returns the value of the 'Defining Feature' reference. + * + * + * + * The structural feature that specifies the values that may be held by the slot. + * + * @return the value of the 'Defining Feature' reference. + * @see #setDefiningFeature(StructuralFeature) + * @see org.eclipse.uml2.uml.UMLPackage#getSlot_DefiningFeature() + * @model required="true" ordered="false" + * @generated + */ + StructuralFeature getDefiningFeature(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Slot#getDefiningFeature Defining Feature}' reference. + * + * + * @param value the new value of the 'Defining Feature' reference. + * @see #getDefiningFeature() + * @generated + */ + void setDefiningFeature(StructuralFeature value); + + /** + * Returns the value of the 'Value' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ValueSpecification}. + * + * + * + * The value or values corresponding to the defining feature for the owning instance specification. + * + * @return the value of the 'Value' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getSlot_Value() + * @model type="org.eclipse.uml2.uml.ValueSpecification" containment="true" resolveProxies="false" + * @generated + */ + List getValues(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and appends it to the 'Value' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getValues() + * @generated + */ + ValueSpecification createValue(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ValueSpecification} with the specified 'Name' from the 'Value' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ValueSpecification} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ValueSpecification} with the specified 'Name', or null. + * @see #getValues() + * @generated + */ + ValueSpecification getValue(String name); + +} // Slot diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StartClassifierBehaviorAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StartClassifierBehaviorAction.java new file mode 100644 index 00000000..b8b6755f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StartClassifierBehaviorAction.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StartClassifierBehaviorAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Start Classifier Behavior Action'. + * + * + * + * StartClassifierBehaviorAction is an action that starts the classifier behavior of the input. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#getObject Object}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStartClassifierBehaviorAction() + * @model + * @generated + */ +public interface StartClassifierBehaviorAction + extends Action { + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * Holds the object on which to start the owned behavior. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getStartClassifierBehaviorAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * + * + * + * The multiplicity of the input pin is 1..1 + * true + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If the input pin has a type, then the type must have a classifier behavior. + * true + * + * @model + * @generated + */ + boolean validateTypeHasClassifier(DiagnosticChain diagnostics, Map context); + +} // StartClassifierBehaviorAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/State.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/State.java new file mode 100644 index 00000000..5c2abde9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/State.java @@ -0,0 +1,652 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: State.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'State'. + * + * + * + * A state models a situation during which some (usually implicit) invariant condition holds. The invariant may represent a static situation such as an object waiting for some external event to occur. However, it can also model dynamic conditions such as the process of performing some behavior (i.e., the model element under consideration enters the state when the behavior commences and leaves it as soon as the behavior is completed). The following kinds of states are distinguished: + * + * o Simple state, + * + * o composite state, and + * + * o submachine state. + * + * A composite state is either a simple composite state (with just one region) or an orthogonal state (with more than one region). + * + * + * + * Simple state + * + * A simple state is a state that does not have substates, i.e. it has no regions and it has no submachine state machine. + * + * + * + * Composite state + * + * A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions. A given state may only be decomposed in one of these two ways. + * + * Any state enclosed within a region of a composite state is called a substate of that composite state. It is called a direct substate when it is not contained by any other state; otherwise it is referred to as a indirect substate. + * + * Each region of a composite state may have an initial pseudostate and a final state. A transition to the enclosing state represents a transition to the initial pseudostate in each region. A newly-created object takes it's topmost default transitions, originating from the topmost initial pseudostates of each region. + * + * + * + * A transition to a final state represents the completion of behavior in the enclosing region. Completion of behavior in all orthogonal regions represents completion of behavior by the enclosing state and triggers a completion event on the enclosing state. Completion of the topmost regions of an object corresponds to its termination. + * + * + * + * An entry pseudostate is used to join an external transition terminating on that entry point to an internal transition emanating from that entry point. An exit pseudostate is used to join an internal transition terminating on that exit point to an external transition emanating from that exit point. The main purpose of such entry and exit points is to execute the state entry and exit actions respectively in between the actions that are associated with the joined transitions. + * + * + * + * Semantic variation point (default entry rule) + * + * If a transition terminates on an enclosing state and the enclosed regions do not have an initial pseudostate, the interpretation of this situation is a semantic variation point. In some interpretations, this is considered an ill-formed model. That is, in those cases the initial pseudostate is mandatory. + * + * An alternative interpretation allows this situation and it means that, when such a transition is taken, the state machine stays in the composite state, without entering any of the regions or their substates. + * + * + * + * Submachine state + * + * A submachine state specifies the insertion of the specification of a submachine state machine. The state machine that contains the submachine state is called the containing state machine. The same state machine may be a submachine more than once in the context of a single containing state machine. + * + * + * + * A submachine state is semantically equivalent to a composite state. The regions of the submachine state machine are the regions of the composite state. The entry, exit and behavior actions, and internal transitions, are defined as part of the state. Submachine state is a decomposition mechanism that allows factoring of common behaviors and their reuse. + * + * Transitions in the containing state machine can have entry/exit points of the inserted state machine as targets/sources. + * + * + * The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.State#isComposite Is Composite}
  • + *
  • {@link org.eclipse.uml2.uml.State#isOrthogonal Is Orthogonal}
  • + *
  • {@link org.eclipse.uml2.uml.State#isSimple Is Simple}
  • + *
  • {@link org.eclipse.uml2.uml.State#isSubmachineState Is Submachine State}
  • + *
  • {@link org.eclipse.uml2.uml.State#getSubmachine Submachine}
  • + *
  • {@link org.eclipse.uml2.uml.State#getConnections Connection}
  • + *
  • {@link org.eclipse.uml2.uml.State#getConnectionPoints Connection Point}
  • + *
  • {@link org.eclipse.uml2.uml.State#getRedefinedState Redefined State}
  • + *
  • {@link org.eclipse.uml2.uml.State#getStateInvariant State Invariant}
  • + *
  • {@link org.eclipse.uml2.uml.State#getEntry Entry}
  • + *
  • {@link org.eclipse.uml2.uml.State#getExit Exit}
  • + *
  • {@link org.eclipse.uml2.uml.State#getDoActivity Do Activity}
  • + *
  • {@link org.eclipse.uml2.uml.State#getDeferrableTriggers Deferrable Trigger}
  • + *
  • {@link org.eclipse.uml2.uml.State#getRegions Region}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getState() + * @model + * @generated + */ +public interface State + extends Namespace, RedefinableElement, Vertex { + + /** + * Returns the value of the 'Is Composite' attribute. + * + * + * + * A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region. + * + * @return the value of the 'Is Composite' attribute. + * @see org.eclipse.uml2.uml.UMLPackage#getState_IsComposite() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isComposite(); + + /** + * Returns the value of the 'Is Orthogonal' attribute. + * + * + * + * A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions. + * + * @return the value of the 'Is Orthogonal' attribute. + * @see org.eclipse.uml2.uml.UMLPackage#getState_IsOrthogonal() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isOrthogonal(); + + /** + * Returns the value of the 'Is Simple' attribute. + * + * + * + * A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine. + * + * @return the value of the 'Is Simple' attribute. + * @see org.eclipse.uml2.uml.UMLPackage#getState_IsSimple() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isSimple(); + + /** + * Returns the value of the 'Is Submachine State' attribute. + * + * + * + * A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine). + * + * @return the value of the 'Is Submachine State' attribute. + * @see org.eclipse.uml2.uml.UMLPackage#getState_IsSubmachineState() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isSubmachineState(); + + /** + * Returns the value of the 'Submachine' reference. + * + * + * + * The state machine that is to be inserted in place of the (submachine) state. + * + * @return the value of the 'Submachine' reference. + * @see #setSubmachine(StateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getState_Submachine() + * @model ordered="false" + * @generated + */ + StateMachine getSubmachine(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.State#getSubmachine Submachine}' reference. + * + * + * @param value the new value of the 'Submachine' reference. + * @see #getSubmachine() + * @generated + */ + void setSubmachine(StateMachine value); + + /** + * Returns the value of the 'Connection' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ConnectionPointReference}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ConnectionPointReference#getState State}'. + * + * + * + * The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate. + * + * @return the value of the 'Connection' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getState_Connection() + * @see org.eclipse.uml2.uml.ConnectionPointReference#getState + * @model type="org.eclipse.uml2.uml.ConnectionPointReference" opposite="state" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getConnections(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ConnectionPointReference} and appends it to the 'Connection' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ConnectionPointReference}. + * @see #getConnections() + * @generated + */ + ConnectionPointReference createConnection(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ConnectionPointReference} with the specified 'Name' from the 'Connection' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ConnectionPointReference} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ConnectionPointReference} with the specified 'Name', or null. + * @see #getConnections() + * @generated + */ + ConnectionPointReference getConnection(String name); + + /** + * Returns the value of the 'Connection Point' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Pseudostate}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Pseudostate#getState State}'. + * + * + * + * The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states. + * + * @return the value of the 'Connection Point' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getState_ConnectionPoint() + * @see org.eclipse.uml2.uml.Pseudostate#getState + * @model type="org.eclipse.uml2.uml.Pseudostate" opposite="state" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getConnectionPoints(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Pseudostate} and appends it to the 'Connection Point' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Pseudostate}. + * @see #getConnectionPoints() + * @generated + */ + Pseudostate createConnectionPoint(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name' from the 'Connection Point' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Pseudostate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name', or null. + * @see #getConnectionPoints() + * @generated + */ + Pseudostate getConnectionPoint(String name); + + /** + * Returns the value of the 'Redefined State' reference. + * + * + * + * The state of which this state is a redefinition. + * + * @return the value of the 'Redefined State' reference. + * @see #setRedefinedState(State) + * @see org.eclipse.uml2.uml.UMLPackage#getState_RedefinedState() + * @model ordered="false" + * @generated + */ + State getRedefinedState(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.State#getRedefinedState Redefined State}' reference. + * + * + * @param value the new value of the 'Redefined State' reference. + * @see #getRedefinedState() + * @generated + */ + void setRedefinedState(State value); + + /** + * Returns the value of the 'State Invariant' containment reference. + * + * + * + * Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions. + * + * + * + * @return the value of the 'State Invariant' containment reference. + * @see #setStateInvariant(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getState_StateInvariant() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Constraint getStateInvariant(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.State#getStateInvariant State Invariant}' containment reference. + * + * + * @param value the new value of the 'State Invariant' containment reference. + * @see #getStateInvariant() + * @generated + */ + void setStateInvariant(Constraint value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'State Invariant' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getStateInvariant() + * @generated + */ + Constraint createStateInvariant(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'State Invariant' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getStateInvariant() + * @generated + */ + Constraint createStateInvariant(); + + /** + * Returns the value of the 'Entry' containment reference. + * + * + * + * An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state. + * + * + * + * @return the value of the 'Entry' containment reference. + * @see #setEntry(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getState_Entry() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Behavior getEntry(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.State#getEntry Entry}' containment reference. + * + * + * @param value the new value of the 'Entry' containment reference. + * @see #getEntry() + * @generated + */ + void setEntry(Behavior value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Entry' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Behavior} to create. + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getEntry() + * @generated + */ + Behavior createEntry(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Entry' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getEntry() + * @generated + */ + Behavior createEntry(); + + /** + * Returns the value of the 'Exit' containment reference. + * + * + * + * An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution. + * + * @return the value of the 'Exit' containment reference. + * @see #setExit(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getState_Exit() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Behavior getExit(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.State#getExit Exit}' containment reference. + * + * + * @param value the new value of the 'Exit' containment reference. + * @see #getExit() + * @generated + */ + void setExit(Behavior value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Exit' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Behavior} to create. + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getExit() + * @generated + */ + Behavior createExit(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Exit' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getExit() + * @generated + */ + Behavior createExit(); + + /** + * Returns the value of the 'Do Activity' containment reference. + * + * + * + * An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first. + * + * @return the value of the 'Do Activity' containment reference. + * @see #setDoActivity(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getState_DoActivity() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Behavior getDoActivity(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.State#getDoActivity Do Activity}' containment reference. + * + * + * @param value the new value of the 'Do Activity' containment reference. + * @see #getDoActivity() + * @generated + */ + void setDoActivity(Behavior value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Do Activity' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Behavior} to create. + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getDoActivity() + * @generated + */ + Behavior createDoActivity(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Do Activity' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getDoActivity() + * @generated + */ + Behavior createDoActivity(); + + /** + * Returns the value of the 'Deferrable Trigger' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Trigger}. + * + * + * + * A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred. + * + * + * + * @return the value of the 'Deferrable Trigger' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getState_DeferrableTrigger() + * @model type="org.eclipse.uml2.uml.Trigger" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getDeferrableTriggers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Trigger} and appends it to the 'Deferrable Trigger' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Trigger}. + * @see #getDeferrableTriggers() + * @generated + */ + Trigger createDeferrableTrigger(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name' from the 'Deferrable Trigger' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Trigger} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name', or null. + * @see #getDeferrableTriggers() + * @generated + */ + Trigger getDeferrableTrigger(String name); + + /** + * Returns the value of the 'Region' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Region}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Region#getState State}'. + * + * + * + * The regions owned directly by the state. + * + * @return the value of the 'Region' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getState_Region() + * @see org.eclipse.uml2.uml.Region#getState + * @model type="org.eclipse.uml2.uml.Region" opposite="state" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getRegions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Region} and appends it to the 'Region' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Region}. + * @see #getRegions() + * @generated + */ + Region createRegion(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Region} with the specified 'Name' from the 'Region' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Region} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Region} with the specified 'Name', or null. + * @see #getRegions() + * @generated + */ + Region getRegion(String name); + + /** + * + * + * + * There have to be at least two regions in an orthogonal composite state. + * (self.isOrthogonal) implies + * (self.region->size >= 2) + * + * + * @model + * @generated + */ + boolean validateRegions(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only submachine states can have connection point references. + * isSubmachineState implies connection->notEmpty ( ) + * + * @model + * @generated + */ + boolean validateSubmachineStates(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine. + * true + * + * @model + * @generated + */ + boolean validateDestinationsOrSourcesOfTransitions( + DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A state is not allowed to have both a submachine and regions. + * isComposite implies not isSubmachineState + * + * @model + * @generated + */ + boolean validateSubmachineOrRegions(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only composite states can have entry or exit pseudostates defined. + * connectionPoint->notEmpty() implies isComoposite + * + * @model + * @generated + */ + boolean validateCompositeStates(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Only entry or exit pseudostates can serve as connection points. + * connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit) + * + * @model + * @generated + */ + boolean validateEntryOrExit(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The redefinition context of a state is the nearest containing statemachine. + * result = let sm = containingStateMachine() in + * if sm.context->isEmpty() or sm.general->notEmpty() then + * sm + * else + * sm.context + * endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + Classifier redefinitionContext(); + +} // State diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateInvariant.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateInvariant.java new file mode 100644 index 00000000..bd1416b7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateInvariant.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateInvariant.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'State Invariant'. + * + * + * + * A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on. A StateInvariant is an InteractionFragment and it is placed on a Lifeline. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StateInvariant#getInvariant Invariant}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStateInvariant() + * @model + * @generated + */ +public interface StateInvariant + extends InteractionFragment { + + /** + * Returns the value of the 'Invariant' containment reference. + * + * + * + * A Constraint that should hold at runtime for this StateInvariant + * + * @return the value of the 'Invariant' containment reference. + * @see #setInvariant(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getStateInvariant_Invariant() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + Constraint getInvariant(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StateInvariant#getInvariant Invariant}' containment reference. + * + * + * @param value the new value of the 'Invariant' containment reference. + * @see #getInvariant() + * @generated + */ + void setInvariant(Constraint value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Invariant' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getInvariant() + * @generated + */ + Constraint createInvariant(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Invariant' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getInvariant() + * @generated + */ + Constraint createInvariant(); + +} // StateInvariant diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateMachine.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateMachine.java new file mode 100644 index 00000000..ea576dc1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StateMachine.java @@ -0,0 +1,240 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateMachine.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'State Machine'. + * + * + * + * A state machine owns one or more regions, which in turn own vertices and transitions. + * + * The behaviored classifier context owning a state machine defines which signal and call triggers are defined for the state machine, and which attributes and operations are available in activities of the state machine. Signal triggers and call triggers for the state machine are defined according to the receptions and operations of this classifier. + * + * + * + * As a kind of behavior, a state machine may have an associated behavioral feature (specification) and be the method of this behavioral feature. In this case the state machine specifies the behavior of this behavioral feature. The parameters of the state machine in this case match the parameters of the behavioral feature and provide the means for accessing (within the state machine) the behavioral feature parameters. + * + * + * + * A state machine without a context classifier may use triggers that are independent of receptions or operations of a classifier, i.e. either just signal triggers or call triggers based upon operation template parameters of the (parameterized) statemachine. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StateMachine#getRegions Region}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#getConnectionPoints Connection Point}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#getExtendedStateMachine Extended State Machine}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStateMachine() + * @model + * @generated + */ +public interface StateMachine + extends Behavior { + + /** + * Returns the value of the 'Region' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Region}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Region#getStateMachine State Machine}'. + * + * + * + * The regions owned directly by the state machine. + * + * @return the value of the 'Region' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStateMachine_Region() + * @see org.eclipse.uml2.uml.Region#getStateMachine + * @model type="org.eclipse.uml2.uml.Region" opposite="stateMachine" containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + List getRegions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Region} and appends it to the 'Region' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Region}. + * @see #getRegions() + * @generated + */ + Region createRegion(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Region} with the specified 'Name' from the 'Region' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Region} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Region} with the specified 'Name', or null. + * @see #getRegions() + * @generated + */ + Region getRegion(String name); + + /** + * Returns the value of the 'Connection Point' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Pseudostate}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Pseudostate#getStateMachine State Machine}'. + * + * + * + * The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state. + * + * @return the value of the 'Connection Point' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStateMachine_ConnectionPoint() + * @see org.eclipse.uml2.uml.Pseudostate#getStateMachine + * @model type="org.eclipse.uml2.uml.Pseudostate" opposite="stateMachine" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getConnectionPoints(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Pseudostate} and appends it to the 'Connection Point' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Pseudostate}. + * @see #getConnectionPoints() + * @generated + */ + Pseudostate createConnectionPoint(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name' from the 'Connection Point' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Pseudostate} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Pseudostate} with the specified 'Name', or null. + * @see #getConnectionPoints() + * @generated + */ + Pseudostate getConnectionPoint(String name); + + /** + * Returns the value of the 'Extended State Machine' reference. + * + * + * + * The state machines of which this is an extension. + * + * @return the value of the 'Extended State Machine' reference. + * @see #setExtendedStateMachine(StateMachine) + * @see org.eclipse.uml2.uml.UMLPackage#getStateMachine_ExtendedStateMachine() + * @model ordered="false" + * @generated + */ + StateMachine getExtendedStateMachine(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StateMachine#getExtendedStateMachine Extended State Machine}' reference. + * + * + * @param value the new value of the 'Extended State Machine' reference. + * @see #getExtendedStateMachine() + * @generated + */ + void setExtendedStateMachine(StateMachine value); + + /** + * + * + * + * The classifier context of a state machine cannot be an interface. + * context->notEmpty() implies not context.oclIsKindOf(Interface) + * + * @model + * @generated + */ + boolean validateClassifierContext(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature. + * specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context)) + * + * @model + * @generated + */ + boolean validateContextClassifier(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The connection points of a state machine are pseudostates of kind entry point or exit point. + * conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint) + * + * @model + * @generated + */ + boolean validateConnectionPoints(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A state machine as the method for a behavioral feature cannot have entry/exit connection points. + * specification->notEmpty() implies connectionPoint->isEmpty() + * + * @model + * @generated + */ + boolean validateMethod(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy. + * true + * + * @model required="true" ordered="false" s1Required="true" s1Ordered="false" s2Required="true" s2Ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + Namespace LCA(State s1, State s2); + + /** + * + * + * + * The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean + * + * + * result = if (s2 = s1) then + * true + * else if (s1.container->isEmpty) then + * true + * else if (s2.container->isEmpty) then + * false + * else (ancestor (s1, s2.container)) + * + * @model required="true" ordered="false" s1Required="true" s1Ordered="false" s2Required="true" s2Ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean ancestor(State s1, State s2); + +} // StateMachine diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Stereotype.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Stereotype.java new file mode 100644 index 00000000..0402ffab --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Stereotype.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Stereotype.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Stereotype'. + * + * + * + * Stereotype is a kind of Class that extends Classes through Extensions. Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. Also, stereotype names should not clash with keyword names for the extended model element. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Stereotype#getIcons Icon}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStereotype() + * @model + * @generated + */ +public interface Stereotype + extends org.eclipse.uml2.uml.Class { + + /** + * Returns the value of the 'Icon' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Image}. + * + * + * + * Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements. + * + * @return the value of the 'Icon' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStereotype_Icon() + * @model type="org.eclipse.uml2.uml.Image" ordered="false" + * @generated + */ + List getIcons(); + + /** + * + * + * + * Stereotype names should not clash with keyword names for the extended model element. + * true + * + * @model + * @generated + */ + boolean validateNameNotClash(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A Stereotype may only generalize or specialize another Stereotype. + * generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) + * + * @model + * @generated + */ + boolean validateGeneralize(DiagnosticChain diagnostics, Map context); + +} // Stereotype diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StringExpression.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StringExpression.java new file mode 100644 index 00000000..ef1bf09f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StringExpression.java @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StringExpression.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'String Expression'. + * + * + * + * StringExpression is a specialization of the general Expression metaclass which adds the ability to contain sub-expressions and whose operands are exclusively LiteralStrings. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StringExpression#getSubExpressions Sub Expression}
  • + *
  • {@link org.eclipse.uml2.uml.StringExpression#getOwningExpression Owning Expression}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStringExpression() + * @model + * @generated + */ +public interface StringExpression + extends Expression, TemplateableElement { + + /** + * Returns the value of the 'Sub Expression' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.StringExpression}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StringExpression#getOwningExpression Owning Expression}'. + * + * + * + * The StringExpressions that constitute this StringExpression. + * + * @return the value of the 'Sub Expression' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStringExpression_SubExpression() + * @see org.eclipse.uml2.uml.StringExpression#getOwningExpression + * @model type="org.eclipse.uml2.uml.StringExpression" opposite="owningExpression" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getSubExpressions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.StringExpression} and appends it to the 'Sub Expression' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.StringExpression}. + * @see #getSubExpressions() + * @generated + */ + StringExpression createSubExpression(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.StringExpression} with the specified 'Name' from the 'Sub Expression' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.StringExpression} to retrieve. + * @return The {@link org.eclipse.uml2.uml.StringExpression} with the specified 'Name', or null. + * @see #getSubExpressions() + * @generated + */ + StringExpression getSubExpression(String name); + + /** + * Returns the value of the 'Owning Expression' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StringExpression#getSubExpressions Sub Expression}'. + * + * + * + * The string expression of which this expression is a substring. + * + * @return the value of the 'Owning Expression' container reference. + * @see #setOwningExpression(StringExpression) + * @see org.eclipse.uml2.uml.UMLPackage#getStringExpression_OwningExpression() + * @see org.eclipse.uml2.uml.StringExpression#getSubExpressions + * @model opposite="subExpression" ordered="false" + * @generated + */ + StringExpression getOwningExpression(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StringExpression#getOwningExpression Owning Expression}' container reference. + * + * + * @param value the new value of the 'Owning Expression' container reference. + * @see #getOwningExpression() + * @generated + */ + void setOwningExpression(StringExpression value); + + /** + * + * + * + * All the operands of a StringExpression must be LiteralStrings + * operand->forAll (op | op.oclIsKindOf (LiteralString)) + * + * @model + * @generated + */ + boolean validateOperands(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to + * define a collating sequence between operands and subexpressions). + * + * if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty() + * + * @model + * @generated + */ + boolean validateSubexpressions(DiagnosticChain diagnostics, Map context); + +} // StringExpression diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java new file mode 100644 index 00000000..cb7093cf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeature.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuralFeature.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Structural Feature'. + * + * + * + * A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. Structural feature is an abstract metaclass. + * A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier. Structural feature is an abstract metaclass. + * By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature. + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuralFeature#isReadOnly Is Read Only}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStructuralFeature() + * @model abstract="true" + * @generated + */ +public interface StructuralFeature + extends Feature, TypedElement, MultiplicityElement { + + /** + * Returns the value of the 'Is Read Only' attribute. + * The default value is "false". + * + * + * + * States whether the feature's value may be modified by a client. + * + * @return the value of the 'Is Read Only' attribute. + * @see #setIsReadOnly(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getStructuralFeature_IsReadOnly() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isReadOnly(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StructuralFeature#isReadOnly Is Read Only}' attribute. + * + * + * @param value the new value of the 'Is Read Only' attribute. + * @see #isReadOnly() + * @generated + */ + void setIsReadOnly(boolean value); + +} // StructuralFeature diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeatureAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeatureAction.java new file mode 100644 index 00000000..2999b7e7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuralFeatureAction.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuralFeatureAction.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Structural Feature Action'. + * + * + * + * This abstract action class statically specifies the structural feature being accessed. The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#getStructuralFeature Structural Feature}
  • + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#getObject Object}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStructuralFeatureAction() + * @model abstract="true" + * @generated + */ +public interface StructuralFeatureAction + extends Action { + + /** + * Returns the value of the 'Structural Feature' reference. + * + * + * + * Structural feature to be read. + * + * @return the value of the 'Structural Feature' reference. + * @see #setStructuralFeature(StructuralFeature) + * @see org.eclipse.uml2.uml.UMLPackage#getStructuralFeatureAction_StructuralFeature() + * @model required="true" ordered="false" + * @generated + */ + StructuralFeature getStructuralFeature(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StructuralFeatureAction#getStructuralFeature Structural Feature}' reference. + * + * + * @param value the new value of the 'Structural Feature' reference. + * @see #getStructuralFeature() + * @generated + */ + void setStructuralFeature(StructuralFeature value); + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * Gives the input pin from which the object whose structural feature is to be read or written is obtained. + * + * + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getStructuralFeatureAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StructuralFeatureAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * + * + * + * The structural feature must not be static. + * self.structuralFeature.isStatic = #false + * + * @model + * @generated + */ + boolean validateNotStatic(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the object input pin is the same as the classifier of the object passed on this pin. + * true + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the input pin must be 1..1. + * self.object.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Visibility of structural feature must allow access to the object performing the action. + * let host : Classifier = self.context in + * self.structuralFeature.visibility = #public + * or host = self.structuralFeature.featuringClassifier.type + * or (self.structuralFeature.visibility = #protected and host.allSupertypes + * ->includes(self.structuralFeature.featuringClassifier.type))) + * + * + * @model + * @generated + */ + boolean validateVisibility(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A structural feature has exactly one featuringClassifier. + * self.structuralFeature.featuringClassifier->size() = 1 + * + * @model + * @generated + */ + boolean validateOneFeaturingClassifier(DiagnosticChain diagnostics, + Map context); + +} // StructuralFeatureAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java new file mode 100644 index 00000000..63dc2e58 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredActivityNode.java @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuredActivityNode.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Structured Activity Node'. + * + * + * + * A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins when merged with CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution. + * + * + * + * Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of "atomicity", which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results. + * + * + * A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins in CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution. + * + * + * + * Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node. + * + * + * + * Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of "atomicity", which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuredActivityNode#getVariables Variable}
  • + *
  • {@link org.eclipse.uml2.uml.StructuredActivityNode#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.StructuredActivityNode#isMustIsolate Must Isolate}
  • + *
  • {@link org.eclipse.uml2.uml.StructuredActivityNode#getEdges Edge}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredActivityNode() + * @model + * @generated + */ +public interface StructuredActivityNode + extends Action, Namespace, ActivityGroup { + + /** + * Returns the value of the 'Variable' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Variable}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Variable#getScope Scope}'. + * + * + * + * A variable defined in the scope of the structured activity node. It has no value and may not be accessed + * + * @return the value of the 'Variable' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredActivityNode_Variable() + * @see org.eclipse.uml2.uml.Variable#getScope + * @model type="org.eclipse.uml2.uml.Variable" opposite="scope" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getVariables(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Variable} and appends it to the 'Variable' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Variable}. + * @see #getVariables() + * @generated + */ + Variable createVariable(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Variable} with the specified 'Name' from the 'Variable' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Variable} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Variable} with the specified 'Name', or null. + * @see #getVariables() + * @generated + */ + Variable getVariable(String name); + + /** + * Returns the value of the 'Node' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityNode#getInStructuredNode In Structured Node}'. + * + * + * + * Nodes immediately contained in the group. + * + * @return the value of the 'Node' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredActivityNode_Node() + * @see org.eclipse.uml2.uml.ActivityNode#getInStructuredNode + * @model type="org.eclipse.uml2.uml.ActivityNode" opposite="inStructuredNode" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getNodes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityNode} and appends it to the 'Node' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityNode} to create. + * @return The new {@link org.eclipse.uml2.uml.ActivityNode}. + * @see #getNodes() + * @generated + */ + ActivityNode createNode(EClass eClass); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name' from the 'Node' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityNode} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityNode} with the specified 'Name', or null. + * @see #getNodes() + * @generated + */ + ActivityNode getNode(String name); + + /** + * Returns the value of the 'Must Isolate' attribute. + * + * + * + * If true, then the actions in the node execute in isolation from actions outside the node. + * + * @return the value of the 'Must Isolate' attribute. + * @see #setMustIsolate(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredActivityNode_MustIsolate() + * @model required="true" ordered="false" + * @generated + */ + boolean isMustIsolate(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.StructuredActivityNode#isMustIsolate Must Isolate}' attribute. + * + * + * @param value the new value of the 'Must Isolate' attribute. + * @see #isMustIsolate() + * @generated + */ + void setMustIsolate(boolean value); + + /** + * Returns the value of the 'Edge' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ActivityEdge}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode In Structured Node}'. + * + * + * + * Edges immediately contained in the structured node. + * + * @return the value of the 'Edge' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredActivityNode_Edge() + * @see org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode + * @model type="org.eclipse.uml2.uml.ActivityEdge" opposite="inStructuredNode" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getEdges(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityEdge} and appends it to the 'Edge' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ActivityEdge} to create. + * @return The new {@link org.eclipse.uml2.uml.ActivityEdge}. + * @see #getEdges() + * @generated + */ + ActivityEdge createEdge(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.ActivityEdge} and appends it to the 'Edge' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ActivityEdge}. + * @see #getEdges() + * @generated + */ + ActivityEdge createEdge(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name' from the 'Edge' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ActivityEdge} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ActivityEdge} with the specified 'Name', or null. + * @see #getEdges() + * @generated + */ + ActivityEdge getEdge(String name); + + /** + * + * + * + * The edges owned by a structured node must have source and target nodes in the structured node, and vice versa. + * true + * + * @model + * @generated + */ + boolean validateEdges(DiagnosticChain diagnostics, Map context); + +} // StructuredActivityNode diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java new file mode 100644 index 00000000..6e639491 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/StructuredClassifier.java @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuredClassifier.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Structured Classifier'. + * + * + * + * A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuredClassifier#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.StructuredClassifier#getParts Part}
  • + *
  • {@link org.eclipse.uml2.uml.StructuredClassifier#getRoles Role}
  • + *
  • {@link org.eclipse.uml2.uml.StructuredClassifier#getOwnedConnectors Owned Connector}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredClassifier() + * @model abstract="true" + * @generated + */ +public interface StructuredClassifier + extends Classifier { + + /** + * Returns the value of the 'Owned Attribute' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * References the properties owned by the classifier. + * + * @return the value of the 'Owned Attribute' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredClassifier_OwnedAttribute() + * @model type="org.eclipse.uml2.uml.Property" containment="true" resolveProxies="false" + * @generated + */ + List getOwnedAttributes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the 'Owned Attribute' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Property}. + * @see #getOwnedAttributes() + * @generated + */ + Property createOwnedAttribute(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Owned Attribute' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getOwnedAttributes() + * @generated + */ + Property getOwnedAttribute(String name); + + /** + * Returns the value of the 'Part' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Property}. + * + * + * + * References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true. + * + * @return the value of the 'Part' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredClassifier_Part() + * @model type="org.eclipse.uml2.uml.Property" transient="true" changeable="false" volatile="true" derived="true" ordered="false" + * @generated + */ + List getParts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified 'Name' from the 'Part' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Property} with the specified 'Name', or null. + * @see #getParts() + * @generated + */ + Property getPart(String name); + + /** + * Returns the value of the 'Role' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ConnectableElement}. + * + * + * + * References the roles that instances may play in this classifier. + * + * @return the value of the 'Role' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredClassifier_Role() + * @model type="org.eclipse.uml2.uml.ConnectableElement" transient="true" changeable="false" derived="true" ordered="false" + * @generated + */ + List getRoles(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ConnectableElement} with the specified 'Name' from the 'Role' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ConnectableElement} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ConnectableElement} with the specified 'Name', or null. + * @see #getRoles() + * @generated + */ + ConnectableElement getRole(String name); + + /** + * Returns the value of the 'Owned Connector' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Connector}. + * + * + * + * References the connectors owned by the classifier. + * + * @return the value of the 'Owned Connector' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getStructuredClassifier_OwnedConnector() + * @model type="org.eclipse.uml2.uml.Connector" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedConnectors(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Connector} and appends it to the 'Owned Connector' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Connector}. + * @see #getOwnedConnectors() + * @generated + */ + Connector createOwnedConnector(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Connector} with the specified 'Name' from the 'Owned Connector' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Connector} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Connector} with the specified 'Name', or null. + * @see #getOwnedConnectors() + * @generated + */ + Connector getOwnedConnector(String name); + + /** + * + * + * + * The multiplicities on connected elements must be consistent. + * true + * + * @model + * @generated + */ + boolean validateMultiplicities(DiagnosticChain diagnostics, Map context); + +} // StructuredClassifier diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java new file mode 100644 index 00000000..65a0bbad --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Substitution.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Substitution.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Substitution'. + * + * + * + * A substitution is a relationship between two classifiers signifies that the substitutingClassifier complies with the contract specified by the contract classifier. This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract classifier are expected. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Substitution#getContract Contract}
  • + *
  • {@link org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier Substituting Classifier}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getSubstitution() + * @model + * @generated + */ +public interface Substitution + extends Realization { + + /** + * Returns the value of the 'Contract' reference. + * + *

+ * If the meaning of the 'Contract' reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Contract' reference. + * @see #setContract(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getSubstitution_Contract() + * @model required="true" ordered="false" + * @generated + */ + Classifier getContract(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Substitution#getContract Contract}' reference. + * + * + * @param value the new value of the 'Contract' reference. + * @see #getContract() + * @generated + */ + void setContract(Classifier value); + + /** + * Returns the value of the 'Substituting Classifier' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Classifier#getSubstitutions Substitution}'. + * + *

+ * If the meaning of the 'Substituting Classifier' container reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Substituting Classifier' container reference. + * @see #setSubstitutingClassifier(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getSubstitution_SubstitutingClassifier() + * @see org.eclipse.uml2.uml.Classifier#getSubstitutions + * @model opposite="substitution" required="true" ordered="false" + * @generated + */ + Classifier getSubstitutingClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier Substituting Classifier}' container reference. + * + * + * @param value the new value of the 'Substituting Classifier' container reference. + * @see #getSubstitutingClassifier() + * @generated + */ + void setSubstitutingClassifier(Classifier value); + +} // Substitution diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java new file mode 100644 index 00000000..ba301479 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateBinding.java @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateBinding.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Template Binding'. + * + * + * + * TemplateBinding is a directed relationship from a bound templateable element to the template signature of the target template. A TemplateBinding owns a set of template parameter substitutions. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateBinding#getSignature Signature}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateBinding#getParameterSubstitutions Parameter Substitution}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateBinding#getBoundElement Bound Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateBinding() + * @model + * @generated + */ +public interface TemplateBinding + extends DirectedRelationship { + + /** + * Returns the value of the 'Signature' reference. + * + * + * + * The template signature for the template that is the target of the binding. + * + * @return the value of the 'Signature' reference. + * @see #setSignature(TemplateSignature) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateBinding_Signature() + * @model required="true" ordered="false" + * @generated + */ + TemplateSignature getSignature(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateBinding#getSignature Signature}' reference. + * + * + * @param value the new value of the 'Signature' reference. + * @see #getSignature() + * @generated + */ + void setSignature(TemplateSignature value); + + /** + * Returns the value of the 'Parameter Substitution' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.TemplateParameterSubstitution}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getTemplateBinding Template Binding}'. + * + * + * + * The parameter substitutions owned by this template binding. + * + * @return the value of the 'Parameter Substitution' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateBinding_ParameterSubstitution() + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution#getTemplateBinding + * @model type="org.eclipse.uml2.uml.TemplateParameterSubstitution" opposite="templateBinding" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getParameterSubstitutions(); + + /** + * Creates a {@link org.eclipse.uml2.uml.TemplateParameterSubstitution} and appends it to the 'Parameter Substitution' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.TemplateParameterSubstitution}. + * @see #getParameterSubstitutions() + * @generated + */ + TemplateParameterSubstitution createParameterSubstitution(); + + /** + * Returns the value of the 'Bound Element' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateableElement#getTemplateBindings Template Binding}'. + * + * + * + * The element that is bound by this binding. + * + * @return the value of the 'Bound Element' container reference. + * @see #setBoundElement(TemplateableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateBinding_BoundElement() + * @see org.eclipse.uml2.uml.TemplateableElement#getTemplateBindings + * @model opposite="templateBinding" required="true" ordered="false" + * @generated + */ + TemplateableElement getBoundElement(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateBinding#getBoundElement Bound Element}' container reference. + * + * + * @param value the new value of the 'Bound Element' container reference. + * @see #getBoundElement() + * @generated + */ + void setBoundElement(TemplateableElement value); + + /** + * + * + * + * Each parameter substitution must refer to a formal template parameter of the target template signature. + * parameterSubstitution->forAll(b | template.parameter->includes(b.formal)) + * + * @model + * @generated + */ + boolean validateParameterSubstitution(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A binding contains at most one parameter substitution for each formal template parameter of the target template signature. + * template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() <= 1) + * + * @model + * @generated + */ + boolean validateOneParameterSubstitution(DiagnosticChain diagnostics, + Map context); + +} // TemplateBinding diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java new file mode 100644 index 00000000..77ff95b3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameter.java @@ -0,0 +1,213 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateParameter.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Template Parameter'. + * + * + * + * TemplateParameter references a ParameterableElement which is exposed as a formal template parameter in the containing template. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateParameter#getSignature Signature}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement Owned Parametered Element}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameter#getDefault Default}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameter#getOwnedDefault Owned Default}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameter#getParameteredElement Parametered Element}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameter() + * @model + * @generated + */ +public interface TemplateParameter + extends Element { + + /** + * Returns the value of the 'Signature' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateSignature#getOwnedParameters Owned Parameter}'. + * + * + * + * The template signature that owns this template parameter. + * + * @return the value of the 'Signature' container reference. + * @see #setSignature(TemplateSignature) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameter_Signature() + * @see org.eclipse.uml2.uml.TemplateSignature#getOwnedParameters + * @model opposite="ownedParameter" required="true" ordered="false" + * @generated + */ + TemplateSignature getSignature(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameter#getSignature Signature}' container reference. + * + * + * @param value the new value of the 'Signature' container reference. + * @see #getSignature() + * @generated + */ + void setSignature(TemplateSignature value); + + /** + * Returns the value of the 'Owned Parametered Element' containment reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter Owning Template Parameter}'. + * + * + * + * The element that is owned by this template parameter. + * + * @return the value of the 'Owned Parametered Element' containment reference. + * @see #setOwnedParameteredElement(ParameterableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameter_OwnedParameteredElement() + * @see org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter + * @model opposite="owningTemplateParameter" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ParameterableElement getOwnedParameteredElement(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement Owned Parametered Element}' containment reference. + * + * + * @param value the new value of the 'Owned Parametered Element' containment reference. + * @see #getOwnedParameteredElement() + * @generated + */ + void setOwnedParameteredElement(ParameterableElement value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ParameterableElement} and sets the 'Owned Parametered Element' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ParameterableElement} to create. + * @return The new {@link org.eclipse.uml2.uml.ParameterableElement}. + * @see #getOwnedParameteredElement() + * @generated + */ + ParameterableElement createOwnedParameteredElement(EClass eClass); + + /** + * Returns the value of the 'Default' reference. + * + * + * + * The element that is the default for this formal template parameter. + * + * @return the value of the 'Default' reference. + * @see #setDefault(ParameterableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameter_Default() + * @model ordered="false" + * @generated + */ + ParameterableElement getDefault(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameter#getDefault Default}' reference. + * + * + * @param value the new value of the 'Default' reference. + * @see #getDefault() + * @generated + */ + void setDefault(ParameterableElement value); + + /** + * Returns the value of the 'Owned Default' containment reference. + * + * + * + * The element that is owned by this template parameter for the purpose of providing a default. + * + * @return the value of the 'Owned Default' containment reference. + * @see #setOwnedDefault(ParameterableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameter_OwnedDefault() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + ParameterableElement getOwnedDefault(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedDefault Owned Default}' containment reference. + * + * + * @param value the new value of the 'Owned Default' containment reference. + * @see #getOwnedDefault() + * @generated + */ + void setOwnedDefault(ParameterableElement value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ParameterableElement} and sets the 'Owned Default' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ParameterableElement} to create. + * @return The new {@link org.eclipse.uml2.uml.ParameterableElement}. + * @see #getOwnedDefault() + * @generated + */ + ParameterableElement createOwnedDefault(EClass eClass); + + /** + * Returns the value of the 'Parametered Element' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter Template Parameter}'. + * + * + * + * The element exposed by this template parameter. + * + * @return the value of the 'Parametered Element' reference. + * @see #setParameteredElement(ParameterableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameter_ParameteredElement() + * @see org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter + * @model opposite="templateParameter" required="true" ordered="false" + * @generated + */ + ParameterableElement getParameteredElement(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameter#getParameteredElement Parametered Element}' reference. + * + * + * @param value the new value of the 'Parametered Element' reference. + * @see #getParameteredElement() + * @generated + */ + void setParameteredElement(ParameterableElement value); + + /** + * + * + * + * The default must be compatible with the formal template parameter. + * default->notEmpty() implies default->isCompatibleWith(parameteredElement) + * + * @model + * @generated + */ + boolean validateMustBeCompatible(DiagnosticChain diagnostics, Map context); + +} // TemplateParameter diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameterSubstitution.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameterSubstitution.java new file mode 100644 index 00000000..764ba32f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateParameterSubstitution.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateParameterSubstitution.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Template Parameter Substitution'. + * + * + * + * TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getFormal Formal}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getActuals Actual}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getOwnedActuals Owned Actual}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getTemplateBinding Template Binding}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameterSubstitution() + * @model + * @generated + */ +public interface TemplateParameterSubstitution + extends Element { + + /** + * Returns the value of the 'Formal' reference. + * + * + * + * The formal template parameter that is associated with this substitution. + * + * @return the value of the 'Formal' reference. + * @see #setFormal(TemplateParameter) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameterSubstitution_Formal() + * @model required="true" ordered="false" + * @generated + */ + TemplateParameter getFormal(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getFormal Formal}' reference. + * + * + * @param value the new value of the 'Formal' reference. + * @see #getFormal() + * @generated + */ + void setFormal(TemplateParameter value); + + /** + * Returns the value of the 'Actual' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ParameterableElement}. + * + * + * + * The elements that are the actual parameters for this substitution. + * + * @return the value of the 'Actual' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameterSubstitution_Actual() + * @model type="org.eclipse.uml2.uml.ParameterableElement" required="true" ordered="false" + * @generated + */ + List getActuals(); + + /** + * Returns the value of the 'Owned Actual' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ParameterableElement}. + * + * + * + * The actual parameters that are owned by this substitution. + * + * @return the value of the 'Owned Actual' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameterSubstitution_OwnedActual() + * @model type="org.eclipse.uml2.uml.ParameterableElement" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedActuals(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ParameterableElement} and appends it to the 'Owned Actual' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ParameterableElement} to create. + * @return The new {@link org.eclipse.uml2.uml.ParameterableElement}. + * @see #getOwnedActuals() + * @generated + */ + ParameterableElement createOwnedActual(EClass eClass); + + /** + * Returns the value of the 'Template Binding' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateBinding#getParameterSubstitutions Parameter Substitution}'. + * + * + * + * The optional bindings from this element to templates. + * + * @return the value of the 'Template Binding' container reference. + * @see #setTemplateBinding(TemplateBinding) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateParameterSubstitution_TemplateBinding() + * @see org.eclipse.uml2.uml.TemplateBinding#getParameterSubstitutions + * @model opposite="parameterSubstitution" required="true" ordered="false" + * @generated + */ + TemplateBinding getTemplateBinding(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getTemplateBinding Template Binding}' container reference. + * + * + * @param value the new value of the 'Template Binding' container reference. + * @see #getTemplateBinding() + * @generated + */ + void setTemplateBinding(TemplateBinding value); + + /** + * + * + * + * The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class. + * actual->forAll(a | a.isCompatibleWith(formal.parameteredElement)) + * + * @model + * @generated + */ + boolean validateMustBeCompatible(DiagnosticChain diagnostics, Map context); + +} // TemplateParameterSubstitution diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java new file mode 100644 index 00000000..97068514 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateSignature.java @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateSignature.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Template Signature'. + * + * + * + * TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateSignature#getParameters Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateSignature#getTemplate Template}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateSignature#getOwnedParameters Owned Parameter}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature() + * @model + * @generated + */ +public interface TemplateSignature + extends Element { + + /** + * Returns the value of the 'Parameter' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.TemplateParameter}. + * + * + * + * The ordered set of all formal template parameters for this template signature. + * + * @return the value of the 'Parameter' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature_Parameter() + * @model type="org.eclipse.uml2.uml.TemplateParameter" required="true" + * @generated + */ + List getParameters(); + + /** + * Returns the value of the 'Template' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature Owned Template Signature}'. + * + * + * + * The element that owns this template signature. + * + * @return the value of the 'Template' container reference. + * @see #setTemplate(TemplateableElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature_Template() + * @see org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature + * @model opposite="ownedTemplateSignature" required="true" ordered="false" + * @generated + */ + TemplateableElement getTemplate(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateSignature#getTemplate Template}' container reference. + * + * + * @param value the new value of the 'Template' container reference. + * @see #getTemplate() + * @generated + */ + void setTemplate(TemplateableElement value); + + /** + * Returns the value of the 'Owned Parameter' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.TemplateParameter}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateParameter#getSignature Signature}'. + * + * + * + * The formal template parameters that are owned by this template signature. + * + * @return the value of the 'Owned Parameter' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateSignature_OwnedParameter() + * @see org.eclipse.uml2.uml.TemplateParameter#getSignature + * @model type="org.eclipse.uml2.uml.TemplateParameter" opposite="signature" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getOwnedParameters(); + + /** + * Creates a {@link org.eclipse.uml2.uml.TemplateParameter} and appends it to the 'Owned Parameter' containment reference list. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.TemplateParameter} to create. + * @return The new {@link org.eclipse.uml2.uml.TemplateParameter}. + * @see #getOwnedParameters() + * @generated + */ + TemplateParameter createOwnedParameter(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.TemplateParameter} and appends it to the 'Owned Parameter' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.TemplateParameter}. + * @see #getOwnedParameters() + * @generated + */ + TemplateParameter createOwnedParameter(); + + /** + * + * + * + * Parameters must own the elements they parameter or those elements must be owned by the element being templated. + * templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement) + * + * @model + * @generated + */ + boolean validateOwnElements(DiagnosticChain diagnostics, Map context); + +} // TemplateSignature diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateableElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateableElement.java new file mode 100644 index 00000000..cebb3db1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TemplateableElement.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateableElement.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Templateable Element'. + * + * + * + * TemplateableElement may contain a template signature which specifies the formal template parameters. A TemplateableElement that contains a template signature is often referred to as a template. TemplateableElement may contain bindings to templates that describe how the templateable element is constructed by replacing the formal template parameters with actual parameters. A TemplateableElement containing bindings is oftenreferred to as a bound element. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateableElement#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature Owned Template Signature}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateableElement() + * @model abstract="true" + * @generated + */ +public interface TemplateableElement + extends Element { + + /** + * Returns the value of the 'Template Binding' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.TemplateBinding}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateBinding#getBoundElement Bound Element}'. + * + * + * + * The optional bindings from this element to templates. + * + * @return the value of the 'Template Binding' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateableElement_TemplateBinding() + * @see org.eclipse.uml2.uml.TemplateBinding#getBoundElement + * @model type="org.eclipse.uml2.uml.TemplateBinding" opposite="boundElement" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getTemplateBindings(); + + /** + * Creates a {@link org.eclipse.uml2.uml.TemplateBinding} and appends it to the 'Template Binding' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.TemplateBinding}. + * @see #getTemplateBindings() + * @generated + */ + TemplateBinding createTemplateBinding(); + + /** + * Returns the value of the 'Owned Template Signature' containment reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.TemplateSignature#getTemplate Template}'. + * + * + * + * The optional template signature specifying the formal template parameters. + * + * @return the value of the 'Owned Template Signature' containment reference. + * @see #setOwnedTemplateSignature(TemplateSignature) + * @see org.eclipse.uml2.uml.UMLPackage#getTemplateableElement_OwnedTemplateSignature() + * @see org.eclipse.uml2.uml.TemplateSignature#getTemplate + * @model opposite="template" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + TemplateSignature getOwnedTemplateSignature(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature Owned Template Signature}' containment reference. + * + * + * @param value the new value of the 'Owned Template Signature' containment reference. + * @see #getOwnedTemplateSignature() + * @generated + */ + void setOwnedTemplateSignature(TemplateSignature value); + + /** + * Creates a {@link org.eclipse.uml2.uml.TemplateSignature} and sets the 'Owned Template Signature' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.TemplateSignature} to create. + * @return The new {@link org.eclipse.uml2.uml.TemplateSignature}. + * @see #getOwnedTemplateSignature() + * @generated + */ + TemplateSignature createOwnedTemplateSignature(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.TemplateSignature} and sets the 'Owned Template Signature' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.TemplateSignature}. + * @see #getOwnedTemplateSignature() + * @generated + */ + TemplateSignature createOwnedTemplateSignature(); + + /** + * + * + * + * The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements. + * result = allOwnedElements->select(oclIsKindOf(ParameterableElement)) + * + * @model type="org.eclipse.uml2.uml.ParameterableElement" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List parameterableElements(); + + /** + * + * + * + * The query isTemplate() returns whether this templateable element is actually a template. + * result = ownedSignature->notEmpty() + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isTemplate(); + +} // TemplateableElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TestIdentityAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TestIdentityAction.java new file mode 100644 index 00000000..8288ea12 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TestIdentityAction.java @@ -0,0 +1,213 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TestIdentityAction.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Test Identity Action'. + * + * + * + * This action returns true if the two input values are the same identity, false if they are not. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TestIdentityAction#getFirst First}
  • + *
  • {@link org.eclipse.uml2.uml.TestIdentityAction#getSecond Second}
  • + *
  • {@link org.eclipse.uml2.uml.TestIdentityAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTestIdentityAction() + * @model + * @generated + */ +public interface TestIdentityAction + extends Action { + + /** + * Returns the value of the 'First' containment reference. + * + * + * + * Gives the pin on which an object is placed. + * + * @return the value of the 'First' containment reference. + * @see #setFirst(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getTestIdentityAction_First() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getFirst(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TestIdentityAction#getFirst First}' containment reference. + * + * + * @param value the new value of the 'First' containment reference. + * @see #getFirst() + * @generated + */ + void setFirst(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'First' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getFirst() + * @generated + */ + InputPin createFirst(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'First' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getFirst() + * @generated + */ + InputPin createFirst(); + + /** + * Returns the value of the 'Second' containment reference. + * + * + * + * Gives the pin on which an object is placed. + * + * @return the value of the 'Second' containment reference. + * @see #setSecond(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getTestIdentityAction_Second() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getSecond(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TestIdentityAction#getSecond Second}' containment reference. + * + * + * @param value the new value of the 'Second' containment reference. + * @see #getSecond() + * @generated + */ + void setSecond(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Second' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getSecond() + * @generated + */ + InputPin createSecond(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Second' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getSecond() + * @generated + */ + InputPin createSecond(); + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Tells whether the two input objects are identical. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getTestIdentityAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TestIdentityAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The input pins have no type. + * self.first.type->size() = 0 + * and self.second.type->size() = 0 + * + * + * @model + * @generated + */ + boolean validateNoType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the input pins is 1..1. + * self.first.multiplicity.is(1,1) + * and self.second.multiplicity.is(1,1) + * + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type of the result is Boolean. + * self.result.type.oclIsTypeOf(Boolean) + * + * @model + * @generated + */ + boolean validateResultIsBoolean(DiagnosticChain diagnostics, Map context); + +} // TestIdentityAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeConstraint.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeConstraint.java new file mode 100644 index 00000000..9767bbc0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeConstraint.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeConstraint.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Time Constraint'. + * + * + * + * A TimeConstraint defines a Constraint that refers to a TimeInterval. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getTimeConstraint() + * @model + * @generated + */ +public interface TimeConstraint + extends IntervalConstraint { +} // TimeConstraint diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeEvent.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeEvent.java new file mode 100644 index 00000000..23a05761 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeEvent.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeEvent.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Time Event'. + * + * + * + * A time event specifies a point in time by an expression. The expression might be absolute or might be relative to some other point in time. + * Extends TimeEvent to be defined relative to entering the current state of the executing state machine. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TimeEvent#isRelative Is Relative}
  • + *
  • {@link org.eclipse.uml2.uml.TimeEvent#getWhen When}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTimeEvent() + * @model + * @generated + */ +public interface TimeEvent + extends Event { + + /** + * Returns the value of the 'Is Relative' attribute. + * + * + * + * Specifies whether it is relative or absolute time. + * + * @return the value of the 'Is Relative' attribute. + * @see #setIsRelative(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getTimeEvent_IsRelative() + * @model required="true" ordered="false" + * @generated + */ + boolean isRelative(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TimeEvent#isRelative Is Relative}' attribute. + * + * + * @param value the new value of the 'Is Relative' attribute. + * @see #isRelative() + * @generated + */ + void setIsRelative(boolean value); + + /** + * Returns the value of the 'When' containment reference. + * + * + * + * Specifies the corresponding time deadline. + * + * @return the value of the 'When' containment reference. + * @see #setWhen(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getTimeEvent_When() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getWhen(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TimeEvent#getWhen When}' containment reference. + * + * + * @param value the new value of the 'When' containment reference. + * @see #getWhen() + * @generated + */ + void setWhen(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'When' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getWhen() + * @generated + */ + ValueSpecification createWhen(EClass eClass); + + /** + * + * + * + * The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine. + * true + * + * @model + * @generated + */ + boolean validateStartingTime(DiagnosticChain diagnostics, Map context); + +} // TimeEvent diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeExpression.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeExpression.java new file mode 100644 index 00000000..2e614dfa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeExpression.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeExpression.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Time Expression'. + * + * + * + * A TimeExpression defines a value specification that represents a time value. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TimeExpression#isFirstTime First Time}
  • + *
  • {@link org.eclipse.uml2.uml.TimeExpression#getEvent Event}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTimeExpression() + * @model + * @generated + */ +public interface TimeExpression + extends ValueSpecification { + + /** + * Returns the value of the 'First Time' attribute. + * The default value is "true". + * + * + * + * True if the TimeExpression describes the first point in time of the NamedElement referenced by event, in cases where the NamedElement describes something which extends in time. False if the TimeExpression describes the last point in time for the referenced NamedElement. + * + * @return the value of the 'First Time' attribute. + * @see #setFirstTime(boolean) + * @see org.eclipse.uml2.uml.UMLPackage#getTimeExpression_FirstTime() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isFirstTime(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TimeExpression#isFirstTime First Time}' attribute. + * + * + * @param value the new value of the 'First Time' attribute. + * @see #isFirstTime() + * @generated + */ + void setFirstTime(boolean value); + + /** + * Returns the value of the 'Event' reference. + * + * + * + * Refers to the specification of the event occurrence that the TimeExpression describes + * + * @return the value of the 'Event' reference. + * @see #setEvent(NamedElement) + * @see org.eclipse.uml2.uml.UMLPackage#getTimeExpression_Event() + * @model ordered="false" + * @generated + */ + NamedElement getEvent(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TimeExpression#getEvent Event}' reference. + * + * + * @param value the new value of the 'Event' reference. + * @see #getEvent() + * @generated + */ + void setEvent(NamedElement value); + +} // TimeExpression diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeInterval.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeInterval.java new file mode 100644 index 00000000..abfc1b60 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeInterval.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeInterval.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Time Interval'. + * + * + * + * A TimeInterval defines the range between two TimeExpressions. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getTimeInterval() + * @model + * @generated + */ +public interface TimeInterval + extends Interval { +} // TimeInterval diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeObservationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeObservationAction.java new file mode 100644 index 00000000..b3718f37 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TimeObservationAction.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeObservationAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Time Observation Action'. + * + * + * + * A TimeObservationAction defines an action that observes the current point in time and writes this value to a structural feature. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TimeObservationAction#getNow Now}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTimeObservationAction() + * @model + * @generated + */ +public interface TimeObservationAction + extends WriteStructuralFeatureAction { + + /** + * Returns the value of the 'Now' reference. + * + * + * + * Represents the current point in time and the value which is observed given by the keyword now. + * + * @return the value of the 'Now' reference. + * @see #setNow(TimeExpression) + * @see org.eclipse.uml2.uml.UMLPackage#getTimeObservationAction_Now() + * @model resolveProxies="false" required="true" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + TimeExpression getNow(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TimeObservationAction#getNow Now}' reference. + * + * + * @param value the new value of the 'Now' reference. + * @see #getNow() + * @generated + */ + void setNow(TimeExpression value); + + /** + * + * + * + * The value of a TimeObservationAction’s input must be a TimeExpression. + * self.value.value.oclIsKindOf(TimeExpression) + * + * @model + * @generated + */ + boolean validateInputValueTimeExpression(DiagnosticChain diagnostics, + Map context); + +} // TimeObservationAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Transition.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Transition.java new file mode 100644 index 00000000..ae539e69 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Transition.java @@ -0,0 +1,440 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Transition.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Transition'. + * + * + * + * A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Transition#getKind Kind}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getContainer Container}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getRedefinedTransition Redefined Transition}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getEffect Effect}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getTriggers Trigger}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#getSource Source}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTransition() + * @model + * @generated + */ +public interface Transition + extends RedefinableElement { + + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.eclipse.uml2.uml.TransitionKind}. + * + * + * + * Indicates the precise type of the transition. + * + * @return the value of the 'Kind' attribute. + * @see org.eclipse.uml2.uml.TransitionKind + * @see #setKind(TransitionKind) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Kind() + * @model required="true" ordered="false" + * @generated + */ + TransitionKind getKind(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.eclipse.uml2.uml.TransitionKind + * @see #getKind() + * @generated + */ + void setKind(TransitionKind value); + + /** + * Returns the value of the 'Container' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Region#getTransitions Transition}'. + * + * + * + * Designates the region that owns this transition. + * + * @return the value of the 'Container' container reference. + * @see #setContainer(Region) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Container() + * @see org.eclipse.uml2.uml.Region#getTransitions + * @model opposite="transition" required="true" ordered="false" + * @generated + */ + Region getContainer(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getContainer Container}' container reference. + * + * + * @param value the new value of the 'Container' container reference. + * @see #getContainer() + * @generated + */ + void setContainer(Region value); + + /** + * Returns the value of the 'Target' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Vertex#getIncomings Incoming}'. + * + * + * + * Designates the target vertex that is reached when the transition is taken. + * + * @return the value of the 'Target' reference. + * @see #setTarget(Vertex) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Target() + * @see org.eclipse.uml2.uml.Vertex#getIncomings + * @model opposite="incoming" required="true" ordered="false" + * @generated + */ + Vertex getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getTarget Target}' reference. + * + * + * @param value the new value of the 'Target' reference. + * @see #getTarget() + * @generated + */ + void setTarget(Vertex value); + + /** + * Returns the value of the 'Redefined Transition' reference. + * + * + * + * The transition that is redefined by this transition. + * + * @return the value of the 'Redefined Transition' reference. + * @see #setRedefinedTransition(Transition) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_RedefinedTransition() + * @model ordered="false" + * @generated + */ + Transition getRedefinedTransition(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getRedefinedTransition Redefined Transition}' reference. + * + * + * @param value the new value of the 'Redefined Transition' reference. + * @see #getRedefinedTransition() + * @generated + */ + void setRedefinedTransition(Transition value); + + /** + * Returns the value of the 'Guard' containment reference. + * + * + * + * A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed. + * + * @return the value of the 'Guard' containment reference. + * @see #setGuard(Constraint) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Guard() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Constraint getGuard(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getGuard Guard}' containment reference. + * + * + * @param value the new value of the 'Guard' containment reference. + * @see #getGuard() + * @generated + */ + void setGuard(Constraint value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Guard' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Constraint} to create. + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getGuard() + * @generated + */ + Constraint createGuard(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Constraint} and sets the 'Guard' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Constraint}. + * @see #getGuard() + * @generated + */ + Constraint createGuard(); + + /** + * Returns the value of the 'Effect' containment reference. + * + * + * + * Specifies an optional behavior to be performed when the transition fires. + * + * @return the value of the 'Effect' containment reference. + * @see #setEffect(Behavior) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Effect() + * @model containment="true" resolveProxies="false" ordered="false" + * @generated + */ + Behavior getEffect(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getEffect Effect}' containment reference. + * + * + * @param value the new value of the 'Effect' containment reference. + * @see #getEffect() + * @generated + */ + void setEffect(Behavior value); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Effect' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Behavior} to create. + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getEffect() + * @generated + */ + Behavior createEffect(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.Behavior} and sets the 'Effect' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.Behavior}. + * @see #getEffect() + * @generated + */ + Behavior createEffect(); + + /** + * Returns the value of the 'Trigger' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Trigger}. + * + * + * + * Specifies the triggers that may fire the transition. + * + * @return the value of the 'Trigger' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Trigger() + * @model type="org.eclipse.uml2.uml.Trigger" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getTriggers(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Trigger} and appends it to the 'Trigger' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Trigger}. + * @see #getTriggers() + * @generated + */ + Trigger createTrigger(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name' from the 'Trigger' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Trigger} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Trigger} with the specified 'Name', or null. + * @see #getTriggers() + * @generated + */ + Trigger getTrigger(String name); + + /** + * Returns the value of the 'Source' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Vertex#getOutgoings Outgoing}'. + * + * + * + * Designates the originating vertex (state or pseudostate) of the transition. + * + * @return the value of the 'Source' reference. + * @see #setSource(Vertex) + * @see org.eclipse.uml2.uml.UMLPackage#getTransition_Source() + * @see org.eclipse.uml2.uml.Vertex#getOutgoings + * @model opposite="outgoing" required="true" ordered="false" + * @generated + */ + Vertex getSource(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Transition#getSource Source}' reference. + * + * + * @param value the new value of the 'Source' reference. + * @see #getSource() + * @generated + */ + void setSource(Vertex value); + + /** + * + * + * + * A fork segment must not have guards or triggers. + * (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty()) + * + * @model + * @generated + */ + boolean validateForkSegmentGuards(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A join segment must not have guards or triggers. + * (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty()) + * + * @model + * @generated + */ + boolean validateJoinSegmentGuards(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A fork segment must always target a state. + * (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State)) + * + * @model + * @generated + */ + boolean validateForkSegmentState(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * A join segment must always originate from a state. + * (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State)) + * + * @model + * @generated + */ + boolean validateJoinSegmentState(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * Transitions outgoing pseudostates may not have a trigger. + * source.oclIsKindOf(Pseudostate) and + * ((source.kind <> #junction) and (source.kind <> #join) and (source.kind <> #initial)) implies trigger->isEmpty() + * + * + * @model + * @generated + */ + boolean validateOutgoingPseudostates(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype ?create?. + * self.source.oclIsKindOf(Pseudostate) implies + * (self.source.oclAsType(Pseudostate).kind = #initial) implies + * (self.source.container = self.stateMachine.top) implies + * ((self.trigger->isEmpty) or + * (self.trigger.stereotype.name = 'create')) + * + * + * @model + * @generated + */ + boolean validateInitialTransition(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes. + * + * + * true + * + * @model + * @generated + */ + boolean validateSignaturesCompatible(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The redefinition context of a transition is the nearest containing statemachine. + * result = let sm = containingStateMachine() in + * if sm.context->isEmpty() or sm.general->notEmpty() then + * sm + * else + * sm.context + * endif + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + Classifier redefinitionContext(); + + /** + * + * + * + * The query containingStateMachine() returns the state machine that contains the transition either directly or transitively. + * result = container.containingStateMachine() + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + StateMachine containingStateMachine(); + +} // Transition diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TransitionKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TransitionKind.java new file mode 100644 index 00000000..31159c0c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TransitionKind.java @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TransitionKind.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Transition Kind', + * and utility methods for working with them. + * + * + * TransitionKind is an enumeration of the following literal values: + * ? external + * ? internal + * ? local + * + * kind=#local implies owner.source.isComposite + * kind=#external implies owner.source.isComposite + * + * @see org.eclipse.uml2.uml.UMLPackage#getTransitionKind() + * @model + * @generated + */ +public final class TransitionKind + extends AbstractEnumerator { + + /** + * The 'Internal' literal value. + * + * + * + * kind=internal implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state. + * + * @see #INTERNAL_LITERAL + * @model name="internal" + * @generated + * @ordered + */ + public static final int INTERNAL = 0; + + /** + * The 'Local' literal value. + * + * + * + * kind=local implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered. + * + * @see #LOCAL_LITERAL + * @model name="local" + * @generated + * @ordered + */ + public static final int LOCAL = 1; + + /** + * The 'External' literal value. + * + * + * + * kind=external implies that the transition, if triggered, will exit the composite (source) state. + * + * @see #EXTERNAL_LITERAL + * @model name="external" + * @generated + * @ordered + */ + public static final int EXTERNAL = 2; + + /** + * The 'Internal' literal object. + * + * + * @see #INTERNAL + * @generated + * @ordered + */ + public static final TransitionKind INTERNAL_LITERAL = new TransitionKind( + INTERNAL, "internal", "internal"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Local' literal object. + * + * + * @see #LOCAL + * @generated + * @ordered + */ + public static final TransitionKind LOCAL_LITERAL = new TransitionKind( + LOCAL, "local", "local"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'External' literal object. + * + * + * @see #EXTERNAL + * @generated + * @ordered + */ + public static final TransitionKind EXTERNAL_LITERAL = new TransitionKind( + EXTERNAL, "external", "external"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Transition Kind' enumerators. + * + * + * @generated + */ + private static final TransitionKind[] VALUES_ARRAY = new TransitionKind[]{ + INTERNAL_LITERAL, LOCAL_LITERAL, EXTERNAL_LITERAL,}; + + /** + * A public read-only list of all the 'Transition Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Transition Kind' literal with the specified literal value. + * + * + * @generated + */ + public static TransitionKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TransitionKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Transition Kind' literal with the specified name. + * + * + * @generated + */ + public static TransitionKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TransitionKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Transition Kind' literal with the specified integer value. + * + * + * @generated + */ + public static TransitionKind get(int value) { + switch (value) { + case INTERNAL : + return INTERNAL_LITERAL; + case LOCAL : + return LOCAL_LITERAL; + case EXTERNAL : + return EXTERNAL_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private TransitionKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //TransitionKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java new file mode 100644 index 00000000..b6469f99 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Trigger.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Trigger.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Trigger'. + * + * + * + * A trigger specifies an event that may cause the execution of an associated behavior. An event is often ultimately caused by the execution of an action, but need not be. + * A trigger specification may be qualified by the port on which the event occurred. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Trigger#getEvent Event}
  • + *
  • {@link org.eclipse.uml2.uml.Trigger#getPorts Port}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTrigger() + * @model + * @generated + */ +public interface Trigger + extends NamedElement { + + /** + * Returns the value of the 'Event' reference. + * + * + * + * The event that causes the trigger. + * + * @return the value of the 'Event' reference. + * @see #setEvent(Event) + * @see org.eclipse.uml2.uml.UMLPackage#getTrigger_Event() + * @model required="true" ordered="false" + * @generated + */ + Event getEvent(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Trigger#getEvent Event}' reference. + * + * + * @param value the new value of the 'Event' reference. + * @see #getEvent() + * @generated + */ + void setEvent(Event value); + + /** + * Returns the value of the 'Port' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Port}. + * + * + * + * A optional port of the receiver object on which the behavioral feature is invoked. + * + * @return the value of the 'Port' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getTrigger_Port() + * @model type="org.eclipse.uml2.uml.Port" ordered="false" + * @generated + */ + List getPorts(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Port} with the specified 'Name' from the 'Port' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Port} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Port} with the specified 'Name', or null. + * @see #getPorts() + * @generated + */ + Port getPort(String name); + +} // Trigger diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Type.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Type.java new file mode 100644 index 00000000..ffad4575 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Type.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Type.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Type'. + * + * + * + * A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Type#getPackage Package}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getType() + * @model abstract="true" + * @generated + */ +public interface Type + extends PackageableElement { + + /** + * Returns the value of the 'Package' reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Package#getOwnedTypes Owned Type}'. + * + * + * + * References the owning package of a package. + * Specifies the owning package of this classifier, if any. + * + * @return the value of the 'Package' reference. + * @see #setPackage(org.eclipse.uml2.uml.Package) + * @see org.eclipse.uml2.uml.UMLPackage#getType_Package() + * @see org.eclipse.uml2.uml.Package#getOwnedTypes + * @model opposite="ownedType" resolveProxies="false" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + org.eclipse.uml2.uml.Package getPackage(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Type#getPackage Package}' reference. + * + * + * @param value the new value of the 'Package' reference. + * @see #getPackage() + * @generated + */ + void setPackage(org.eclipse.uml2.uml.Package value); + + /** + * + * + * + * The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations. + * result = false + * + * @model required="true" ordered="false" otherRequired="true" otherOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean conformsTo(Type other); + +} // Type diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java new file mode 100644 index 00000000..a19b29f1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/TypedElement.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TypedElement.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Typed Element'. + * + * + * + * A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. Typed element is an abstract metaclass. + * A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. + * + * Typed element is an abstract metaclass. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TypedElement#getType Type}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getTypedElement() + * @model abstract="true" + * @generated + */ +public interface TypedElement + extends NamedElement { + + /** + * Returns the value of the 'Type' reference. + * + * + * + * Redefines the corresponding property from Basic to derive this information from the return result for this Operation. + * The type of the TypedElement. + * + * @return the value of the 'Type' reference. + * @see #setType(Type) + * @see org.eclipse.uml2.uml.UMLPackage#getTypedElement_Type() + * @model ordered="false" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.TypedElement#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(Type value); + +} // TypedElement diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLFactory.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLFactory.java new file mode 100644 index 00000000..89917aa2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLFactory.java @@ -0,0 +1,1819 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLFactory.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.eclipse.uml2.uml.UMLPackage + * @generated + */ +public interface UMLFactory + extends EFactory { + + /** + * The singleton instance of the factory. + * + * + * @generated + */ + UMLFactory eINSTANCE = org.eclipse.uml2.uml.internal.impl.UMLFactoryImpl + .init(); + + /** + * Returns a new object of class 'Comment'. + * + * + * @return a new object of class 'Comment'. + * @generated + */ + Comment createComment(); + + /** + * Returns a new object of class 'Dependency'. + * + * + * @return a new object of class 'Dependency'. + * @generated + */ + Dependency createDependency(); + + /** + * Returns a new object of class 'Template Parameter'. + * + * + * @return a new object of class 'Template Parameter'. + * @generated + */ + TemplateParameter createTemplateParameter(); + + /** + * Returns a new object of class 'Template Signature'. + * + * + * @return a new object of class 'Template Signature'. + * @generated + */ + TemplateSignature createTemplateSignature(); + + /** + * Returns a new object of class 'Template Binding'. + * + * + * @return a new object of class 'Template Binding'. + * @generated + */ + TemplateBinding createTemplateBinding(); + + /** + * Returns a new object of class 'Template Parameter Substitution'. + * + * + * @return a new object of class 'Template Parameter Substitution'. + * @generated + */ + TemplateParameterSubstitution createTemplateParameterSubstitution(); + + /** + * Returns a new object of class 'Element Import'. + * + * + * @return a new object of class 'Element Import'. + * @generated + */ + ElementImport createElementImport(); + + /** + * Returns a new object of class 'Package Import'. + * + * + * @return a new object of class 'Package Import'. + * @generated + */ + PackageImport createPackageImport(); + + /** + * Returns a new object of class 'Package'. + * + * + * @return a new object of class 'Package'. + * @generated + */ + org.eclipse.uml2.uml.Package createPackage(); + + /** + * Returns a new object of class 'Package Merge'. + * + * + * @return a new object of class 'Package Merge'. + * @generated + */ + PackageMerge createPackageMerge(); + + /** + * Returns a new object of class 'Profile Application'. + * + * + * @return a new object of class 'Profile Application'. + * @generated + */ + ProfileApplication createProfileApplication(); + + /** + * Returns a new object of class 'Profile'. + * + * + * @return a new object of class 'Profile'. + * @generated + */ + Profile createProfile(); + + /** + * Returns a new object of class 'Stereotype'. + * + * + * @return a new object of class 'Stereotype'. + * @generated + */ + Stereotype createStereotype(); + + /** + * Returns a new object of class 'Class'. + * + * + * @return a new object of class 'Class'. + * @generated + */ + org.eclipse.uml2.uml.Class createClass(); + + /** + * Returns a new object of class 'Generalization'. + * + * + * @return a new object of class 'Generalization'. + * @generated + */ + Generalization createGeneralization(); + + /** + * Returns a new object of class 'Generalization Set'. + * + * + * @return a new object of class 'Generalization Set'. + * @generated + */ + GeneralizationSet createGeneralizationSet(); + + /** + * Returns a new object of class 'Use Case'. + * + * + * @return a new object of class 'Use Case'. + * @generated + */ + UseCase createUseCase(); + + /** + * Returns a new object of class 'Include'. + * + * + * @return a new object of class 'Include'. + * @generated + */ + Include createInclude(); + + /** + * Returns a new object of class 'Extend'. + * + * + * @return a new object of class 'Extend'. + * @generated + */ + Extend createExtend(); + + /** + * Returns a new object of class 'Constraint'. + * + * + * @return a new object of class 'Constraint'. + * @generated + */ + Constraint createConstraint(); + + /** + * Returns a new object of class 'Extension Point'. + * + * + * @return a new object of class 'Extension Point'. + * @generated + */ + ExtensionPoint createExtensionPoint(); + + /** + * Returns a new object of class 'Substitution'. + * + * + * @return a new object of class 'Substitution'. + * @generated + */ + Substitution createSubstitution(); + + /** + * Returns a new object of class 'Realization'. + * + * + * @return a new object of class 'Realization'. + * @generated + */ + Realization createRealization(); + + /** + * Returns a new object of class 'Abstraction'. + * + * + * @return a new object of class 'Abstraction'. + * @generated + */ + Abstraction createAbstraction(); + + /** + * Returns a new object of class 'Opaque Expression'. + * + * + * @return a new object of class 'Opaque Expression'. + * @generated + */ + OpaqueExpression createOpaqueExpression(); + + /** + * Returns a new object of class 'Parameter'. + * + * + * @return a new object of class 'Parameter'. + * @generated + */ + Parameter createParameter(); + + /** + * Returns a new object of class 'Connector End'. + * + * + * @return a new object of class 'Connector End'. + * @generated + */ + ConnectorEnd createConnectorEnd(); + + /** + * Returns a new object of class 'Property'. + * + * + * @return a new object of class 'Property'. + * @generated + */ + Property createProperty(); + + /** + * Returns a new object of class 'Deployment'. + * + * + * @return a new object of class 'Deployment'. + * @generated + */ + Deployment createDeployment(); + + /** + * Returns a new object of class 'Deployment Specification'. + * + * + * @return a new object of class 'Deployment Specification'. + * @generated + */ + DeploymentSpecification createDeploymentSpecification(); + + /** + * Returns a new object of class 'Artifact'. + * + * + * @return a new object of class 'Artifact'. + * @generated + */ + Artifact createArtifact(); + + /** + * Returns a new object of class 'Manifestation'. + * + * + * @return a new object of class 'Manifestation'. + * @generated + */ + Manifestation createManifestation(); + + /** + * Returns a new object of class 'Operation'. + * + * + * @return a new object of class 'Operation'. + * @generated + */ + Operation createOperation(); + + /** + * Returns a new object of class 'Behavioral Feature'. + * + * + * @return a new object of class 'Behavioral Feature'. + * @generated + */ + BehavioralFeature createBehavioralFeature(); + + /** + * Returns a new object of class 'Behavior'. + * + * + * @return a new object of class 'Behavior'. + * @generated + */ + Behavior createBehavior(); + + /** + * Returns a new object of class 'Parameter Set'. + * + * + * @return a new object of class 'Parameter Set'. + * @generated + */ + ParameterSet createParameterSet(); + + /** + * Returns a new object of class 'Data Type'. + * + * + * @return a new object of class 'Data Type'. + * @generated + */ + DataType createDataType(); + + /** + * Returns a new object of class 'Interface'. + * + * + * @return a new object of class 'Interface'. + * @generated + */ + Interface createInterface(); + + /** + * Returns a new object of class 'Reception'. + * + * + * @return a new object of class 'Reception'. + * @generated + */ + Reception createReception(); + + /** + * Returns a new object of class 'Signal'. + * + * + * @return a new object of class 'Signal'. + * @generated + */ + Signal createSignal(); + + /** + * Returns a new object of class 'Protocol State Machine'. + * + * + * @return a new object of class 'Protocol State Machine'. + * @generated + */ + ProtocolStateMachine createProtocolStateMachine(); + + /** + * Returns a new object of class 'State Machine'. + * + * + * @return a new object of class 'State Machine'. + * @generated + */ + StateMachine createStateMachine(); + + /** + * Returns a new object of class 'Region'. + * + * + * @return a new object of class 'Region'. + * @generated + */ + Region createRegion(); + + /** + * Returns a new object of class 'Transition'. + * + * + * @return a new object of class 'Transition'. + * @generated + */ + Transition createTransition(); + + /** + * Returns a new object of class 'Trigger'. + * + * + * @return a new object of class 'Trigger'. + * @generated + */ + Trigger createTrigger(); + + /** + * Returns a new object of class 'Port'. + * + * + * @return a new object of class 'Port'. + * @generated + */ + Port createPort(); + + /** + * Returns a new object of class 'State'. + * + * + * @return a new object of class 'State'. + * @generated + */ + State createState(); + + /** + * Returns a new object of class 'Connection Point Reference'. + * + * + * @return a new object of class 'Connection Point Reference'. + * @generated + */ + ConnectionPointReference createConnectionPointReference(); + + /** + * Returns a new object of class 'Pseudostate'. + * + * + * @return a new object of class 'Pseudostate'. + * @generated + */ + Pseudostate createPseudostate(); + + /** + * Returns a new object of class 'Protocol Conformance'. + * + * + * @return a new object of class 'Protocol Conformance'. + * @generated + */ + ProtocolConformance createProtocolConformance(); + + /** + * Returns a new object of class 'Operation Template Parameter'. + * + * + * @return a new object of class 'Operation Template Parameter'. + * @generated + */ + OperationTemplateParameter createOperationTemplateParameter(); + + /** + * Returns a new object of class 'Association'. + * + * + * @return a new object of class 'Association'. + * @generated + */ + Association createAssociation(); + + /** + * Returns a new object of class 'Connectable Element Template Parameter'. + * + * + * @return a new object of class 'Connectable Element Template Parameter'. + * @generated + */ + ConnectableElementTemplateParameter createConnectableElementTemplateParameter(); + + /** + * Returns a new object of class 'Collaboration Use'. + * + * + * @return a new object of class 'Collaboration Use'. + * @generated + */ + CollaborationUse createCollaborationUse(); + + /** + * Returns a new object of class 'Collaboration'. + * + * + * @return a new object of class 'Collaboration'. + * @generated + */ + Collaboration createCollaboration(); + + /** + * Returns a new object of class 'Connector'. + * + * + * @return a new object of class 'Connector'. + * @generated + */ + Connector createConnector(); + + /** + * Returns a new object of class 'Redefinable Template Signature'. + * + * + * @return a new object of class 'Redefinable Template Signature'. + * @generated + */ + RedefinableTemplateSignature createRedefinableTemplateSignature(); + + /** + * Returns a new object of class 'Classifier Template Parameter'. + * + * + * @return a new object of class 'Classifier Template Parameter'. + * @generated + */ + ClassifierTemplateParameter createClassifierTemplateParameter(); + + /** + * Returns a new object of class 'Interface Realization'. + * + * + * @return a new object of class 'Interface Realization'. + * @generated + */ + InterfaceRealization createInterfaceRealization(); + + /** + * Returns a new object of class 'Extension'. + * + * + * @return a new object of class 'Extension'. + * @generated + */ + Extension createExtension(); + + /** + * Returns a new object of class 'Extension End'. + * + * + * @return a new object of class 'Extension End'. + * @generated + */ + ExtensionEnd createExtensionEnd(); + + /** + * Returns a new object of class 'String Expression'. + * + * + * @return a new object of class 'String Expression'. + * @generated + */ + StringExpression createStringExpression(); + + /** + * Returns a new object of class 'Expression'. + * + * + * @return a new object of class 'Expression'. + * @generated + */ + Expression createExpression(); + + /** + * Returns a new object of class 'Literal Integer'. + * + * + * @return a new object of class 'Literal Integer'. + * @generated + */ + LiteralInteger createLiteralInteger(); + + /** + * Returns a new object of class 'Literal String'. + * + * + * @return a new object of class 'Literal String'. + * @generated + */ + LiteralString createLiteralString(); + + /** + * Returns a new object of class 'Literal Boolean'. + * + * + * @return a new object of class 'Literal Boolean'. + * @generated + */ + LiteralBoolean createLiteralBoolean(); + + /** + * Returns a new object of class 'Literal Null'. + * + * + * @return a new object of class 'Literal Null'. + * @generated + */ + LiteralNull createLiteralNull(); + + /** + * Returns a new object of class 'Slot'. + * + * + * @return a new object of class 'Slot'. + * @generated + */ + Slot createSlot(); + + /** + * Returns a new object of class 'Instance Specification'. + * + * + * @return a new object of class 'Instance Specification'. + * @generated + */ + InstanceSpecification createInstanceSpecification(); + + /** + * Returns a new object of class 'Enumeration'. + * + * + * @return a new object of class 'Enumeration'. + * @generated + */ + Enumeration createEnumeration(); + + /** + * Returns a new object of class 'Enumeration Literal'. + * + * + * @return a new object of class 'Enumeration Literal'. + * @generated + */ + EnumerationLiteral createEnumerationLiteral(); + + /** + * Returns a new object of class 'Primitive Type'. + * + * + * @return a new object of class 'Primitive Type'. + * @generated + */ + PrimitiveType createPrimitiveType(); + + /** + * Returns a new object of class 'Instance Value'. + * + * + * @return a new object of class 'Instance Value'. + * @generated + */ + InstanceValue createInstanceValue(); + + /** + * Returns a new object of class 'Literal Unlimited Natural'. + * + * + * @return a new object of class 'Literal Unlimited Natural'. + * @generated + */ + LiteralUnlimitedNatural createLiteralUnlimitedNatural(); + + /** + * Returns a new object of class 'Opaque Behavior'. + * + * + * @return a new object of class 'Opaque Behavior'. + * @generated + */ + OpaqueBehavior createOpaqueBehavior(); + + /** + * Returns a new object of class 'Function Behavior'. + * + * + * @return a new object of class 'Function Behavior'. + * @generated + */ + FunctionBehavior createFunctionBehavior(); + + /** + * Returns a new object of class 'Actor'. + * + * + * @return a new object of class 'Actor'. + * @generated + */ + Actor createActor(); + + /** + * Returns a new object of class 'Usage'. + * + * + * @return a new object of class 'Usage'. + * @generated + */ + Usage createUsage(); + + /** + * Returns a new object of class 'Message'. + * + * + * @return a new object of class 'Message'. + * @generated + */ + Message createMessage(); + + /** + * Returns a new object of class 'Interaction'. + * + * + * @return a new object of class 'Interaction'. + * @generated + */ + Interaction createInteraction(); + + /** + * Returns a new object of class 'Lifeline'. + * + * + * @return a new object of class 'Lifeline'. + * @generated + */ + Lifeline createLifeline(); + + /** + * Returns a new object of class 'Part Decomposition'. + * + * + * @return a new object of class 'Part Decomposition'. + * @generated + */ + PartDecomposition createPartDecomposition(); + + /** + * Returns a new object of class 'Interaction Use'. + * + * + * @return a new object of class 'Interaction Use'. + * @generated + */ + InteractionUse createInteractionUse(); + + /** + * Returns a new object of class 'Gate'. + * + * + * @return a new object of class 'Gate'. + * @generated + */ + Gate createGate(); + + /** + * Returns a new object of class 'Action'. + * + * + * @return a new object of class 'Action'. + * @generated + */ + Action createAction(); + + /** + * Returns a new object of class 'Activity Edge'. + * + * + * @return a new object of class 'Activity Edge'. + * @generated + */ + ActivityEdge createActivityEdge(); + + /** + * Returns a new object of class 'Activity'. + * + * + * @return a new object of class 'Activity'. + * @generated + */ + Activity createActivity(); + + /** + * Returns a new object of class 'Activity Partition'. + * + * + * @return a new object of class 'Activity Partition'. + * @generated + */ + ActivityPartition createActivityPartition(); + + /** + * Returns a new object of class 'Structured Activity Node'. + * + * + * @return a new object of class 'Structured Activity Node'. + * @generated + */ + StructuredActivityNode createStructuredActivityNode(); + + /** + * Returns a new object of class 'Variable'. + * + * + * @return a new object of class 'Variable'. + * @generated + */ + Variable createVariable(); + + /** + * Returns a new object of class 'Interruptible Activity Region'. + * + * + * @return a new object of class 'Interruptible Activity Region'. + * @generated + */ + InterruptibleActivityRegion createInterruptibleActivityRegion(); + + /** + * Returns a new object of class 'Exception Handler'. + * + * + * @return a new object of class 'Exception Handler'. + * @generated + */ + ExceptionHandler createExceptionHandler(); + + /** + * Returns a new object of class 'Output Pin'. + * + * + * @return a new object of class 'Output Pin'. + * @generated + */ + OutputPin createOutputPin(); + + /** + * Returns a new object of class 'Pin'. + * + * + * @return a new object of class 'Pin'. + * @generated + */ + Pin createPin(); + + /** + * Returns a new object of class 'Input Pin'. + * + * + * @return a new object of class 'Input Pin'. + * @generated + */ + InputPin createInputPin(); + + /** + * Returns a new object of class 'General Ordering'. + * + * + * @return a new object of class 'General Ordering'. + * @generated + */ + GeneralOrdering createGeneralOrdering(); + + /** + * Returns a new object of class 'Interaction Operand'. + * + * + * @return a new object of class 'Interaction Operand'. + * @generated + */ + InteractionOperand createInteractionOperand(); + + /** + * Returns a new object of class 'Interaction Constraint'. + * + * + * @return a new object of class 'Interaction Constraint'. + * @generated + */ + InteractionConstraint createInteractionConstraint(); + + /** + * Returns a new object of class 'Execution Occurrence Specification'. + * + * + * @return a new object of class 'Execution Occurrence Specification'. + * @generated + */ + ExecutionOccurrenceSpecification createExecutionOccurrenceSpecification(); + + /** + * Returns a new object of class 'Execution Event'. + * + * + * @return a new object of class 'Execution Event'. + * @generated + */ + ExecutionEvent createExecutionEvent(); + + /** + * Returns a new object of class 'State Invariant'. + * + * + * @return a new object of class 'State Invariant'. + * @generated + */ + StateInvariant createStateInvariant(); + + /** + * Returns a new object of class 'Action Execution Specification'. + * + * + * @return a new object of class 'Action Execution Specification'. + * @generated + */ + ActionExecutionSpecification createActionExecutionSpecification(); + + /** + * Returns a new object of class 'Behavior Execution Specification'. + * + * + * @return a new object of class 'Behavior Execution Specification'. + * @generated + */ + BehaviorExecutionSpecification createBehaviorExecutionSpecification(); + + /** + * Returns a new object of class 'Creation Event'. + * + * + * @return a new object of class 'Creation Event'. + * @generated + */ + CreationEvent createCreationEvent(); + + /** + * Returns a new object of class 'Destruction Event'. + * + * + * @return a new object of class 'Destruction Event'. + * @generated + */ + DestructionEvent createDestructionEvent(); + + /** + * Returns a new object of class 'Send Operation Event'. + * + * + * @return a new object of class 'Send Operation Event'. + * @generated + */ + SendOperationEvent createSendOperationEvent(); + + /** + * Returns a new object of class 'Send Signal Event'. + * + * + * @return a new object of class 'Send Signal Event'. + * @generated + */ + SendSignalEvent createSendSignalEvent(); + + /** + * Returns a new object of class 'Message Occurrence Specification'. + * + * + * @return a new object of class 'Message Occurrence Specification'. + * @generated + */ + MessageOccurrenceSpecification createMessageOccurrenceSpecification(); + + /** + * Returns a new object of class 'Combined Fragment'. + * + * + * @return a new object of class 'Combined Fragment'. + * @generated + */ + CombinedFragment createCombinedFragment(); + + /** + * Returns a new object of class 'Continuation'. + * + * + * @return a new object of class 'Continuation'. + * @generated + */ + Continuation createContinuation(); + + /** + * Returns a new object of class 'Consider Ignore Fragment'. + * + * + * @return a new object of class 'Consider Ignore Fragment'. + * @generated + */ + ConsiderIgnoreFragment createConsiderIgnoreFragment(); + + /** + * Returns a new object of class 'Call Event'. + * + * + * @return a new object of class 'Call Event'. + * @generated + */ + CallEvent createCallEvent(); + + /** + * Returns a new object of class 'Change Event'. + * + * + * @return a new object of class 'Change Event'. + * @generated + */ + ChangeEvent createChangeEvent(); + + /** + * Returns a new object of class 'Signal Event'. + * + * + * @return a new object of class 'Signal Event'. + * @generated + */ + SignalEvent createSignalEvent(); + + /** + * Returns a new object of class 'Any Receive Event'. + * + * + * @return a new object of class 'Any Receive Event'. + * @generated + */ + AnyReceiveEvent createAnyReceiveEvent(); + + /** + * Returns a new object of class 'Create Object Action'. + * + * + * @return a new object of class 'Create Object Action'. + * @generated + */ + CreateObjectAction createCreateObjectAction(); + + /** + * Returns a new object of class 'Destroy Object Action'. + * + * + * @return a new object of class 'Destroy Object Action'. + * @generated + */ + DestroyObjectAction createDestroyObjectAction(); + + /** + * Returns a new object of class 'Test Identity Action'. + * + * + * @return a new object of class 'Test Identity Action'. + * @generated + */ + TestIdentityAction createTestIdentityAction(); + + /** + * Returns a new object of class 'Read Self Action'. + * + * + * @return a new object of class 'Read Self Action'. + * @generated + */ + ReadSelfAction createReadSelfAction(); + + /** + * Returns a new object of class 'Read Structural Feature Action'. + * + * + * @return a new object of class 'Read Structural Feature Action'. + * @generated + */ + ReadStructuralFeatureAction createReadStructuralFeatureAction(); + + /** + * Returns a new object of class 'Clear Structural Feature Action'. + * + * + * @return a new object of class 'Clear Structural Feature Action'. + * @generated + */ + ClearStructuralFeatureAction createClearStructuralFeatureAction(); + + /** + * Returns a new object of class 'Remove Structural Feature Value Action'. + * + * + * @return a new object of class 'Remove Structural Feature Value Action'. + * @generated + */ + RemoveStructuralFeatureValueAction createRemoveStructuralFeatureValueAction(); + + /** + * Returns a new object of class 'Add Structural Feature Value Action'. + * + * + * @return a new object of class 'Add Structural Feature Value Action'. + * @generated + */ + AddStructuralFeatureValueAction createAddStructuralFeatureValueAction(); + + /** + * Returns a new object of class 'Link End Data'. + * + * + * @return a new object of class 'Link End Data'. + * @generated + */ + LinkEndData createLinkEndData(); + + /** + * Returns a new object of class 'Qualifier Value'. + * + * + * @return a new object of class 'Qualifier Value'. + * @generated + */ + QualifierValue createQualifierValue(); + + /** + * Returns a new object of class 'Read Link Action'. + * + * + * @return a new object of class 'Read Link Action'. + * @generated + */ + ReadLinkAction createReadLinkAction(); + + /** + * Returns a new object of class 'Link End Creation Data'. + * + * + * @return a new object of class 'Link End Creation Data'. + * @generated + */ + LinkEndCreationData createLinkEndCreationData(); + + /** + * Returns a new object of class 'Create Link Action'. + * + * + * @return a new object of class 'Create Link Action'. + * @generated + */ + CreateLinkAction createCreateLinkAction(); + + /** + * Returns a new object of class 'Destroy Link Action'. + * + * + * @return a new object of class 'Destroy Link Action'. + * @generated + */ + DestroyLinkAction createDestroyLinkAction(); + + /** + * Returns a new object of class 'Link End Destruction Data'. + * + * + * @return a new object of class 'Link End Destruction Data'. + * @generated + */ + LinkEndDestructionData createLinkEndDestructionData(); + + /** + * Returns a new object of class 'Clear Association Action'. + * + * + * @return a new object of class 'Clear Association Action'. + * @generated + */ + ClearAssociationAction createClearAssociationAction(); + + /** + * Returns a new object of class 'Broadcast Signal Action'. + * + * + * @return a new object of class 'Broadcast Signal Action'. + * @generated + */ + BroadcastSignalAction createBroadcastSignalAction(); + + /** + * Returns a new object of class 'Send Object Action'. + * + * + * @return a new object of class 'Send Object Action'. + * @generated + */ + SendObjectAction createSendObjectAction(); + + /** + * Returns a new object of class 'Value Specification Action'. + * + * + * @return a new object of class 'Value Specification Action'. + * @generated + */ + ValueSpecificationAction createValueSpecificationAction(); + + /** + * Returns a new object of class 'Time Expression'. + * + * + * @return a new object of class 'Time Expression'. + * @generated + */ + TimeExpression createTimeExpression(); + + /** + * Returns a new object of class 'Duration'. + * + * + * @return a new object of class 'Duration'. + * @generated + */ + Duration createDuration(); + + /** + * Returns a new object of class 'Time Observation Action'. + * + * + * @return a new object of class 'Time Observation Action'. + * @generated + */ + TimeObservationAction createTimeObservationAction(); + + /** + * Returns a new object of class 'Value Pin'. + * + * + * @return a new object of class 'Value Pin'. + * @generated + */ + ValuePin createValuePin(); + + /** + * Returns a new object of class 'Duration Interval'. + * + * + * @return a new object of class 'Duration Interval'. + * @generated + */ + DurationInterval createDurationInterval(); + + /** + * Returns a new object of class 'Interval'. + * + * + * @return a new object of class 'Interval'. + * @generated + */ + Interval createInterval(); + + /** + * Returns a new object of class 'Time Constraint'. + * + * + * @return a new object of class 'Time Constraint'. + * @generated + */ + TimeConstraint createTimeConstraint(); + + /** + * Returns a new object of class 'Interval Constraint'. + * + * + * @return a new object of class 'Interval Constraint'. + * @generated + */ + IntervalConstraint createIntervalConstraint(); + + /** + * Returns a new object of class 'Time Interval'. + * + * + * @return a new object of class 'Time Interval'. + * @generated + */ + TimeInterval createTimeInterval(); + + /** + * Returns a new object of class 'Duration Observation Action'. + * + * + * @return a new object of class 'Duration Observation Action'. + * @generated + */ + DurationObservationAction createDurationObservationAction(); + + /** + * Returns a new object of class 'Duration Constraint'. + * + * + * @return a new object of class 'Duration Constraint'. + * @generated + */ + DurationConstraint createDurationConstraint(); + + /** + * Returns a new object of class 'Opaque Action'. + * + * + * @return a new object of class 'Opaque Action'. + * @generated + */ + OpaqueAction createOpaqueAction(); + + /** + * Returns a new object of class 'Send Signal Action'. + * + * + * @return a new object of class 'Send Signal Action'. + * @generated + */ + SendSignalAction createSendSignalAction(); + + /** + * Returns a new object of class 'Call Operation Action'. + * + * + * @return a new object of class 'Call Operation Action'. + * @generated + */ + CallOperationAction createCallOperationAction(); + + /** + * Returns a new object of class 'Call Behavior Action'. + * + * + * @return a new object of class 'Call Behavior Action'. + * @generated + */ + CallBehaviorAction createCallBehaviorAction(); + + /** + * Returns a new object of class 'Information Item'. + * + * + * @return a new object of class 'Information Item'. + * @generated + */ + InformationItem createInformationItem(); + + /** + * Returns a new object of class 'Information Flow'. + * + * + * @return a new object of class 'Information Flow'. + * @generated + */ + InformationFlow createInformationFlow(); + + /** + * Returns a new object of class 'Model'. + * + * + * @return a new object of class 'Model'. + * @generated + */ + Model createModel(); + + /** + * Returns a new object of class 'Read Variable Action'. + * + * + * @return a new object of class 'Read Variable Action'. + * @generated + */ + ReadVariableAction createReadVariableAction(); + + /** + * Returns a new object of class 'Clear Variable Action'. + * + * + * @return a new object of class 'Clear Variable Action'. + * @generated + */ + ClearVariableAction createClearVariableAction(); + + /** + * Returns a new object of class 'Add Variable Value Action'. + * + * + * @return a new object of class 'Add Variable Value Action'. + * @generated + */ + AddVariableValueAction createAddVariableValueAction(); + + /** + * Returns a new object of class 'Remove Variable Value Action'. + * + * + * @return a new object of class 'Remove Variable Value Action'. + * @generated + */ + RemoveVariableValueAction createRemoveVariableValueAction(); + + /** + * Returns a new object of class 'Raise Exception Action'. + * + * + * @return a new object of class 'Raise Exception Action'. + * @generated + */ + RaiseExceptionAction createRaiseExceptionAction(); + + /** + * Returns a new object of class 'Action Input Pin'. + * + * + * @return a new object of class 'Action Input Pin'. + * @generated + */ + ActionInputPin createActionInputPin(); + + /** + * Returns a new object of class 'Read Extent Action'. + * + * + * @return a new object of class 'Read Extent Action'. + * @generated + */ + ReadExtentAction createReadExtentAction(); + + /** + * Returns a new object of class 'Reclassify Object Action'. + * + * + * @return a new object of class 'Reclassify Object Action'. + * @generated + */ + ReclassifyObjectAction createReclassifyObjectAction(); + + /** + * Returns a new object of class 'Read Is Classified Object Action'. + * + * + * @return a new object of class 'Read Is Classified Object Action'. + * @generated + */ + ReadIsClassifiedObjectAction createReadIsClassifiedObjectAction(); + + /** + * Returns a new object of class 'Start Classifier Behavior Action'. + * + * + * @return a new object of class 'Start Classifier Behavior Action'. + * @generated + */ + StartClassifierBehaviorAction createStartClassifierBehaviorAction(); + + /** + * Returns a new object of class 'Read Link Object End Action'. + * + * + * @return a new object of class 'Read Link Object End Action'. + * @generated + */ + ReadLinkObjectEndAction createReadLinkObjectEndAction(); + + /** + * Returns a new object of class 'Read Link Object End Qualifier Action'. + * + * + * @return a new object of class 'Read Link Object End Qualifier Action'. + * @generated + */ + ReadLinkObjectEndQualifierAction createReadLinkObjectEndQualifierAction(); + + /** + * Returns a new object of class 'Create Link Object Action'. + * + * + * @return a new object of class 'Create Link Object Action'. + * @generated + */ + CreateLinkObjectAction createCreateLinkObjectAction(); + + /** + * Returns a new object of class 'Accept Event Action'. + * + * + * @return a new object of class 'Accept Event Action'. + * @generated + */ + AcceptEventAction createAcceptEventAction(); + + /** + * Returns a new object of class 'Accept Call Action'. + * + * + * @return a new object of class 'Accept Call Action'. + * @generated + */ + AcceptCallAction createAcceptCallAction(); + + /** + * Returns a new object of class 'Reply Action'. + * + * + * @return a new object of class 'Reply Action'. + * @generated + */ + ReplyAction createReplyAction(); + + /** + * Returns a new object of class 'Unmarshall Action'. + * + * + * @return a new object of class 'Unmarshall Action'. + * @generated + */ + UnmarshallAction createUnmarshallAction(); + + /** + * Returns a new object of class 'Control Flow'. + * + * + * @return a new object of class 'Control Flow'. + * @generated + */ + ControlFlow createControlFlow(); + + /** + * Returns a new object of class 'Initial Node'. + * + * + * @return a new object of class 'Initial Node'. + * @generated + */ + InitialNode createInitialNode(); + + /** + * Returns a new object of class 'Activity Parameter Node'. + * + * + * @return a new object of class 'Activity Parameter Node'. + * @generated + */ + ActivityParameterNode createActivityParameterNode(); + + /** + * Returns a new object of class 'Fork Node'. + * + * + * @return a new object of class 'Fork Node'. + * @generated + */ + ForkNode createForkNode(); + + /** + * Returns a new object of class 'Flow Final Node'. + * + * + * @return a new object of class 'Flow Final Node'. + * @generated + */ + FlowFinalNode createFlowFinalNode(); + + /** + * Returns a new object of class 'Central Buffer Node'. + * + * + * @return a new object of class 'Central Buffer Node'. + * @generated + */ + CentralBufferNode createCentralBufferNode(); + + /** + * Returns a new object of class 'Merge Node'. + * + * + * @return a new object of class 'Merge Node'. + * @generated + */ + MergeNode createMergeNode(); + + /** + * Returns a new object of class 'Decision Node'. + * + * + * @return a new object of class 'Decision Node'. + * @generated + */ + DecisionNode createDecisionNode(); + + /** + * Returns a new object of class 'Activity Final Node'. + * + * + * @return a new object of class 'Activity Final Node'. + * @generated + */ + ActivityFinalNode createActivityFinalNode(); + + /** + * Returns a new object of class 'Join Node'. + * + * + * @return a new object of class 'Join Node'. + * @generated + */ + JoinNode createJoinNode(); + + /** + * Returns a new object of class 'Data Store Node'. + * + * + * @return a new object of class 'Data Store Node'. + * @generated + */ + DataStoreNode createDataStoreNode(); + + /** + * Returns a new object of class 'Object Flow'. + * + * + * @return a new object of class 'Object Flow'. + * @generated + */ + ObjectFlow createObjectFlow(); + + /** + * Returns a new object of class 'Sequence Node'. + * + * + * @return a new object of class 'Sequence Node'. + * @generated + */ + SequenceNode createSequenceNode(); + + /** + * Returns a new object of class 'Conditional Node'. + * + * + * @return a new object of class 'Conditional Node'. + * @generated + */ + ConditionalNode createConditionalNode(); + + /** + * Returns a new object of class 'Clause'. + * + * + * @return a new object of class 'Clause'. + * @generated + */ + Clause createClause(); + + /** + * Returns a new object of class 'Loop Node'. + * + * + * @return a new object of class 'Loop Node'. + * @generated + */ + LoopNode createLoopNode(); + + /** + * Returns a new object of class 'Expansion Node'. + * + * + * @return a new object of class 'Expansion Node'. + * @generated + */ + ExpansionNode createExpansionNode(); + + /** + * Returns a new object of class 'Expansion Region'. + * + * + * @return a new object of class 'Expansion Region'. + * @generated + */ + ExpansionRegion createExpansionRegion(); + + /** + * Returns a new object of class 'Component Realization'. + * + * + * @return a new object of class 'Component Realization'. + * @generated + */ + ComponentRealization createComponentRealization(); + + /** + * Returns a new object of class 'Component'. + * + * + * @return a new object of class 'Component'. + * @generated + */ + Component createComponent(); + + /** + * Returns a new object of class 'Node'. + * + * + * @return a new object of class 'Node'. + * @generated + */ + Node createNode(); + + /** + * Returns a new object of class 'Device'. + * + * + * @return a new object of class 'Device'. + * @generated + */ + Device createDevice(); + + /** + * Returns a new object of class 'Execution Environment'. + * + * + * @return a new object of class 'Execution Environment'. + * @generated + */ + ExecutionEnvironment createExecutionEnvironment(); + + /** + * Returns a new object of class 'Communication Path'. + * + * + * @return a new object of class 'Communication Path'. + * @generated + */ + CommunicationPath createCommunicationPath(); + + /** + * Returns a new object of class 'Final State'. + * + * + * @return a new object of class 'Final State'. + * @generated + */ + FinalState createFinalState(); + + /** + * Returns a new object of class 'Time Event'. + * + * + * @return a new object of class 'Time Event'. + * @generated + */ + TimeEvent createTimeEvent(); + + /** + * Returns a new object of class 'Protocol Transition'. + * + * + * @return a new object of class 'Protocol Transition'. + * @generated + */ + ProtocolTransition createProtocolTransition(); + + /** + * Returns a new object of class 'Association Class'. + * + * + * @return a new object of class 'Association Class'. + * @generated + */ + AssociationClass createAssociationClass(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + UMLPackage getUMLPackage(); + +} //UMLFactory diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java new file mode 100644 index 00000000..38dc6cfa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPackage.java @@ -0,0 +1,66733 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLPackage.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcorePackage; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.eclipse.uml2.uml.UMLFactory + * @model kind="package" + * @generated + */ +public interface UMLPackage + extends EPackage { + + /** + * The package name. + * + * + * @generated + */ + String eNAME = "uml"; //$NON-NLS-1$ + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.eclipse.org/uml2/2.0.0/UML"; //$NON-NLS-1$ + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "uml"; //$NON-NLS-1$ + + /** + * The singleton instance of the package. + * + * + * @generated + */ + UMLPackage eINSTANCE = org.eclipse.uml2.uml.internal.impl.UMLPackageImpl + .init(); + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ElementImpl Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getElement() + * @generated + */ + int ELEMENT = 1; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__EANNOTATIONS = EcorePackage.EMODEL_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNED_ELEMENT = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNER = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNED_COMMENT = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_FEATURE_COUNT = EcorePackage.EMODEL_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CommentImpl Comment}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CommentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getComment() + * @generated + */ + int COMMENT = 0; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__BODY = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__ANNOTATED_ELEMENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comment' class. + * + * + * @generated + * @ordered + */ + int COMMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RelationshipImpl Relationship}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RelationshipImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRelationship() + * @generated + */ + int RELATIONSHIP = 3; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__RELATED_ELEMENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Relationship' class. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl Directed Relationship}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDirectedRelationship() + * @generated + */ + int DIRECTED_RELATIONSHIP = 2; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__EANNOTATIONS = RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__OWNED_COMMENT = RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__SOURCE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP__TARGET = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Directed Relationship' class. + * + * + * @generated + * @ordered + */ + int DIRECTED_RELATIONSHIP_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl Named Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.NamedElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getNamedElement() + * @generated + */ + int NAMED_ELEMENT = 7; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAME = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__VISIBILITY = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__QUALIFIED_NAME = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__CLIENT_DEPENDENCY = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAMESPACE = ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAME_EXPRESSION = ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl Packageable Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PackageableElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackageableElement() + * @generated + */ + int PACKAGEABLE_ELEMENT = 9; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Packageable Element' class. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationImpl Value Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ValueSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValueSpecification() + * @generated + */ + int VALUE_SPECIFICATION = 5; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION__TYPE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Value Specification' class. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralSpecificationImpl Literal Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LiteralSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralSpecification() + * @generated + */ + int LITERAL_SPECIFICATION = 4; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The number of structural features of the 'Literal Specification' class. + * + * + * @generated + * @ordered + */ + int LITERAL_SPECIFICATION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TypedElementImpl Typed Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TypedElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTypedElement() + * @generated + */ + int TYPED_ELEMENT = 6; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Typed Element' class. + * + * + * @generated + * @ordered + */ + int TYPED_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl Dependency}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DependencyImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDependency() + * @generated + */ + int DEPENDENCY = 8; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__RELATED_ELEMENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__SOURCE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__TARGET = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__SUPPLIER = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__CLIENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Dependency' class. + * + * + * @generated + * @ordered + */ + int DEPENDENCY_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ParameterableElementImpl Parameterable Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ParameterableElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterableElement() + * @generated + */ + int PARAMETERABLE_ELEMENT = 10; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Parameterable Element' class. + * + * + * @generated + * @ordered + */ + int PARAMETERABLE_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl Template Parameter}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateParameter() + * @generated + */ + int TEMPLATE_PARAMETER = 11; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Signature' container reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__SIGNATURE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Parametered Element' containment reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Default' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__DEFAULT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Default' containment reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__OWNED_DEFAULT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Parametered Element' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = ELEMENT_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Template Parameter' class. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl Template Signature}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateSignature() + * @generated + */ + int TEMPLATE_SIGNATURE = 12; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__PARAMETER = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Template' container reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__TEMPLATE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE__OWNED_PARAMETER = ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Template Signature' class. + * + * + * @generated + * @ordered + */ + int TEMPLATE_SIGNATURE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl Templateable Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateableElement() + * @generated + */ + int TEMPLATEABLE_ELEMENT = 13; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Templateable Element' class. + * + * + * @generated + * @ordered + */ + int TEMPLATEABLE_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl Template Binding}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateBinding() + * @generated + */ + int TEMPLATE_BINDING = 14; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__OWNED_ELEMENT = DIRECTED_RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__OWNER = DIRECTED_RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__OWNED_COMMENT = DIRECTED_RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__RELATED_ELEMENT = DIRECTED_RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__SOURCE = DIRECTED_RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__TARGET = DIRECTED_RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Signature' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__SIGNATURE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__PARAMETER_SUBSTITUTION = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Bound Element' container reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING__BOUND_ELEMENT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Template Binding' class. + * + * + * @generated + * @ordered + */ + int TEMPLATE_BINDING_FEATURE_COUNT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl Template Parameter Substitution}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTemplateParameterSubstitution() + * @generated + */ + int TEMPLATE_PARAMETER_SUBSTITUTION = 15; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Formal' reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Actual' reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Actual' containment reference list. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Template Binding' container reference. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING = ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Template Parameter Substitution' class. + * + * + * @generated + * @ordered + */ + int TEMPLATE_PARAMETER_SUBSTITUTION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl Namespace}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.NamespaceImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getNamespace() + * @generated + */ + int NAMESPACE = 16; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__ELEMENT_IMPORT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__PACKAGE_IMPORT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_RULE = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__MEMBER = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__IMPORTED_MEMBER = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_MEMBER = NAMED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Namespace' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl Element Import}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ElementImportImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getElementImport() + * @generated + */ + int ELEMENT_IMPORT = 17; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__OWNED_ELEMENT = DIRECTED_RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__OWNER = DIRECTED_RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__OWNED_COMMENT = DIRECTED_RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__RELATED_ELEMENT = DIRECTED_RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__SOURCE = DIRECTED_RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__TARGET = DIRECTED_RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__VISIBILITY = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Alias' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__ALIAS = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__IMPORTED_ELEMENT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Importing Namespace' container reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__IMPORTING_NAMESPACE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Element Import' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT_FEATURE_COUNT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl Package Import}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PackageImportImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackageImport() + * @generated + */ + int PACKAGE_IMPORT = 18; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__OWNED_ELEMENT = DIRECTED_RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__OWNER = DIRECTED_RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__OWNED_COMMENT = DIRECTED_RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__RELATED_ELEMENT = DIRECTED_RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__SOURCE = DIRECTED_RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__TARGET = DIRECTED_RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__VISIBILITY = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Imported Package' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__IMPORTED_PACKAGE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Importing Namespace' container reference. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT__IMPORTING_NAMESPACE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Package Import' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_IMPORT_FEATURE_COUNT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PackageImpl Package}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PackageImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackage() + * @generated + */ + int PACKAGE = 19; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__EANNOTATIONS = NAMESPACE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__VISIBILITY = NAMESPACE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__NAMESPACE = NAMESPACE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_RULE = NAMESPACE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNING_TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__TEMPLATE_BINDING = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_TEMPLATE_SIGNATURE = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Package Merge' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__PACKAGE_MERGE = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Packaged Element' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__PACKAGED_ELEMENT = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Owned Type' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_TYPE = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Nested Package' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__NESTED_PACKAGE = NAMESPACE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Nesting Package' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__NESTING_PACKAGE = NAMESPACE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Applied Profile' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__APPLIED_PROFILE = NAMESPACE_FEATURE_COUNT + 9; + + /** + * The number of structural features of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 10; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl Package Merge}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PackageMergeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPackageMerge() + * @generated + */ + int PACKAGE_MERGE = 20; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__OWNED_ELEMENT = DIRECTED_RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__OWNER = DIRECTED_RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__OWNED_COMMENT = DIRECTED_RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__RELATED_ELEMENT = DIRECTED_RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__SOURCE = DIRECTED_RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__TARGET = DIRECTED_RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Merged Package' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__MERGED_PACKAGE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Receiving Package' container reference. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE__RECEIVING_PACKAGE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Package Merge' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_MERGE_FEATURE_COUNT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TypeImpl Type}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TypeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getType() + * @generated + */ + int TYPE = 21; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPE__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TYPE__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TYPE__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int TYPE__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int TYPE__PACKAGE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Type' class. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl Profile Application}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProfileApplication() + * @generated + */ + int PROFILE_APPLICATION = 22; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__EANNOTATIONS = PACKAGE_IMPORT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__OWNED_ELEMENT = PACKAGE_IMPORT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__OWNER = PACKAGE_IMPORT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__OWNED_COMMENT = PACKAGE_IMPORT__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__RELATED_ELEMENT = PACKAGE_IMPORT__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__SOURCE = PACKAGE_IMPORT__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__TARGET = PACKAGE_IMPORT__TARGET; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__VISIBILITY = PACKAGE_IMPORT__VISIBILITY; + + /** + * The feature id for the 'Imported Package' reference. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__IMPORTED_PACKAGE = PACKAGE_IMPORT__IMPORTED_PACKAGE; + + /** + * The feature id for the 'Importing Namespace' container reference. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__IMPORTING_NAMESPACE = PACKAGE_IMPORT__IMPORTING_NAMESPACE; + + /** + * The feature id for the 'Imported Profile' reference. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__IMPORTED_PROFILE = PACKAGE_IMPORT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Strict' attribute. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION__IS_STRICT = PACKAGE_IMPORT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Profile Application' class. + * + * + * @generated + * @ordered + */ + int PROFILE_APPLICATION_FEATURE_COUNT = PACKAGE_IMPORT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl Profile}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ProfileImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProfile() + * @generated + */ + int PROFILE = 23; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__EANNOTATIONS = PACKAGE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_ELEMENT = PACKAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNER = PACKAGE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_COMMENT = PACKAGE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROFILE__NAME = PACKAGE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PROFILE__VISIBILITY = PACKAGE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PROFILE__QUALIFIED_NAME = PACKAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__CLIENT_DEPENDENCY = PACKAGE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PROFILE__NAMESPACE = PACKAGE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PROFILE__NAME_EXPRESSION = PACKAGE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__ELEMENT_IMPORT = PACKAGE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__PACKAGE_IMPORT = PACKAGE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_RULE = PACKAGE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__MEMBER = PACKAGE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__IMPORTED_MEMBER = PACKAGE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_MEMBER = PACKAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PROFILE__TEMPLATE_PARAMETER = PACKAGE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNING_TEMPLATE_PARAMETER = PACKAGE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__TEMPLATE_BINDING = PACKAGE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_TEMPLATE_SIGNATURE = PACKAGE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Package Merge' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__PACKAGE_MERGE = PACKAGE__PACKAGE_MERGE; + + /** + * The feature id for the 'Packaged Element' containment reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__PACKAGED_ELEMENT = PACKAGE__PACKAGED_ELEMENT; + + /** + * The feature id for the 'Owned Type' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_TYPE = PACKAGE__OWNED_TYPE; + + /** + * The feature id for the 'Nested Package' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__NESTED_PACKAGE = PACKAGE__NESTED_PACKAGE; + + /** + * The feature id for the 'Nesting Package' reference. + * + * + * @generated + * @ordered + */ + int PROFILE__NESTING_PACKAGE = PACKAGE__NESTING_PACKAGE; + + /** + * The feature id for the 'Applied Profile' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__APPLIED_PROFILE = PACKAGE__APPLIED_PROFILE; + + /** + * The feature id for the 'Owned Stereotype' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__OWNED_STEREOTYPE = PACKAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Metaclass Reference' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__METACLASS_REFERENCE = PACKAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Metamodel Reference' reference list. + * + * + * @generated + * @ordered + */ + int PROFILE__METAMODEL_REFERENCE = PACKAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Profile' class. + * + * + * @generated + * @ordered + */ + int PROFILE_FEATURE_COUNT = PACKAGE_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl Classifier}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClassifierImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClassifier() + * @generated + */ + int CLASSIFIER = 27; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__EANNOTATIONS = NAMESPACE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__VISIBILITY = NAMESPACE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__NAMESPACE = NAMESPACE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_RULE = NAMESPACE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_LEAF = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__REDEFINED_ELEMENT = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__REDEFINITION_CONTEXT = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNING_TEMPLATE_PARAMETER = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__PACKAGE = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__TEMPLATE_BINDING = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_TEMPLATE_SIGNATURE = NAMESPACE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_ABSTRACT = NAMESPACE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__GENERALIZATION = NAMESPACE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__POWERTYPE_EXTENT = NAMESPACE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__FEATURE = NAMESPACE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__INHERITED_MEMBER = NAMESPACE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__REDEFINED_CLASSIFIER = NAMESPACE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__GENERAL = NAMESPACE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_USE_CASE = NAMESPACE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__USE_CASE = NAMESPACE_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__SUBSTITUTION = NAMESPACE_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__ATTRIBUTE = NAMESPACE_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__REPRESENTATION = NAMESPACE_FEATURE_COUNT + 19; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__COLLABORATION_USE = NAMESPACE_FEATURE_COUNT + 20; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_SIGNATURE = NAMESPACE_FEATURE_COUNT + 21; + + /** + * The number of structural features of the 'Classifier' class. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 22; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl Structured Classifier}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuredClassifier() + * @generated + */ + int STRUCTURED_CLASSIFIER = 78; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__PART = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__ROLE = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER__OWNED_CONNECTOR = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Structured Classifier' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_CLASSIFIER_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl Encapsulated Classifier}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEncapsulatedClassifier() + * @generated + */ + int ENCAPSULATED_CLASSIFIER = 83; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__EANNOTATIONS = STRUCTURED_CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_ELEMENT = STRUCTURED_CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNER = STRUCTURED_CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_COMMENT = STRUCTURED_CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__NAME = STRUCTURED_CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__VISIBILITY = STRUCTURED_CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__QUALIFIED_NAME = STRUCTURED_CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY = STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__NAMESPACE = STRUCTURED_CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION = STRUCTURED_CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT = STRUCTURED_CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT = STRUCTURED_CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_RULE = STRUCTURED_CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__MEMBER = STRUCTURED_CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__IMPORTED_MEMBER = STRUCTURED_CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_MEMBER = STRUCTURED_CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__IS_LEAF = STRUCTURED_CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__REDEFINED_ELEMENT = STRUCTURED_CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__REDEFINITION_CONTEXT = STRUCTURED_CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER = STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER = STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__PACKAGE = STRUCTURED_CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING = STRUCTURED_CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE = STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__IS_ABSTRACT = STRUCTURED_CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__GENERALIZATION = STRUCTURED_CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT = STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__FEATURE = STRUCTURED_CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__INHERITED_MEMBER = STRUCTURED_CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER = STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__GENERAL = STRUCTURED_CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE = STRUCTURED_CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__USE_CASE = STRUCTURED_CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__SUBSTITUTION = STRUCTURED_CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__ATTRIBUTE = STRUCTURED_CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__REPRESENTATION = STRUCTURED_CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__COLLABORATION_USE = STRUCTURED_CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE = STRUCTURED_CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE = STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__PART = STRUCTURED_CLASSIFIER__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__ROLE = STRUCTURED_CLASSIFIER__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR = STRUCTURED_CLASSIFIER__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER__OWNED_PORT = STRUCTURED_CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Encapsulated Classifier' class. + * + * + * @generated + * @ordered + */ + int ENCAPSULATED_CLASSIFIER_FEATURE_COUNT = STRUCTURED_CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassImpl Class}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClassImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClass_() + * @generated + */ + int CLASS = 25; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__EANNOTATIONS = ENCAPSULATED_CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_ELEMENT = ENCAPSULATED_CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNER = ENCAPSULATED_CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_COMMENT = ENCAPSULATED_CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__NAME = ENCAPSULATED_CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__VISIBILITY = ENCAPSULATED_CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__QUALIFIED_NAME = ENCAPSULATED_CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__CLIENT_DEPENDENCY = ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLASS__NAMESPACE = ENCAPSULATED_CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CLASS__NAME_EXPRESSION = ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__ELEMENT_IMPORT = ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__PACKAGE_IMPORT = ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_RULE = ENCAPSULATED_CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__MEMBER = ENCAPSULATED_CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__IMPORTED_MEMBER = ENCAPSULATED_CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_MEMBER = ENCAPSULATED_CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_LEAF = ENCAPSULATED_CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__REDEFINED_ELEMENT = ENCAPSULATED_CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__REDEFINITION_CONTEXT = ENCAPSULATED_CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CLASS__TEMPLATE_PARAMETER = ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNING_TEMPLATE_PARAMETER = ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int CLASS__PACKAGE = ENCAPSULATED_CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__TEMPLATE_BINDING = ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_TEMPLATE_SIGNATURE = ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_ABSTRACT = ENCAPSULATED_CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__GENERALIZATION = ENCAPSULATED_CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__POWERTYPE_EXTENT = ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__FEATURE = ENCAPSULATED_CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__INHERITED_MEMBER = ENCAPSULATED_CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__REDEFINED_CLASSIFIER = ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__GENERAL = ENCAPSULATED_CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_USE_CASE = ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__USE_CASE = ENCAPSULATED_CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__SUBSTITUTION = ENCAPSULATED_CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__ATTRIBUTE = ENCAPSULATED_CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int CLASS__REPRESENTATION = ENCAPSULATED_CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__COLLABORATION_USE = ENCAPSULATED_CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_SIGNATURE = ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_ATTRIBUTE = ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__PART = ENCAPSULATED_CLASSIFIER__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__ROLE = ENCAPSULATED_CLASSIFIER__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_CONNECTOR = ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_PORT = ENCAPSULATED_CLASSIFIER__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_BEHAVIOR = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int CLASS__CLASSIFIER_BEHAVIOR = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__INTERFACE_REALIZATION = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_TRIGGER = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_OPERATION = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__NESTED_CLASSIFIER = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__SUPER_CLASS = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_ACTIVE = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_RECEPTION = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__EXTENSION = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 9; + + /** + * The number of structural features of the 'Class' class. + * + * + * @generated + * @ordered + */ + int CLASS_FEATURE_COUNT = ENCAPSULATED_CLASSIFIER_FEATURE_COUNT + 10; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StereotypeImpl Stereotype}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StereotypeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStereotype() + * @generated + */ + int STEREOTYPE = 24; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__EANNOTATIONS = CLASS__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_COMMENT = CLASS__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__NAME = CLASS__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__VISIBILITY = CLASS__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__CLIENT_DEPENDENCY = CLASS__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__NAMESPACE = CLASS__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__NAME_EXPRESSION = CLASS__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__ELEMENT_IMPORT = CLASS__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__PACKAGE_IMPORT = CLASS__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_RULE = CLASS__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__IMPORTED_MEMBER = CLASS__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__IS_LEAF = CLASS__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__REDEFINED_ELEMENT = CLASS__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__REDEFINITION_CONTEXT = CLASS__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__TEMPLATE_PARAMETER = CLASS__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNING_TEMPLATE_PARAMETER = CLASS__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__PACKAGE = CLASS__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__TEMPLATE_BINDING = CLASS__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_TEMPLATE_SIGNATURE = CLASS__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__GENERALIZATION = CLASS__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__POWERTYPE_EXTENT = CLASS__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__INHERITED_MEMBER = CLASS__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__REDEFINED_CLASSIFIER = CLASS__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__GENERAL = CLASS__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_USE_CASE = CLASS__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__USE_CASE = CLASS__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__SUBSTITUTION = CLASS__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__ATTRIBUTE = CLASS__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__REPRESENTATION = CLASS__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__COLLABORATION_USE = CLASS__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_SIGNATURE = CLASS__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_ATTRIBUTE = CLASS__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__PART = CLASS__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__ROLE = CLASS__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_CONNECTOR = CLASS__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_PORT = CLASS__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_BEHAVIOR = CLASS__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__CLASSIFIER_BEHAVIOR = CLASS__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__INTERFACE_REALIZATION = CLASS__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_TRIGGER = CLASS__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_OPERATION = CLASS__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__NESTED_CLASSIFIER = CLASS__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__SUPER_CLASS = CLASS__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__IS_ACTIVE = CLASS__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__OWNED_RECEPTION = CLASS__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__EXTENSION = CLASS__EXTENSION; + + /** + * The feature id for the 'Icon' reference list. + * + * + * @generated + * @ordered + */ + int STEREOTYPE__ICON = CLASS_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Stereotype' class. + * + * + * @generated + * @ordered + */ + int STEREOTYPE_FEATURE_COUNT = CLASS_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl Behaviored Classifier}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehavioredClassifier() + * @generated + */ + int BEHAVIORED_CLASSIFIER = 26; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER__OWNED_TRIGGER = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Behaviored Classifier' class. + * + * + * @generated + * @ordered + */ + int BEHAVIORED_CLASSIFIER_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl Redefinable Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRedefinableElement() + * @generated + */ + int REDEFINABLE_ELEMENT = 28; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__IS_LEAF = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__REDEFINED_ELEMENT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Redefinable Element' class. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl Generalization}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.GeneralizationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralization() + * @generated + */ + int GENERALIZATION = 29; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__OWNED_ELEMENT = DIRECTED_RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__OWNER = DIRECTED_RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__OWNED_COMMENT = DIRECTED_RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__RELATED_ELEMENT = DIRECTED_RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__SOURCE = DIRECTED_RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__TARGET = DIRECTED_RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Is Substitutable' attribute. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__IS_SUBSTITUTABLE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__GENERAL = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Generalization Set' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__GENERALIZATION_SET = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Specific' container reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION__SPECIFIC = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Generalization' class. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_FEATURE_COUNT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl Generalization Set}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralizationSet() + * @generated + */ + int GENERALIZATION_SET = 30; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Is Covering' attribute. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__IS_COVERING = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Disjoint' attribute. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__IS_DISJOINT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Powertype' reference. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__POWERTYPE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Generalization' reference list. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET__GENERALIZATION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Generalization Set' class. + * + * + * @generated + * @ordered + */ + int GENERALIZATION_SET_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FeatureImpl Feature}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.FeatureImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFeature() + * @generated + */ + int FEATURE = 31; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNER = REDEFINABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__NAME = REDEFINABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int FEATURE__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_STATIC = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__FEATURING_CLASSIFIER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Feature' class. + * + * + * @generated + * @ordered + */ + int FEATURE_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl Use Case}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.UseCaseImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getUseCase() + * @generated + */ + int USE_CASE = 32; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__EANNOTATIONS = BEHAVIORED_CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_ELEMENT = BEHAVIORED_CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNER = BEHAVIORED_CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_COMMENT = BEHAVIORED_CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE__NAME = BEHAVIORED_CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE__VISIBILITY = BEHAVIORED_CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE__QUALIFIED_NAME = BEHAVIORED_CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__CLIENT_DEPENDENCY = BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__NAMESPACE = BEHAVIORED_CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__NAME_EXPRESSION = BEHAVIORED_CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__ELEMENT_IMPORT = BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__PACKAGE_IMPORT = BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_RULE = BEHAVIORED_CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__MEMBER = BEHAVIORED_CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__IMPORTED_MEMBER = BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_MEMBER = BEHAVIORED_CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE__IS_LEAF = BEHAVIORED_CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__REDEFINED_ELEMENT = BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__REDEFINITION_CONTEXT = BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__TEMPLATE_PARAMETER = BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNING_TEMPLATE_PARAMETER = BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__PACKAGE = BEHAVIORED_CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__TEMPLATE_BINDING = BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_TEMPLATE_SIGNATURE = BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE__IS_ABSTRACT = BEHAVIORED_CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__GENERALIZATION = BEHAVIORED_CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__POWERTYPE_EXTENT = BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__FEATURE = BEHAVIORED_CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__INHERITED_MEMBER = BEHAVIORED_CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__REDEFINED_CLASSIFIER = BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__GENERAL = BEHAVIORED_CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_USE_CASE = BEHAVIORED_CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__USE_CASE = BEHAVIORED_CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__SUBSTITUTION = BEHAVIORED_CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__ATTRIBUTE = BEHAVIORED_CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__REPRESENTATION = BEHAVIORED_CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__COLLABORATION_USE = BEHAVIORED_CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_SIGNATURE = BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_BEHAVIOR = BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE__CLASSIFIER_BEHAVIOR = BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__INTERFACE_REALIZATION = BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__OWNED_TRIGGER = BEHAVIORED_CLASSIFIER__OWNED_TRIGGER; + + /** + * The feature id for the 'Include' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__INCLUDE = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Extend' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__EXTEND = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Extension Point' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__EXTENSION_POINT = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Subject' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE__SUBJECT = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Use Case' class. + * + * + * @generated + * @ordered + */ + int USE_CASE_FEATURE_COUNT = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl Include}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.IncludeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInclude() + * @generated + */ + int INCLUDE = 33; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INCLUDE__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__RELATED_ELEMENT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__SOURCE = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE__TARGET = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Addition' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE__ADDITION = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Including Case' container reference. + * + * + * @generated + * @ordered + */ + int INCLUDE__INCLUDING_CASE = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Include' class. + * + * + * @generated + * @ordered + */ + int INCLUDE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl Extend}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExtendImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtend() + * @generated + */ + int EXTEND = 34; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXTEND__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTEND__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXTEND__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTEND__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXTEND__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXTEND__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__RELATED_ELEMENT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__SOURCE = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__TARGET = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Extended Case' reference. + * + * + * @generated + * @ordered + */ + int EXTEND__EXTENDED_CASE = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int EXTEND__CONDITION = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Extension Location' reference list. + * + * + * @generated + * @ordered + */ + int EXTEND__EXTENSION_LOCATION = NAMED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Extension' container reference. + * + * + * @generated + * @ordered + */ + int EXTEND__EXTENSION = NAMED_ELEMENT_FEATURE_COUNT + 6; + + /** + * The number of structural features of the 'Extend' class. + * + * + * @generated + * @ordered + */ + int EXTEND_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 7; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl Constraint}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConstraintImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConstraint() + * @generated + */ + int CONSTRAINT = 35; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Constrained Element' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__CONSTRAINED_ELEMENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__SPECIFICATION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__CONTEXT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Constraint' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionPointImpl Extension Point}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExtensionPointImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtensionPoint() + * @generated + */ + int EXTENSION_POINT = 36; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__OWNER = REDEFINABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__NAME = REDEFINABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Use Case' container reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT__USE_CASE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Extension Point' class. + * + * + * @generated + * @ordered + */ + int EXTENSION_POINT_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AbstractionImpl Abstraction}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AbstractionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAbstraction() + * @generated + */ + int ABSTRACTION = 39; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__EANNOTATIONS = DEPENDENCY__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__OWNED_ELEMENT = DEPENDENCY__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__OWNER = DEPENDENCY__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__OWNED_COMMENT = DEPENDENCY__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__NAME = DEPENDENCY__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__VISIBILITY = DEPENDENCY__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__QUALIFIED_NAME = DEPENDENCY__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__CLIENT_DEPENDENCY = DEPENDENCY__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__NAMESPACE = DEPENDENCY__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__NAME_EXPRESSION = DEPENDENCY__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__TEMPLATE_PARAMETER = DEPENDENCY__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__OWNING_TEMPLATE_PARAMETER = DEPENDENCY__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__RELATED_ELEMENT = DEPENDENCY__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__SOURCE = DEPENDENCY__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__TARGET = DEPENDENCY__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__SUPPLIER = DEPENDENCY__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__CLIENT = DEPENDENCY__CLIENT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int ABSTRACTION__MAPPING = DEPENDENCY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Abstraction' class. + * + * + * @generated + * @ordered + */ + int ABSTRACTION_FEATURE_COUNT = DEPENDENCY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RealizationImpl Realization}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RealizationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRealization() + * @generated + */ + int REALIZATION = 38; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__EANNOTATIONS = ABSTRACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__OWNED_ELEMENT = ABSTRACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REALIZATION__OWNER = ABSTRACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__OWNED_COMMENT = ABSTRACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REALIZATION__NAME = ABSTRACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REALIZATION__VISIBILITY = ABSTRACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REALIZATION__QUALIFIED_NAME = ABSTRACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__CLIENT_DEPENDENCY = ABSTRACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REALIZATION__NAMESPACE = ABSTRACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REALIZATION__NAME_EXPRESSION = ABSTRACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int REALIZATION__TEMPLATE_PARAMETER = ABSTRACTION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int REALIZATION__OWNING_TEMPLATE_PARAMETER = ABSTRACTION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__RELATED_ELEMENT = ABSTRACTION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__SOURCE = ABSTRACTION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__TARGET = ABSTRACTION__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__SUPPLIER = ABSTRACTION__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int REALIZATION__CLIENT = ABSTRACTION__CLIENT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int REALIZATION__MAPPING = ABSTRACTION__MAPPING; + + /** + * The number of structural features of the 'Realization' class. + * + * + * @generated + * @ordered + */ + int REALIZATION_FEATURE_COUNT = ABSTRACTION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl Substitution}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SubstitutionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSubstitution() + * @generated + */ + int SUBSTITUTION = 37; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__EANNOTATIONS = REALIZATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__OWNED_ELEMENT = REALIZATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__OWNER = REALIZATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__OWNED_COMMENT = REALIZATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__NAME = REALIZATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__VISIBILITY = REALIZATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__QUALIFIED_NAME = REALIZATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__CLIENT_DEPENDENCY = REALIZATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__NAMESPACE = REALIZATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__NAME_EXPRESSION = REALIZATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__TEMPLATE_PARAMETER = REALIZATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__OWNING_TEMPLATE_PARAMETER = REALIZATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__RELATED_ELEMENT = REALIZATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__SOURCE = REALIZATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__TARGET = REALIZATION__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__SUPPLIER = REALIZATION__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__CLIENT = REALIZATION__CLIENT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__MAPPING = REALIZATION__MAPPING; + + /** + * The feature id for the 'Contract' reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__CONTRACT = REALIZATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Substituting Classifier' container reference. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION__SUBSTITUTING_CLASSIFIER = REALIZATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Substitution' class. + * + * + * @generated + * @ordered + */ + int SUBSTITUTION_FEATURE_COUNT = REALIZATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl Opaque Expression}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueExpression() + * @generated + */ + int OPAQUE_EXPRESSION = 40; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Body' attribute list. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__BODY = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Language' attribute list. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__LANGUAGE = VALUE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__RESULT = VALUE_SPECIFICATION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Behavior' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION__BEHAVIOR = VALUE_SPECIFICATION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Opaque Expression' class. + * + * + * @generated + * @ordered + */ + int OPAQUE_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl Connectable Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectableElement() + * @generated + */ + int CONNECTABLE_ELEMENT = 43; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__EANNOTATIONS = TYPED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__OWNED_ELEMENT = TYPED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__OWNER = TYPED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__OWNED_COMMENT = TYPED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__NAME = TYPED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__VISIBILITY = TYPED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__QUALIFIED_NAME = TYPED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY = TYPED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__NAMESPACE = TYPED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__NAME_EXPRESSION = TYPED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__TYPE = TYPED_ELEMENT__TYPE; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER = TYPED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER = TYPED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'End' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT__END = TYPED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Connectable Element' class. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl Parameter}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ParameterImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameter() + * @generated + */ + int PARAMETER = 41; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__EANNOTATIONS = CONNECTABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__OWNED_ELEMENT = CONNECTABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__OWNER = CONNECTABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__OWNED_COMMENT = CONNECTABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__NAME = CONNECTABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__VISIBILITY = CONNECTABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__QUALIFIED_NAME = CONNECTABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__CLIENT_DEPENDENCY = CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__NAMESPACE = CONNECTABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__NAME_EXPRESSION = CONNECTABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__TYPE = CONNECTABLE_ELEMENT__TYPE; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__OWNING_TEMPLATE_PARAMETER = CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'End' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__END = CONNECTABLE_ELEMENT__END; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__IS_ORDERED = CONNECTABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__IS_UNIQUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__UPPER = CONNECTABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__LOWER = CONNECTABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__UPPER_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__LOWER_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Parameter Set' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__PARAMETER_SET = CONNECTABLE_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Operation' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__OPERATION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__DIRECTION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Default' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__DEFAULT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Default Value' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__DEFAULT_VALUE = CONNECTABLE_ELEMENT_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Is Exception' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__IS_EXCEPTION = CONNECTABLE_ELEMENT_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Is Stream' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__IS_STREAM = CONNECTABLE_ELEMENT_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Effect' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__EFFECT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 13; + + /** + * The number of structural features of the 'Parameter' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_FEATURE_COUNT = CONNECTABLE_ELEMENT_FEATURE_COUNT + 14; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl Multiplicity Element}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMultiplicityElement() + * @generated + */ + int MULTIPLICITY_ELEMENT = 42; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__IS_ORDERED = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__IS_UNIQUE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__UPPER = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__LOWER = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__UPPER_VALUE = ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT__LOWER_VALUE = ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Multiplicity Element' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl Connector End}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectorEnd() + * @generated + */ + int CONNECTOR_END = 44; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__EANNOTATIONS = MULTIPLICITY_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__OWNED_ELEMENT = MULTIPLICITY_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__OWNER = MULTIPLICITY_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__OWNED_COMMENT = MULTIPLICITY_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__IS_ORDERED = MULTIPLICITY_ELEMENT__IS_ORDERED; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__IS_UNIQUE = MULTIPLICITY_ELEMENT__IS_UNIQUE; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__UPPER = MULTIPLICITY_ELEMENT__UPPER; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__LOWER = MULTIPLICITY_ELEMENT__LOWER; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__UPPER_VALUE = MULTIPLICITY_ELEMENT__UPPER_VALUE; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__LOWER_VALUE = MULTIPLICITY_ELEMENT__LOWER_VALUE; + + /** + * The feature id for the 'Defining End' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__DEFINING_END = MULTIPLICITY_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Part With Port' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__PART_WITH_PORT = MULTIPLICITY_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Role' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END__ROLE = MULTIPLICITY_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Connector End' class. + * + * + * @generated + * @ordered + */ + int CONNECTOR_END_FEATURE_COUNT = MULTIPLICITY_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl Structural Feature}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuralFeature() + * @generated + */ + int STRUCTURAL_FEATURE = 73; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__EANNOTATIONS = FEATURE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__OWNED_COMMENT = FEATURE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__VISIBILITY = FEATURE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__CLIENT_DEPENDENCY = FEATURE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__NAMESPACE = FEATURE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__NAME_EXPRESSION = FEATURE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__IS_LEAF = FEATURE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__REDEFINED_ELEMENT = FEATURE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__REDEFINITION_CONTEXT = FEATURE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__IS_STATIC = FEATURE__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__FEATURING_CLASSIFIER = FEATURE__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__TYPE = FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__IS_ORDERED = FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__IS_UNIQUE = FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__UPPER = FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__LOWER = FEATURE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__UPPER_VALUE = FEATURE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__LOWER_VALUE = FEATURE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Is Read Only' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE__IS_READ_ONLY = FEATURE_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Structural Feature' class. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl Property}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PropertyImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProperty() + * @generated + */ + int PROPERTY = 45; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__EANNOTATIONS = STRUCTURAL_FEATURE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__OWNED_ELEMENT = STRUCTURAL_FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__OWNER = STRUCTURAL_FEATURE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__OWNED_COMMENT = STRUCTURAL_FEATURE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__NAME = STRUCTURAL_FEATURE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__VISIBILITY = STRUCTURAL_FEATURE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__QUALIFIED_NAME = STRUCTURAL_FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__CLIENT_DEPENDENCY = STRUCTURAL_FEATURE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__NAMESPACE = STRUCTURAL_FEATURE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__NAME_EXPRESSION = STRUCTURAL_FEATURE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_LEAF = STRUCTURAL_FEATURE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__REDEFINED_ELEMENT = STRUCTURAL_FEATURE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_STATIC = STRUCTURAL_FEATURE__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__FEATURING_CLASSIFIER = STRUCTURAL_FEATURE__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__TYPE = STRUCTURAL_FEATURE__TYPE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_ORDERED = STRUCTURAL_FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_UNIQUE = STRUCTURAL_FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__UPPER = STRUCTURAL_FEATURE__UPPER; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__LOWER = STRUCTURAL_FEATURE__LOWER; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__UPPER_VALUE = STRUCTURAL_FEATURE__UPPER_VALUE; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__LOWER_VALUE = STRUCTURAL_FEATURE__LOWER_VALUE; + + /** + * The feature id for the 'Is Read Only' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_READ_ONLY = STRUCTURAL_FEATURE__IS_READ_ONLY; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__TEMPLATE_PARAMETER = STRUCTURAL_FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__OWNING_TEMPLATE_PARAMETER = STRUCTURAL_FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'End' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__END = STRUCTURAL_FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__DEPLOYMENT = STRUCTURAL_FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__DEPLOYED_ELEMENT = STRUCTURAL_FEATURE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__TEMPLATE_BINDING = STRUCTURAL_FEATURE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__OWNED_TEMPLATE_SIGNATURE = STRUCTURAL_FEATURE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Datatype' container reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__DATATYPE = STRUCTURAL_FEATURE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_DERIVED = STRUCTURAL_FEATURE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Is Derived Union' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_DERIVED_UNION = STRUCTURAL_FEATURE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Default' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__DEFAULT = STRUCTURAL_FEATURE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Aggregation' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__AGGREGATION = STRUCTURAL_FEATURE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int PROPERTY__IS_COMPOSITE = STRUCTURAL_FEATURE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Class ' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__CLASS_ = STRUCTURAL_FEATURE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Redefined Property' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__REDEFINED_PROPERTY = STRUCTURAL_FEATURE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Owning Association' container reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__OWNING_ASSOCIATION = STRUCTURAL_FEATURE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Association' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__ASSOCIATION = STRUCTURAL_FEATURE_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Default Value' containment reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__DEFAULT_VALUE = STRUCTURAL_FEATURE_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Opposite' reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__OPPOSITE = STRUCTURAL_FEATURE_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Subsetted Property' reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__SUBSETTED_PROPERTY = STRUCTURAL_FEATURE_FEATURE_COUNT + 19; + + /** + * The feature id for the 'Qualifier' containment reference list. + * + * + * @generated + * @ordered + */ + int PROPERTY__QUALIFIER = STRUCTURAL_FEATURE_FEATURE_COUNT + 20; + + /** + * The feature id for the 'Association End' container reference. + * + * + * @generated + * @ordered + */ + int PROPERTY__ASSOCIATION_END = STRUCTURAL_FEATURE_FEATURE_COUNT + 21; + + /** + * The number of structural features of the 'Property' class. + * + * + * @generated + * @ordered + */ + int PROPERTY_FEATURE_COUNT = STRUCTURAL_FEATURE_FEATURE_COUNT + 22; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl Deployment Target}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeploymentTarget() + * @generated + */ + int DEPLOYMENT_TARGET = 46; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__DEPLOYMENT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET__DEPLOYED_ELEMENT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Deployment Target' class. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_TARGET_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl Deployment}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DeploymentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeployment() + * @generated + */ + int DEPLOYMENT = 47; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__EANNOTATIONS = DEPENDENCY__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__OWNED_ELEMENT = DEPENDENCY__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__OWNER = DEPENDENCY__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__OWNED_COMMENT = DEPENDENCY__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__NAME = DEPENDENCY__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__VISIBILITY = DEPENDENCY__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__QUALIFIED_NAME = DEPENDENCY__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__CLIENT_DEPENDENCY = DEPENDENCY__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__NAMESPACE = DEPENDENCY__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__NAME_EXPRESSION = DEPENDENCY__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__TEMPLATE_PARAMETER = DEPENDENCY__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__OWNING_TEMPLATE_PARAMETER = DEPENDENCY__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__RELATED_ELEMENT = DEPENDENCY__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__SOURCE = DEPENDENCY__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__TARGET = DEPENDENCY__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__SUPPLIER = DEPENDENCY__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__CLIENT = DEPENDENCY__CLIENT; + + /** + * The feature id for the 'Deployed Artifact' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__DEPLOYED_ARTIFACT = DEPENDENCY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Configuration' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__CONFIGURATION = DEPENDENCY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Location' container reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT__LOCATION = DEPENDENCY_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Deployment' class. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_FEATURE_COUNT = DEPENDENCY_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeployedArtifactImpl Deployed Artifact}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DeployedArtifactImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeployedArtifact() + * @generated + */ + int DEPLOYED_ARTIFACT = 48; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The number of structural features of the 'Deployed Artifact' class. + * + * + * @generated + * @ordered + */ + int DEPLOYED_ARTIFACT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl Artifact}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ArtifactImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getArtifact() + * @generated + */ + int ARTIFACT = 50; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ARTIFACT__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ARTIFACT__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ARTIFACT__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ARTIFACT__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ARTIFACT__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'File Name' attribute. + * + * + * @generated + * @ordered + */ + int ARTIFACT__FILE_NAME = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Nested Artifact' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__NESTED_ARTIFACT = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Manifestation' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__MANIFESTATION = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int ARTIFACT__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Artifact' class. + * + * + * @generated + * @ordered + */ + int ARTIFACT_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl Deployment Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDeploymentSpecification() + * @generated + */ + int DEPLOYMENT_SPECIFICATION = 49; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__EANNOTATIONS = ARTIFACT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_ELEMENT = ARTIFACT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNER = ARTIFACT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_COMMENT = ARTIFACT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__NAME = ARTIFACT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__VISIBILITY = ARTIFACT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__QUALIFIED_NAME = ARTIFACT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY = ARTIFACT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__NAMESPACE = ARTIFACT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION = ARTIFACT__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT = ARTIFACT__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT = ARTIFACT__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_RULE = ARTIFACT__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__MEMBER = ARTIFACT__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__IMPORTED_MEMBER = ARTIFACT__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_MEMBER = ARTIFACT__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__IS_LEAF = ARTIFACT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__REDEFINED_ELEMENT = ARTIFACT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__REDEFINITION_CONTEXT = ARTIFACT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER = ARTIFACT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER = ARTIFACT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__PACKAGE = ARTIFACT__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING = ARTIFACT__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE = ARTIFACT__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__IS_ABSTRACT = ARTIFACT__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__GENERALIZATION = ARTIFACT__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT = ARTIFACT__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__FEATURE = ARTIFACT__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__INHERITED_MEMBER = ARTIFACT__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__REDEFINED_CLASSIFIER = ARTIFACT__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__GENERAL = ARTIFACT__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE = ARTIFACT__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__USE_CASE = ARTIFACT__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__SUBSTITUTION = ARTIFACT__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__ATTRIBUTE = ARTIFACT__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__REPRESENTATION = ARTIFACT__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__COLLABORATION_USE = ARTIFACT__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE = ARTIFACT__OWNED_SIGNATURE; + + /** + * The feature id for the 'File Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__FILE_NAME = ARTIFACT__FILE_NAME; + + /** + * The feature id for the 'Nested Artifact' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT = ARTIFACT__NESTED_ARTIFACT; + + /** + * The feature id for the 'Manifestation' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__MANIFESTATION = ARTIFACT__MANIFESTATION; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_OPERATION = ARTIFACT__OWNED_OPERATION; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE = ARTIFACT__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Deployment Location' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION = ARTIFACT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Execution Location' attribute. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION = ARTIFACT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Deployment' container reference. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION__DEPLOYMENT = ARTIFACT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Deployment Specification' class. + * + * + * @generated + * @ordered + */ + int DEPLOYMENT_SPECIFICATION_FEATURE_COUNT = ARTIFACT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl Manifestation}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ManifestationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getManifestation() + * @generated + */ + int MANIFESTATION = 51; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__EANNOTATIONS = ABSTRACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__OWNED_ELEMENT = ABSTRACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__OWNER = ABSTRACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__OWNED_COMMENT = ABSTRACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__NAME = ABSTRACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__VISIBILITY = ABSTRACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__QUALIFIED_NAME = ABSTRACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__CLIENT_DEPENDENCY = ABSTRACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__NAMESPACE = ABSTRACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__NAME_EXPRESSION = ABSTRACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__TEMPLATE_PARAMETER = ABSTRACTION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__OWNING_TEMPLATE_PARAMETER = ABSTRACTION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__RELATED_ELEMENT = ABSTRACTION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__SOURCE = ABSTRACTION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__TARGET = ABSTRACTION__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__SUPPLIER = ABSTRACTION__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__CLIENT = ABSTRACTION__CLIENT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__MAPPING = ABSTRACTION__MAPPING; + + /** + * The feature id for the 'Utilized Element' reference. + * + * + * @generated + * @ordered + */ + int MANIFESTATION__UTILIZED_ELEMENT = ABSTRACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Manifestation' class. + * + * + * @generated + * @ordered + */ + int MANIFESTATION_FEATURE_COUNT = ABSTRACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl Behavioral Feature}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehavioralFeature() + * @generated + */ + int BEHAVIORAL_FEATURE = 53; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__EANNOTATIONS = NAMESPACE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__VISIBILITY = NAMESPACE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__NAMESPACE = NAMESPACE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNED_RULE = NAMESPACE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__IS_LEAF = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__REDEFINED_ELEMENT = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__IS_STATIC = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNED_PARAMETER = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__IS_ABSTRACT = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Method' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__METHOD = NAMESPACE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Concurrency' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__CONCURRENCY = NAMESPACE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Raised Exception' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__RAISED_EXCEPTION = NAMESPACE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET = NAMESPACE_FEATURE_COUNT + 10; + + /** + * The number of structural features of the 'Behavioral Feature' class. + * + * + * @generated + * @ordered + */ + int BEHAVIORAL_FEATURE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 11; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OperationImpl Operation}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OperationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOperation() + * @generated + */ + int OPERATION = 52; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__EANNOTATIONS = BEHAVIORAL_FEATURE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_ELEMENT = BEHAVIORAL_FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNER = BEHAVIORAL_FEATURE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_COMMENT = BEHAVIORAL_FEATURE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__NAME = BEHAVIORAL_FEATURE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__VISIBILITY = BEHAVIORAL_FEATURE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__QUALIFIED_NAME = BEHAVIORAL_FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__CLIENT_DEPENDENCY = BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OPERATION__NAMESPACE = BEHAVIORAL_FEATURE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OPERATION__NAME_EXPRESSION = BEHAVIORAL_FEATURE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__ELEMENT_IMPORT = BEHAVIORAL_FEATURE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__PACKAGE_IMPORT = BEHAVIORAL_FEATURE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_RULE = BEHAVIORAL_FEATURE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__MEMBER = BEHAVIORAL_FEATURE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__IMPORTED_MEMBER = BEHAVIORAL_FEATURE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_MEMBER = BEHAVIORAL_FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__IS_LEAF = BEHAVIORAL_FEATURE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__REDEFINED_ELEMENT = BEHAVIORAL_FEATURE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__REDEFINITION_CONTEXT = BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__IS_STATIC = BEHAVIORAL_FEATURE__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__FEATURING_CLASSIFIER = BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_PARAMETER = BEHAVIORAL_FEATURE__OWNED_PARAMETER; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__IS_ABSTRACT = BEHAVIORAL_FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Method' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__METHOD = BEHAVIORAL_FEATURE__METHOD; + + /** + * The feature id for the 'Concurrency' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__CONCURRENCY = BEHAVIORAL_FEATURE__CONCURRENCY; + + /** + * The feature id for the 'Raised Exception' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__RAISED_EXCEPTION = BEHAVIORAL_FEATURE__RAISED_EXCEPTION; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_PARAMETER_SET = BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int OPERATION__TEMPLATE_PARAMETER = BEHAVIORAL_FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNING_TEMPLATE_PARAMETER = BEHAVIORAL_FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__TEMPLATE_BINDING = BEHAVIORAL_FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int OPERATION__OWNED_TEMPLATE_SIGNATURE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Is Query' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__IS_QUERY = BEHAVIORAL_FEATURE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__IS_ORDERED = BEHAVIORAL_FEATURE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__IS_UNIQUE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__LOWER = BEHAVIORAL_FEATURE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int OPERATION__UPPER = BEHAVIORAL_FEATURE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Class ' container reference. + * + * + * @generated + * @ordered + */ + int OPERATION__CLASS_ = BEHAVIORAL_FEATURE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Precondition' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__PRECONDITION = BEHAVIORAL_FEATURE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Postcondition' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__POSTCONDITION = BEHAVIORAL_FEATURE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Redefined Operation' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION__REDEFINED_OPERATION = BEHAVIORAL_FEATURE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Datatype' container reference. + * + * + * @generated + * @ordered + */ + int OPERATION__DATATYPE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Body Condition' reference. + * + * + * @generated + * @ordered + */ + int OPERATION__BODY_CONDITION = BEHAVIORAL_FEATURE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int OPERATION__TYPE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Interface' container reference. + * + * + * @generated + * @ordered + */ + int OPERATION__INTERFACE = BEHAVIORAL_FEATURE_FEATURE_COUNT + 16; + + /** + * The number of structural features of the 'Operation' class. + * + * + * @generated + * @ordered + */ + int OPERATION_FEATURE_COUNT = BEHAVIORAL_FEATURE_FEATURE_COUNT + 17; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl Behavior}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.BehaviorImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehavior() + * @generated + */ + int BEHAVIOR = 54; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__EANNOTATIONS = CLASS__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_COMMENT = CLASS__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__NAME = CLASS__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__VISIBILITY = CLASS__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__CLIENT_DEPENDENCY = CLASS__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__NAMESPACE = CLASS__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__NAME_EXPRESSION = CLASS__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__ELEMENT_IMPORT = CLASS__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__PACKAGE_IMPORT = CLASS__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_RULE = CLASS__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IMPORTED_MEMBER = CLASS__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_LEAF = CLASS__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__REDEFINED_ELEMENT = CLASS__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__REDEFINITION_CONTEXT = CLASS__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__TEMPLATE_PARAMETER = CLASS__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNING_TEMPLATE_PARAMETER = CLASS__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__PACKAGE = CLASS__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__TEMPLATE_BINDING = CLASS__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_TEMPLATE_SIGNATURE = CLASS__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__GENERALIZATION = CLASS__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__POWERTYPE_EXTENT = CLASS__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__INHERITED_MEMBER = CLASS__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__REDEFINED_CLASSIFIER = CLASS__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__GENERAL = CLASS__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_USE_CASE = CLASS__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__USE_CASE = CLASS__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__SUBSTITUTION = CLASS__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__ATTRIBUTE = CLASS__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__REPRESENTATION = CLASS__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__COLLABORATION_USE = CLASS__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_SIGNATURE = CLASS__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_ATTRIBUTE = CLASS__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__PART = CLASS__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__ROLE = CLASS__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_CONNECTOR = CLASS__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_PORT = CLASS__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_BEHAVIOR = CLASS__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__CLASSIFIER_BEHAVIOR = CLASS__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__INTERFACE_REALIZATION = CLASS__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_TRIGGER = CLASS__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_OPERATION = CLASS__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__NESTED_CLASSIFIER = CLASS__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__SUPER_CLASS = CLASS__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_ACTIVE = CLASS__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_RECEPTION = CLASS__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__EXTENSION = CLASS__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_REENTRANT = CLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__REDEFINED_BEHAVIOR = CLASS_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_PARAMETER = CLASS_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__CONTEXT = CLASS_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_PARAMETER_SET = CLASS_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__SPECIFICATION = CLASS_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Behavior' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_FEATURE_COUNT = CLASS_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl Parameter Set}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ParameterSetImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterSet() + * @generated + */ + int PARAMETER_SET = 55; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__PARAMETER = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Condition' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET__CONDITION = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Parameter Set' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_SET_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl Data Type}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DataTypeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDataType() + * @generated + */ + int DATA_TYPE = 56; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Data Type' class. + * + * + * @generated + * @ordered + */ + int DATA_TYPE_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl Interface}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InterfaceImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterface() + * @generated + */ + int INTERFACE = 57; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__NESTED_CLASSIFIER = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Redefined Interface' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__REDEFINED_INTERFACE = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_RECEPTION = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Protocol' containment reference. + * + * + * @generated + * @ordered + */ + int INTERFACE__PROTOCOL = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE__OWNED_OPERATION = CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Interface' class. + * + * + * @generated + * @ordered + */ + int INTERFACE_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReceptionImpl Reception}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReceptionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReception() + * @generated + */ + int RECEPTION = 58; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__EANNOTATIONS = BEHAVIORAL_FEATURE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNED_ELEMENT = BEHAVIORAL_FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNER = BEHAVIORAL_FEATURE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNED_COMMENT = BEHAVIORAL_FEATURE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__NAME = BEHAVIORAL_FEATURE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__VISIBILITY = BEHAVIORAL_FEATURE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__QUALIFIED_NAME = BEHAVIORAL_FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__CLIENT_DEPENDENCY = BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int RECEPTION__NAMESPACE = BEHAVIORAL_FEATURE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int RECEPTION__NAME_EXPRESSION = BEHAVIORAL_FEATURE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__ELEMENT_IMPORT = BEHAVIORAL_FEATURE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__PACKAGE_IMPORT = BEHAVIORAL_FEATURE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNED_RULE = BEHAVIORAL_FEATURE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__MEMBER = BEHAVIORAL_FEATURE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__IMPORTED_MEMBER = BEHAVIORAL_FEATURE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNED_MEMBER = BEHAVIORAL_FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__IS_LEAF = BEHAVIORAL_FEATURE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__REDEFINED_ELEMENT = BEHAVIORAL_FEATURE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__REDEFINITION_CONTEXT = BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__IS_STATIC = BEHAVIORAL_FEATURE__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__FEATURING_CLASSIFIER = BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNED_PARAMETER = BEHAVIORAL_FEATURE__OWNED_PARAMETER; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__IS_ABSTRACT = BEHAVIORAL_FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Method' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__METHOD = BEHAVIORAL_FEATURE__METHOD; + + /** + * The feature id for the 'Concurrency' attribute. + * + * + * @generated + * @ordered + */ + int RECEPTION__CONCURRENCY = BEHAVIORAL_FEATURE__CONCURRENCY; + + /** + * The feature id for the 'Raised Exception' reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__RAISED_EXCEPTION = BEHAVIORAL_FEATURE__RAISED_EXCEPTION; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int RECEPTION__OWNED_PARAMETER_SET = BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Signal' reference. + * + * + * @generated + * @ordered + */ + int RECEPTION__SIGNAL = BEHAVIORAL_FEATURE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Reception' class. + * + * + * @generated + * @ordered + */ + int RECEPTION_FEATURE_COUNT = BEHAVIORAL_FEATURE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SignalImpl Signal}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SignalImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSignal() + * @generated + */ + int SIGNAL = 59; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Signal' class. + * + * + * @generated + * @ordered + */ + int SIGNAL_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl State Machine}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StateMachineImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStateMachine() + * @generated + */ + int STATE_MACHINE = 61; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__EANNOTATIONS = BEHAVIOR__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_ELEMENT = BEHAVIOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNER = BEHAVIOR__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_COMMENT = BEHAVIOR__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__NAME = BEHAVIOR__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__VISIBILITY = BEHAVIOR__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__QUALIFIED_NAME = BEHAVIOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__CLIENT_DEPENDENCY = BEHAVIOR__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__NAMESPACE = BEHAVIOR__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__NAME_EXPRESSION = BEHAVIOR__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__ELEMENT_IMPORT = BEHAVIOR__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__PACKAGE_IMPORT = BEHAVIOR__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_RULE = BEHAVIOR__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__MEMBER = BEHAVIOR__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__IMPORTED_MEMBER = BEHAVIOR__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_MEMBER = BEHAVIOR__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__IS_LEAF = BEHAVIOR__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__REDEFINED_ELEMENT = BEHAVIOR__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__REDEFINITION_CONTEXT = BEHAVIOR__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__TEMPLATE_PARAMETER = BEHAVIOR__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNING_TEMPLATE_PARAMETER = BEHAVIOR__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__PACKAGE = BEHAVIOR__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__TEMPLATE_BINDING = BEHAVIOR__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE = BEHAVIOR__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__IS_ABSTRACT = BEHAVIOR__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__GENERALIZATION = BEHAVIOR__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__POWERTYPE_EXTENT = BEHAVIOR__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__FEATURE = BEHAVIOR__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__INHERITED_MEMBER = BEHAVIOR__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__REDEFINED_CLASSIFIER = BEHAVIOR__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__GENERAL = BEHAVIOR__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_USE_CASE = BEHAVIOR__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__USE_CASE = BEHAVIOR__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__SUBSTITUTION = BEHAVIOR__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__ATTRIBUTE = BEHAVIOR__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__REPRESENTATION = BEHAVIOR__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__COLLABORATION_USE = BEHAVIOR__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_SIGNATURE = BEHAVIOR__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_ATTRIBUTE = BEHAVIOR__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__PART = BEHAVIOR__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__ROLE = BEHAVIOR__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_CONNECTOR = BEHAVIOR__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_PORT = BEHAVIOR__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_BEHAVIOR = BEHAVIOR__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__CLASSIFIER_BEHAVIOR = BEHAVIOR__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__INTERFACE_REALIZATION = BEHAVIOR__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_TRIGGER = BEHAVIOR__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_OPERATION = BEHAVIOR__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__NESTED_CLASSIFIER = BEHAVIOR__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__SUPER_CLASS = BEHAVIOR__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__IS_ACTIVE = BEHAVIOR__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_RECEPTION = BEHAVIOR__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__EXTENSION = BEHAVIOR__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__IS_REENTRANT = BEHAVIOR__IS_REENTRANT; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__REDEFINED_BEHAVIOR = BEHAVIOR__REDEFINED_BEHAVIOR; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_PARAMETER = BEHAVIOR__OWNED_PARAMETER; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__CONTEXT = BEHAVIOR__CONTEXT; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__OWNED_PARAMETER_SET = BEHAVIOR__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__SPECIFICATION = BEHAVIOR__SPECIFICATION; + + /** + * The feature id for the 'Region' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__REGION = BEHAVIOR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Connection Point' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__CONNECTION_POINT = BEHAVIOR_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Extended State Machine' reference. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE__EXTENDED_STATE_MACHINE = BEHAVIOR_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'State Machine' class. + * + * + * @generated + * @ordered + */ + int STATE_MACHINE_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl Protocol State Machine}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProtocolStateMachine() + * @generated + */ + int PROTOCOL_STATE_MACHINE = 60; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__EANNOTATIONS = STATE_MACHINE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_ELEMENT = STATE_MACHINE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNER = STATE_MACHINE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_COMMENT = STATE_MACHINE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__NAME = STATE_MACHINE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__VISIBILITY = STATE_MACHINE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__QUALIFIED_NAME = STATE_MACHINE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY = STATE_MACHINE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__NAMESPACE = STATE_MACHINE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__NAME_EXPRESSION = STATE_MACHINE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT = STATE_MACHINE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT = STATE_MACHINE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_RULE = STATE_MACHINE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__MEMBER = STATE_MACHINE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__IMPORTED_MEMBER = STATE_MACHINE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_MEMBER = STATE_MACHINE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__IS_LEAF = STATE_MACHINE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__REDEFINED_ELEMENT = STATE_MACHINE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__REDEFINITION_CONTEXT = STATE_MACHINE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER = STATE_MACHINE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER = STATE_MACHINE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__PACKAGE = STATE_MACHINE__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING = STATE_MACHINE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE = STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__IS_ABSTRACT = STATE_MACHINE__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__GENERALIZATION = STATE_MACHINE__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT = STATE_MACHINE__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__FEATURE = STATE_MACHINE__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__INHERITED_MEMBER = STATE_MACHINE__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__REDEFINED_CLASSIFIER = STATE_MACHINE__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__GENERAL = STATE_MACHINE__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_USE_CASE = STATE_MACHINE__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__USE_CASE = STATE_MACHINE__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__SUBSTITUTION = STATE_MACHINE__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__ATTRIBUTE = STATE_MACHINE__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__REPRESENTATION = STATE_MACHINE__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__COLLABORATION_USE = STATE_MACHINE__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE = STATE_MACHINE__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE = STATE_MACHINE__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__PART = STATE_MACHINE__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__ROLE = STATE_MACHINE__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR = STATE_MACHINE__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_PORT = STATE_MACHINE__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR = STATE_MACHINE__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__CLASSIFIER_BEHAVIOR = STATE_MACHINE__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION = STATE_MACHINE__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_TRIGGER = STATE_MACHINE__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_OPERATION = STATE_MACHINE__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER = STATE_MACHINE__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__SUPER_CLASS = STATE_MACHINE__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__IS_ACTIVE = STATE_MACHINE__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_RECEPTION = STATE_MACHINE__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__EXTENSION = STATE_MACHINE__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__IS_REENTRANT = STATE_MACHINE__IS_REENTRANT; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__REDEFINED_BEHAVIOR = STATE_MACHINE__REDEFINED_BEHAVIOR; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_PARAMETER = STATE_MACHINE__OWNED_PARAMETER; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__CONTEXT = STATE_MACHINE__CONTEXT; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET = STATE_MACHINE__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__SPECIFICATION = STATE_MACHINE__SPECIFICATION; + + /** + * The feature id for the 'Region' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__REGION = STATE_MACHINE__REGION; + + /** + * The feature id for the 'Connection Point' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__CONNECTION_POINT = STATE_MACHINE__CONNECTION_POINT; + + /** + * The feature id for the 'Extended State Machine' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__EXTENDED_STATE_MACHINE = STATE_MACHINE__EXTENDED_STATE_MACHINE; + + /** + * The feature id for the 'Conformance' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE__CONFORMANCE = STATE_MACHINE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Protocol State Machine' class. + * + * + * @generated + * @ordered + */ + int PROTOCOL_STATE_MACHINE_FEATURE_COUNT = STATE_MACHINE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RegionImpl Region}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RegionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRegion() + * @generated + */ + int REGION = 62; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__EANNOTATIONS = NAMESPACE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REGION__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REGION__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REGION__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REGION__VISIBILITY = NAMESPACE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REGION__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REGION__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REGION__NAMESPACE = NAMESPACE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REGION__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__OWNED_RULE = NAMESPACE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int REGION__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int REGION__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int REGION__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int REGION__IS_LEAF = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int REGION__REDEFINED_ELEMENT = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int REGION__REDEFINITION_CONTEXT = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Subvertex' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__SUBVERTEX = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Transition' containment reference list. + * + * + * @generated + * @ordered + */ + int REGION__TRANSITION = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'State' container reference. + * + * + * @generated + * @ordered + */ + int REGION__STATE = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Extended Region' reference. + * + * + * @generated + * @ordered + */ + int REGION__EXTENDED_REGION = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'State Machine' container reference. + * + * + * @generated + * @ordered + */ + int REGION__STATE_MACHINE = NAMESPACE_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Region' class. + * + * + * @generated + * @ordered + */ + int REGION_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.VertexImpl Vertex}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.VertexImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVertex() + * @generated + */ + int VERTEX = 63; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int VERTEX__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VERTEX__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VERTEX__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VERTEX__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VERTEX__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VERTEX__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VERTEX__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int VERTEX__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int VERTEX__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int VERTEX__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int VERTEX__OUTGOING = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int VERTEX__INCOMING = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int VERTEX__CONTAINER = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Vertex' class. + * + * + * @generated + * @ordered + */ + int VERTEX_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl Transition}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TransitionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTransition() + * @generated + */ + int TRANSITION = 64; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__OWNER = REDEFINABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION__NAME = REDEFINABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION__KIND = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__CONTAINER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Target' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__TARGET = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Redefined Transition' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__REDEFINED_TRANSITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Guard' containment reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__GUARD = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Effect' containment reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__EFFECT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION__TRIGGER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Source' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__SOURCE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Transition' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TriggerImpl Trigger}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TriggerImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTrigger() + * @generated + */ + int TRIGGER = 65; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TRIGGER__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER__EVENT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Port' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER__PORT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Trigger' class. + * + * + * @generated + * @ordered + */ + int TRIGGER_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EventImpl Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.EventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEvent() + * @generated + */ + int EVENT = 66; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EVENT__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EVENT__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EVENT__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EVENT__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int EVENT__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int EVENT__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The number of structural features of the 'Event' class. + * + * + * @generated + * @ordered + */ + int EVENT_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PortImpl Port}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PortImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPort() + * @generated + */ + int PORT = 67; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT__EANNOTATIONS = PROPERTY__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT__OWNED_ELEMENT = PROPERTY__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PORT__OWNER = PROPERTY__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT__OWNED_COMMENT = PROPERTY__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT__NAME = PROPERTY__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PORT__VISIBILITY = PROPERTY__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT__QUALIFIED_NAME = PROPERTY__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PORT__CLIENT_DEPENDENCY = PROPERTY__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PORT__NAMESPACE = PROPERTY__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PORT__NAME_EXPRESSION = PROPERTY__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_LEAF = PROPERTY__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT__REDEFINED_ELEMENT = PROPERTY__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int PORT__REDEFINITION_CONTEXT = PROPERTY__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_STATIC = PROPERTY__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int PORT__FEATURING_CLASSIFIER = PROPERTY__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int PORT__TYPE = PROPERTY__TYPE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_ORDERED = PROPERTY__IS_ORDERED; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_UNIQUE = PROPERTY__IS_UNIQUE; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int PORT__UPPER = PROPERTY__UPPER; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int PORT__LOWER = PROPERTY__LOWER; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int PORT__UPPER_VALUE = PROPERTY__UPPER_VALUE; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int PORT__LOWER_VALUE = PROPERTY__LOWER_VALUE; + + /** + * The feature id for the 'Is Read Only' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_READ_ONLY = PROPERTY__IS_READ_ONLY; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PORT__TEMPLATE_PARAMETER = PROPERTY__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PORT__OWNING_TEMPLATE_PARAMETER = PROPERTY__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'End' reference list. + * + * + * @generated + * @ordered + */ + int PORT__END = PROPERTY__END; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT__DEPLOYMENT = PROPERTY__DEPLOYMENT; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT__DEPLOYED_ELEMENT = PROPERTY__DEPLOYED_ELEMENT; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT__TEMPLATE_BINDING = PROPERTY__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PORT__OWNED_TEMPLATE_SIGNATURE = PROPERTY__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Datatype' container reference. + * + * + * @generated + * @ordered + */ + int PORT__DATATYPE = PROPERTY__DATATYPE; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_DERIVED = PROPERTY__IS_DERIVED; + + /** + * The feature id for the 'Is Derived Union' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_DERIVED_UNION = PROPERTY__IS_DERIVED_UNION; + + /** + * The feature id for the 'Default' attribute. + * + * + * @generated + * @ordered + */ + int PORT__DEFAULT = PROPERTY__DEFAULT; + + /** + * The feature id for the 'Aggregation' attribute. + * + * + * @generated + * @ordered + */ + int PORT__AGGREGATION = PROPERTY__AGGREGATION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_COMPOSITE = PROPERTY__IS_COMPOSITE; + + /** + * The feature id for the 'Class ' reference. + * + * + * @generated + * @ordered + */ + int PORT__CLASS_ = PROPERTY__CLASS_; + + /** + * The feature id for the 'Redefined Property' reference list. + * + * + * @generated + * @ordered + */ + int PORT__REDEFINED_PROPERTY = PROPERTY__REDEFINED_PROPERTY; + + /** + * The feature id for the 'Owning Association' container reference. + * + * + * @generated + * @ordered + */ + int PORT__OWNING_ASSOCIATION = PROPERTY__OWNING_ASSOCIATION; + + /** + * The feature id for the 'Association' reference. + * + * + * @generated + * @ordered + */ + int PORT__ASSOCIATION = PROPERTY__ASSOCIATION; + + /** + * The feature id for the 'Default Value' containment reference. + * + * + * @generated + * @ordered + */ + int PORT__DEFAULT_VALUE = PROPERTY__DEFAULT_VALUE; + + /** + * The feature id for the 'Opposite' reference. + * + * + * @generated + * @ordered + */ + int PORT__OPPOSITE = PROPERTY__OPPOSITE; + + /** + * The feature id for the 'Subsetted Property' reference list. + * + * + * @generated + * @ordered + */ + int PORT__SUBSETTED_PROPERTY = PROPERTY__SUBSETTED_PROPERTY; + + /** + * The feature id for the 'Qualifier' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT__QUALIFIER = PROPERTY__QUALIFIER; + + /** + * The feature id for the 'Association End' container reference. + * + * + * @generated + * @ordered + */ + int PORT__ASSOCIATION_END = PROPERTY__ASSOCIATION_END; + + /** + * The feature id for the 'Is Behavior' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_BEHAVIOR = PROPERTY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Service' attribute. + * + * + * @generated + * @ordered + */ + int PORT__IS_SERVICE = PROPERTY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Required' reference list. + * + * + * @generated + * @ordered + */ + int PORT__REQUIRED = PROPERTY_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Redefined Port' reference list. + * + * + * @generated + * @ordered + */ + int PORT__REDEFINED_PORT = PROPERTY_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Provided' reference list. + * + * + * @generated + * @ordered + */ + int PORT__PROVIDED = PROPERTY_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Protocol' reference. + * + * + * @generated + * @ordered + */ + int PORT__PROTOCOL = PROPERTY_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Port' class. + * + * + * @generated + * @ordered + */ + int PORT_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateImpl State}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StateImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getState() + * @generated + */ + int STATE = 68; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__EANNOTATIONS = NAMESPACE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STATE__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STATE__VISIBILITY = NAMESPACE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STATE__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE__NAMESPACE = NAMESPACE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STATE__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__OWNED_RULE = NAMESPACE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STATE__IS_LEAF = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE__REDEFINED_ELEMENT = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STATE__REDEFINITION_CONTEXT = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int STATE__OUTGOING = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int STATE__INCOMING = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int STATE__CONTAINER = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int STATE__IS_COMPOSITE = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Is Orthogonal' attribute. + * + * + * @generated + * @ordered + */ + int STATE__IS_ORTHOGONAL = NAMESPACE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Is Simple' attribute. + * + * + * @generated + * @ordered + */ + int STATE__IS_SIMPLE = NAMESPACE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Is Submachine State' attribute. + * + * + * @generated + * @ordered + */ + int STATE__IS_SUBMACHINE_STATE = NAMESPACE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Submachine' reference. + * + * + * @generated + * @ordered + */ + int STATE__SUBMACHINE = NAMESPACE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Connection' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__CONNECTION = NAMESPACE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Connection Point' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__CONNECTION_POINT = NAMESPACE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Redefined State' reference. + * + * + * @generated + * @ordered + */ + int STATE__REDEFINED_STATE = NAMESPACE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'State Invariant' containment reference. + * + * + * @generated + * @ordered + */ + int STATE__STATE_INVARIANT = NAMESPACE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Entry' containment reference. + * + * + * @generated + * @ordered + */ + int STATE__ENTRY = NAMESPACE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Exit' containment reference. + * + * + * @generated + * @ordered + */ + int STATE__EXIT = NAMESPACE_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Do Activity' containment reference. + * + * + * @generated + * @ordered + */ + int STATE__DO_ACTIVITY = NAMESPACE_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Deferrable Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__DEFERRABLE_TRIGGER = NAMESPACE_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Region' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__REGION = NAMESPACE_FEATURE_COUNT + 19; + + /** + * The number of structural features of the 'State' class. + * + * + * @generated + * @ordered + */ + int STATE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 20; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl Connection Point Reference}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectionPointReference() + * @generated + */ + int CONNECTION_POINT_REFERENCE = 69; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__EANNOTATIONS = VERTEX__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__OWNED_ELEMENT = VERTEX__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__OWNER = VERTEX__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__OWNED_COMMENT = VERTEX__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__NAME = VERTEX__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__VISIBILITY = VERTEX__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__QUALIFIED_NAME = VERTEX__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY = VERTEX__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__NAMESPACE = VERTEX__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__NAME_EXPRESSION = VERTEX__NAME_EXPRESSION; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__OUTGOING = VERTEX__OUTGOING; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__INCOMING = VERTEX__INCOMING; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__CONTAINER = VERTEX__CONTAINER; + + /** + * The feature id for the 'Entry' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__ENTRY = VERTEX_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Exit' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__EXIT = VERTEX_FEATURE_COUNT + 1; + + /** + * The feature id for the 'State' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE__STATE = VERTEX_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Connection Point Reference' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_POINT_REFERENCE_FEATURE_COUNT = VERTEX_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl Pseudostate}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PseudostateImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPseudostate() + * @generated + */ + int PSEUDOSTATE = 70; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__EANNOTATIONS = VERTEX__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__OWNED_ELEMENT = VERTEX__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__OWNER = VERTEX__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__OWNED_COMMENT = VERTEX__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__NAME = VERTEX__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__VISIBILITY = VERTEX__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__QUALIFIED_NAME = VERTEX__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__CLIENT_DEPENDENCY = VERTEX__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__NAMESPACE = VERTEX__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__NAME_EXPRESSION = VERTEX__NAME_EXPRESSION; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__OUTGOING = VERTEX__OUTGOING; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__INCOMING = VERTEX__INCOMING; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__CONTAINER = VERTEX__CONTAINER; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__KIND = VERTEX_FEATURE_COUNT + 0; + + /** + * The feature id for the 'State Machine' container reference. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__STATE_MACHINE = VERTEX_FEATURE_COUNT + 1; + + /** + * The feature id for the 'State' container reference. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE__STATE = VERTEX_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Pseudostate' class. + * + * + * @generated + * @ordered + */ + int PSEUDOSTATE_FEATURE_COUNT = VERTEX_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl Protocol Conformance}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProtocolConformance() + * @generated + */ + int PROTOCOL_CONFORMANCE = 71; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__EANNOTATIONS = DIRECTED_RELATIONSHIP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__OWNED_ELEMENT = DIRECTED_RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__OWNER = DIRECTED_RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__OWNED_COMMENT = DIRECTED_RELATIONSHIP__OWNED_COMMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__RELATED_ELEMENT = DIRECTED_RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__SOURCE = DIRECTED_RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__TARGET = DIRECTED_RELATIONSHIP__TARGET; + + /** + * The feature id for the 'General Machine' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__GENERAL_MACHINE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Specific Machine' container reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Protocol Conformance' class. + * + * + * @generated + * @ordered + */ + int PROTOCOL_CONFORMANCE_FEATURE_COUNT = DIRECTED_RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OperationTemplateParameterImpl Operation Template Parameter}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OperationTemplateParameterImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOperationTemplateParameter() + * @generated + */ + int OPERATION_TEMPLATE_PARAMETER = 72; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__EANNOTATIONS = TEMPLATE_PARAMETER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__OWNED_ELEMENT = TEMPLATE_PARAMETER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__OWNER = TEMPLATE_PARAMETER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__OWNED_COMMENT = TEMPLATE_PARAMETER__OWNED_COMMENT; + + /** + * The feature id for the 'Signature' container reference. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__SIGNATURE = TEMPLATE_PARAMETER__SIGNATURE; + + /** + * The feature id for the 'Owned Parametered Element' containment reference. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT; + + /** + * The feature id for the 'Default' reference. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__DEFAULT = TEMPLATE_PARAMETER__DEFAULT; + + /** + * The feature id for the 'Owned Default' containment reference. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT; + + /** + * The feature id for the 'Parametered Element' reference. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__PARAMETERED_ELEMENT; + + /** + * The number of structural features of the 'Operation Template Parameter' class. + * + * + * @generated + * @ordered + */ + int OPERATION_TEMPLATE_PARAMETER_FEATURE_COUNT = TEMPLATE_PARAMETER_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl Association}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AssociationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAssociation() + * @generated + */ + int ASSOCIATION = 74; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__RELATED_ELEMENT = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_DERIVED = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'End Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__END_TYPE = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Member End' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__MEMBER_END = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Navigable Owned End' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__NAVIGABLE_OWNED_END = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned End' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_END = CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Association' class. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementTemplateParameterImpl Connectable Element Template Parameter}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConnectableElementTemplateParameterImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectableElementTemplateParameter() + * @generated + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER = 75; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__EANNOTATIONS = TEMPLATE_PARAMETER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_ELEMENT = TEMPLATE_PARAMETER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNER = TEMPLATE_PARAMETER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT = TEMPLATE_PARAMETER__OWNED_COMMENT; + + /** + * The feature id for the 'Signature' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__SIGNATURE = TEMPLATE_PARAMETER__SIGNATURE; + + /** + * The feature id for the 'Owned Parametered Element' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT; + + /** + * The feature id for the 'Default' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT = TEMPLATE_PARAMETER__DEFAULT; + + /** + * The feature id for the 'Owned Default' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT; + + /** + * The feature id for the 'Parametered Element' reference. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__PARAMETERED_ELEMENT; + + /** + * The number of structural features of the 'Connectable Element Template Parameter' class. + * + * + * @generated + * @ordered + */ + int CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER_FEATURE_COUNT = TEMPLATE_PARAMETER_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl Collaboration Use}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCollaborationUse() + * @generated + */ + int COLLABORATION_USE = 76; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Role Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE__ROLE_BINDING = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Collaboration Use' class. + * + * + * @generated + * @ordered + */ + int COLLABORATION_USE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl Collaboration}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CollaborationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCollaboration() + * @generated + */ + int COLLABORATION = 77; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__EANNOTATIONS = BEHAVIORED_CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_ELEMENT = BEHAVIORED_CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNER = BEHAVIORED_CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_COMMENT = BEHAVIORED_CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION__NAME = BEHAVIORED_CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION__VISIBILITY = BEHAVIORED_CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION__QUALIFIED_NAME = BEHAVIORED_CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__CLIENT_DEPENDENCY = BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__NAMESPACE = BEHAVIORED_CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__NAME_EXPRESSION = BEHAVIORED_CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__ELEMENT_IMPORT = BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__PACKAGE_IMPORT = BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_RULE = BEHAVIORED_CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__MEMBER = BEHAVIORED_CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__IMPORTED_MEMBER = BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_MEMBER = BEHAVIORED_CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION__IS_LEAF = BEHAVIORED_CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__REDEFINED_ELEMENT = BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__REDEFINITION_CONTEXT = BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__TEMPLATE_PARAMETER = BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNING_TEMPLATE_PARAMETER = BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__PACKAGE = BEHAVIORED_CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__TEMPLATE_BINDING = BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_TEMPLATE_SIGNATURE = BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int COLLABORATION__IS_ABSTRACT = BEHAVIORED_CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__GENERALIZATION = BEHAVIORED_CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__POWERTYPE_EXTENT = BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__FEATURE = BEHAVIORED_CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__INHERITED_MEMBER = BEHAVIORED_CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__REDEFINED_CLASSIFIER = BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__GENERAL = BEHAVIORED_CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_USE_CASE = BEHAVIORED_CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__USE_CASE = BEHAVIORED_CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__SUBSTITUTION = BEHAVIORED_CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__ATTRIBUTE = BEHAVIORED_CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__REPRESENTATION = BEHAVIORED_CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__COLLABORATION_USE = BEHAVIORED_CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_SIGNATURE = BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_BEHAVIOR = BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int COLLABORATION__CLASSIFIER_BEHAVIOR = BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__INTERFACE_REALIZATION = BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_TRIGGER = BEHAVIORED_CLASSIFIER__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_ATTRIBUTE = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__PART = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__ROLE = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__OWNED_CONNECTOR = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Collaboration Role' reference list. + * + * + * @generated + * @ordered + */ + int COLLABORATION__COLLABORATION_ROLE = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Collaboration' class. + * + * + * @generated + * @ordered + */ + int COLLABORATION_FEATURE_COUNT = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl Connector}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConnectorImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnector() + * @generated + */ + int CONNECTOR = 79; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__EANNOTATIONS = FEATURE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_COMMENT = FEATURE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__VISIBILITY = FEATURE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__CLIENT_DEPENDENCY = FEATURE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__NAMESPACE = FEATURE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__NAME_EXPRESSION = FEATURE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_LEAF = FEATURE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__REDEFINED_ELEMENT = FEATURE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__REDEFINITION_CONTEXT = FEATURE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_STATIC = FEATURE__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__FEATURING_CLASSIFIER = FEATURE__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__TYPE = FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefined Connector' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__REDEFINED_CONNECTOR = FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'End' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__END = FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__KIND = FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Contract' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__CONTRACT = FEATURE_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Connector' class. + * + * + * @generated + * @ordered + */ + int CONNECTOR_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl Redefinable Template Signature}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRedefinableTemplateSignature() + * @generated + */ + int REDEFINABLE_TEMPLATE_SIGNATURE = 80; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__OWNER = REDEFINABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__NAME = REDEFINABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Template' container reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Extended Signature' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Inherited Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Classifier' container reference. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Redefinable Template Signature' class. + * + * + * @generated + * @ordered + */ + int REDEFINABLE_TEMPLATE_SIGNATURE_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl Classifier Template Parameter}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClassifierTemplateParameter() + * @generated + */ + int CLASSIFIER_TEMPLATE_PARAMETER = 81; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__EANNOTATIONS = TEMPLATE_PARAMETER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__OWNED_ELEMENT = TEMPLATE_PARAMETER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__OWNER = TEMPLATE_PARAMETER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__OWNED_COMMENT = TEMPLATE_PARAMETER__OWNED_COMMENT; + + /** + * The feature id for the 'Signature' container reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE = TEMPLATE_PARAMETER__SIGNATURE; + + /** + * The feature id for the 'Owned Parametered Element' containment reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT; + + /** + * The feature id for the 'Default' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT = TEMPLATE_PARAMETER__DEFAULT; + + /** + * The feature id for the 'Owned Default' containment reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT = TEMPLATE_PARAMETER__OWNED_DEFAULT; + + /** + * The feature id for the 'Parametered Element' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT = TEMPLATE_PARAMETER__PARAMETERED_ELEMENT; + + /** + * The feature id for the 'Allow Substitutable' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE = TEMPLATE_PARAMETER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Default Classifier' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER = TEMPLATE_PARAMETER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Constraining Classifier' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER = TEMPLATE_PARAMETER_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Classifier Template Parameter' class. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_TEMPLATE_PARAMETER_FEATURE_COUNT = TEMPLATE_PARAMETER_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl Interface Realization}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterfaceRealization() + * @generated + */ + int INTERFACE_REALIZATION = 82; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__EANNOTATIONS = REALIZATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__OWNED_ELEMENT = REALIZATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__OWNER = REALIZATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__OWNED_COMMENT = REALIZATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__NAME = REALIZATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__VISIBILITY = REALIZATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__QUALIFIED_NAME = REALIZATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__CLIENT_DEPENDENCY = REALIZATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__NAMESPACE = REALIZATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__NAME_EXPRESSION = REALIZATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__TEMPLATE_PARAMETER = REALIZATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER = REALIZATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__RELATED_ELEMENT = REALIZATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__SOURCE = REALIZATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__TARGET = REALIZATION__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__SUPPLIER = REALIZATION__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__CLIENT = REALIZATION__CLIENT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__MAPPING = REALIZATION__MAPPING; + + /** + * The feature id for the 'Contract' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__CONTRACT = REALIZATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Implementing Classifier' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER = REALIZATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Interface Realization' class. + * + * + * @generated + * @ordered + */ + int INTERFACE_REALIZATION_FEATURE_COUNT = REALIZATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl Extension}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExtensionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtension() + * @generated + */ + int EXTENSION = 84; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__EANNOTATIONS = ASSOCIATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_ELEMENT = ASSOCIATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNER = ASSOCIATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_COMMENT = ASSOCIATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__NAME = ASSOCIATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__VISIBILITY = ASSOCIATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__QUALIFIED_NAME = ASSOCIATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__CLIENT_DEPENDENCY = ASSOCIATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__NAMESPACE = ASSOCIATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__NAME_EXPRESSION = ASSOCIATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__ELEMENT_IMPORT = ASSOCIATION__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__PACKAGE_IMPORT = ASSOCIATION__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_RULE = ASSOCIATION__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__MEMBER = ASSOCIATION__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__IMPORTED_MEMBER = ASSOCIATION__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_MEMBER = ASSOCIATION__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__IS_LEAF = ASSOCIATION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__REDEFINED_ELEMENT = ASSOCIATION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__REDEFINITION_CONTEXT = ASSOCIATION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__TEMPLATE_PARAMETER = ASSOCIATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNING_TEMPLATE_PARAMETER = ASSOCIATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__PACKAGE = ASSOCIATION__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__TEMPLATE_BINDING = ASSOCIATION__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_TEMPLATE_SIGNATURE = ASSOCIATION__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__IS_ABSTRACT = ASSOCIATION__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__GENERALIZATION = ASSOCIATION__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__POWERTYPE_EXTENT = ASSOCIATION__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__FEATURE = ASSOCIATION__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__INHERITED_MEMBER = ASSOCIATION__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__REDEFINED_CLASSIFIER = ASSOCIATION__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__GENERAL = ASSOCIATION__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_USE_CASE = ASSOCIATION__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__USE_CASE = ASSOCIATION__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__SUBSTITUTION = ASSOCIATION__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__ATTRIBUTE = ASSOCIATION__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__REPRESENTATION = ASSOCIATION__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__COLLABORATION_USE = ASSOCIATION__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_SIGNATURE = ASSOCIATION__OWNED_SIGNATURE; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__RELATED_ELEMENT = ASSOCIATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__IS_DERIVED = ASSOCIATION__IS_DERIVED; + + /** + * The feature id for the 'End Type' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__END_TYPE = ASSOCIATION__END_TYPE; + + /** + * The feature id for the 'Member End' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__MEMBER_END = ASSOCIATION__MEMBER_END; + + /** + * The feature id for the 'Navigable Owned End' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__NAVIGABLE_OWNED_END = ASSOCIATION__NAVIGABLE_OWNED_END; + + /** + * The feature id for the 'Owned End' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__OWNED_END = ASSOCIATION__OWNED_END; + + /** + * The feature id for the 'Is Required' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__IS_REQUIRED = ASSOCIATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Metaclass' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__METACLASS = ASSOCIATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Extension' class. + * + * + * @generated + * @ordered + */ + int EXTENSION_FEATURE_COUNT = ASSOCIATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl Extension End}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExtensionEnd() + * @generated + */ + int EXTENSION_END = 85; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__EANNOTATIONS = PROPERTY__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OWNED_ELEMENT = PROPERTY__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OWNER = PROPERTY__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OWNED_COMMENT = PROPERTY__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__NAME = PROPERTY__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__VISIBILITY = PROPERTY__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__QUALIFIED_NAME = PROPERTY__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__CLIENT_DEPENDENCY = PROPERTY__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__NAMESPACE = PROPERTY__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__NAME_EXPRESSION = PROPERTY__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_LEAF = PROPERTY__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__REDEFINED_ELEMENT = PROPERTY__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__REDEFINITION_CONTEXT = PROPERTY__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Is Static' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_STATIC = PROPERTY__IS_STATIC; + + /** + * The feature id for the 'Featuring Classifier' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__FEATURING_CLASSIFIER = PROPERTY__FEATURING_CLASSIFIER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__TYPE = PROPERTY__TYPE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_ORDERED = PROPERTY__IS_ORDERED; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_UNIQUE = PROPERTY__IS_UNIQUE; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__UPPER = PROPERTY__UPPER; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__LOWER = PROPERTY__LOWER; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__UPPER_VALUE = PROPERTY__UPPER_VALUE; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__LOWER_VALUE = PROPERTY__LOWER_VALUE; + + /** + * The feature id for the 'Is Read Only' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_READ_ONLY = PROPERTY__IS_READ_ONLY; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__TEMPLATE_PARAMETER = PROPERTY__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OWNING_TEMPLATE_PARAMETER = PROPERTY__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'End' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__END = PROPERTY__END; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__DEPLOYMENT = PROPERTY__DEPLOYMENT; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__DEPLOYED_ELEMENT = PROPERTY__DEPLOYED_ELEMENT; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__TEMPLATE_BINDING = PROPERTY__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OWNED_TEMPLATE_SIGNATURE = PROPERTY__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Datatype' container reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__DATATYPE = PROPERTY__DATATYPE; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_DERIVED = PROPERTY__IS_DERIVED; + + /** + * The feature id for the 'Is Derived Union' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_DERIVED_UNION = PROPERTY__IS_DERIVED_UNION; + + /** + * The feature id for the 'Default' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__DEFAULT = PROPERTY__DEFAULT; + + /** + * The feature id for the 'Aggregation' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__AGGREGATION = PROPERTY__AGGREGATION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__IS_COMPOSITE = PROPERTY__IS_COMPOSITE; + + /** + * The feature id for the 'Class ' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__CLASS_ = PROPERTY__CLASS_; + + /** + * The feature id for the 'Redefined Property' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__REDEFINED_PROPERTY = PROPERTY__REDEFINED_PROPERTY; + + /** + * The feature id for the 'Owning Association' container reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OWNING_ASSOCIATION = PROPERTY__OWNING_ASSOCIATION; + + /** + * The feature id for the 'Association' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__ASSOCIATION = PROPERTY__ASSOCIATION; + + /** + * The feature id for the 'Default Value' containment reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__DEFAULT_VALUE = PROPERTY__DEFAULT_VALUE; + + /** + * The feature id for the 'Opposite' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__OPPOSITE = PROPERTY__OPPOSITE; + + /** + * The feature id for the 'Subsetted Property' reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__SUBSETTED_PROPERTY = PROPERTY__SUBSETTED_PROPERTY; + + /** + * The feature id for the 'Qualifier' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__QUALIFIER = PROPERTY__QUALIFIER; + + /** + * The feature id for the 'Association End' container reference. + * + * + * @generated + * @ordered + */ + int EXTENSION_END__ASSOCIATION_END = PROPERTY__ASSOCIATION_END; + + /** + * The number of structural features of the 'Extension End' class. + * + * + * @generated + * @ordered + */ + int EXTENSION_END_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ImageImpl Image}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ImageImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getImage() + * @generated + */ + int IMAGE = 86; + + /** + * The number of structural features of the 'Image' class. + * + * + * @generated + * @ordered + */ + int IMAGE_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl Expression}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExpressionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExpression() + * @generated + */ + int EXPRESSION = 88; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Symbol' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__SYMBOL = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OPERAND = VALUE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Expression' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl String Expression}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StringExpressionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStringExpression() + * @generated + */ + int STRING_EXPRESSION = 87; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__EANNOTATIONS = EXPRESSION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OWNED_COMMENT = EXPRESSION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__VISIBILITY = EXPRESSION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__CLIENT_DEPENDENCY = EXPRESSION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__NAMESPACE = EXPRESSION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__NAME_EXPRESSION = EXPRESSION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__TEMPLATE_PARAMETER = EXPRESSION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER = EXPRESSION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Symbol' attribute. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__SYMBOL = EXPRESSION__SYMBOL; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OPERAND = EXPRESSION__OPERAND; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__TEMPLATE_BINDING = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Sub Expression' containment reference list. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__SUB_EXPRESSION = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owning Expression' container reference. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION__OWNING_EXPRESSION = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'String Expression' class. + * + * + * @generated + * @ordered + */ + int STRING_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl Literal Integer}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralInteger() + * @generated + */ + int LITERAL_INTEGER = 89; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__EANNOTATIONS = LITERAL_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_ELEMENT = LITERAL_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNER = LITERAL_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_COMMENT = LITERAL_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__NAME = LITERAL_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__VISIBILITY = LITERAL_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__QUALIFIED_NAME = LITERAL_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__CLIENT_DEPENDENCY = LITERAL_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__NAMESPACE = LITERAL_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__NAME_EXPRESSION = LITERAL_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNING_TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__TYPE = LITERAL_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__VALUE = LITERAL_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Integer' class. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER_FEATURE_COUNT = LITERAL_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralStringImpl Literal String}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LiteralStringImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralString() + * @generated + */ + int LITERAL_STRING = 90; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__EANNOTATIONS = LITERAL_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_ELEMENT = LITERAL_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNER = LITERAL_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_COMMENT = LITERAL_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__NAME = LITERAL_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__VISIBILITY = LITERAL_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__QUALIFIED_NAME = LITERAL_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__CLIENT_DEPENDENCY = LITERAL_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__NAMESPACE = LITERAL_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__NAME_EXPRESSION = LITERAL_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNING_TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__TYPE = LITERAL_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__VALUE = LITERAL_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal String' class. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING_FEATURE_COUNT = LITERAL_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl Literal Boolean}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralBoolean() + * @generated + */ + int LITERAL_BOOLEAN = 91; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__EANNOTATIONS = LITERAL_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_ELEMENT = LITERAL_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNER = LITERAL_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_COMMENT = LITERAL_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__NAME = LITERAL_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__VISIBILITY = LITERAL_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__QUALIFIED_NAME = LITERAL_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__CLIENT_DEPENDENCY = LITERAL_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__NAMESPACE = LITERAL_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__NAME_EXPRESSION = LITERAL_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNING_TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__TYPE = LITERAL_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__VALUE = LITERAL_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Boolean' class. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN_FEATURE_COUNT = LITERAL_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralNullImpl Literal Null}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LiteralNullImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralNull() + * @generated + */ + int LITERAL_NULL = 92; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__EANNOTATIONS = LITERAL_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__OWNED_ELEMENT = LITERAL_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__OWNER = LITERAL_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__OWNED_COMMENT = LITERAL_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__NAME = LITERAL_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__VISIBILITY = LITERAL_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__QUALIFIED_NAME = LITERAL_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__CLIENT_DEPENDENCY = LITERAL_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__NAMESPACE = LITERAL_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__NAME_EXPRESSION = LITERAL_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__OWNING_TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL__TYPE = LITERAL_SPECIFICATION__TYPE; + + /** + * The number of structural features of the 'Literal Null' class. + * + * + * @generated + * @ordered + */ + int LITERAL_NULL_FEATURE_COUNT = LITERAL_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SlotImpl Slot}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SlotImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSlot() + * @generated + */ + int SLOT = 93; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SLOT__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SLOT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SLOT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SLOT__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Owning Instance' container reference. + * + * + * @generated + * @ordered + */ + int SLOT__OWNING_INSTANCE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Defining Feature' reference. + * + * + * @generated + * @ordered + */ + int SLOT__DEFINING_FEATURE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Value' containment reference list. + * + * + * @generated + * @ordered + */ + int SLOT__VALUE = ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Slot' class. + * + * + * @generated + * @ordered + */ + int SLOT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl Instance Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInstanceSpecification() + * @generated + */ + int INSTANCE_SPECIFICATION = 94; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__EANNOTATIONS = DEPLOYMENT_TARGET__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__OWNED_ELEMENT = DEPLOYMENT_TARGET__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__OWNER = DEPLOYMENT_TARGET__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__OWNED_COMMENT = DEPLOYMENT_TARGET__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__NAME = DEPLOYMENT_TARGET__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__VISIBILITY = DEPLOYMENT_TARGET__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__QUALIFIED_NAME = DEPLOYMENT_TARGET__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY = DEPLOYMENT_TARGET__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__NAMESPACE = DEPLOYMENT_TARGET__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__NAME_EXPRESSION = DEPLOYMENT_TARGET__NAME_EXPRESSION; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__DEPLOYMENT = DEPLOYMENT_TARGET__DEPLOYMENT; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__DEPLOYED_ELEMENT = DEPLOYMENT_TARGET__DEPLOYED_ELEMENT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER = DEPLOYMENT_TARGET_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER = DEPLOYMENT_TARGET_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Classifier' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__CLASSIFIER = DEPLOYMENT_TARGET_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__SPECIFICATION = DEPLOYMENT_TARGET_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Slot' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION__SLOT = DEPLOYMENT_TARGET_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Instance Specification' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_SPECIFICATION_FEATURE_COUNT = DEPLOYMENT_TARGET_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl Enumeration}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.EnumerationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEnumeration() + * @generated + */ + int ENUMERATION = 95; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__EANNOTATIONS = DATA_TYPE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_ELEMENT = DATA_TYPE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNER = DATA_TYPE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_COMMENT = DATA_TYPE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION__NAME = DATA_TYPE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION__VISIBILITY = DATA_TYPE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION__QUALIFIED_NAME = DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__CLIENT_DEPENDENCY = DATA_TYPE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__NAMESPACE = DATA_TYPE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__NAME_EXPRESSION = DATA_TYPE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__ELEMENT_IMPORT = DATA_TYPE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__PACKAGE_IMPORT = DATA_TYPE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_RULE = DATA_TYPE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__MEMBER = DATA_TYPE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__IMPORTED_MEMBER = DATA_TYPE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_MEMBER = DATA_TYPE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION__IS_LEAF = DATA_TYPE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__REDEFINED_ELEMENT = DATA_TYPE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__REDEFINITION_CONTEXT = DATA_TYPE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__TEMPLATE_PARAMETER = DATA_TYPE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNING_TEMPLATE_PARAMETER = DATA_TYPE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__PACKAGE = DATA_TYPE__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__TEMPLATE_BINDING = DATA_TYPE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_TEMPLATE_SIGNATURE = DATA_TYPE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION__IS_ABSTRACT = DATA_TYPE__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__GENERALIZATION = DATA_TYPE__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__POWERTYPE_EXTENT = DATA_TYPE__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__FEATURE = DATA_TYPE__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__INHERITED_MEMBER = DATA_TYPE__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__REDEFINED_CLASSIFIER = DATA_TYPE__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__GENERAL = DATA_TYPE__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_USE_CASE = DATA_TYPE__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__USE_CASE = DATA_TYPE__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__SUBSTITUTION = DATA_TYPE__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__ATTRIBUTE = DATA_TYPE__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__REPRESENTATION = DATA_TYPE__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__COLLABORATION_USE = DATA_TYPE__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_SIGNATURE = DATA_TYPE__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_ATTRIBUTE = DATA_TYPE__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_OPERATION = DATA_TYPE__OWNED_OPERATION; + + /** + * The feature id for the 'Owned Literal' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION__OWNED_LITERAL = DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Enumeration' class. + * + * + * @generated + * @ordered + */ + int ENUMERATION_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl Enumeration Literal}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getEnumerationLiteral() + * @generated + */ + int ENUMERATION_LITERAL = 96; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__EANNOTATIONS = INSTANCE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__OWNED_ELEMENT = INSTANCE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__OWNER = INSTANCE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__OWNED_COMMENT = INSTANCE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__NAME = INSTANCE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__VISIBILITY = INSTANCE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__QUALIFIED_NAME = INSTANCE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__CLIENT_DEPENDENCY = INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__NAMESPACE = INSTANCE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__NAME_EXPRESSION = INSTANCE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__DEPLOYMENT = INSTANCE_SPECIFICATION__DEPLOYMENT; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__DEPLOYED_ELEMENT = INSTANCE_SPECIFICATION__DEPLOYED_ELEMENT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__TEMPLATE_PARAMETER = INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER = INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__CLASSIFIER = INSTANCE_SPECIFICATION__CLASSIFIER; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__SPECIFICATION = INSTANCE_SPECIFICATION__SPECIFICATION; + + /** + * The feature id for the 'Slot' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__SLOT = INSTANCE_SPECIFICATION__SLOT; + + /** + * The feature id for the 'Enumeration' container reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL__ENUMERATION = INSTANCE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Enumeration Literal' class. + * + * + * @generated + * @ordered + */ + int ENUMERATION_LITERAL_FEATURE_COUNT = INSTANCE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl Primitive Type}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPrimitiveType() + * @generated + */ + int PRIMITIVE_TYPE = 97; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__EANNOTATIONS = DATA_TYPE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_ELEMENT = DATA_TYPE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNER = DATA_TYPE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_COMMENT = DATA_TYPE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__NAME = DATA_TYPE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__VISIBILITY = DATA_TYPE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__QUALIFIED_NAME = DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__CLIENT_DEPENDENCY = DATA_TYPE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__NAMESPACE = DATA_TYPE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__NAME_EXPRESSION = DATA_TYPE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__ELEMENT_IMPORT = DATA_TYPE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__PACKAGE_IMPORT = DATA_TYPE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_RULE = DATA_TYPE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__MEMBER = DATA_TYPE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__IMPORTED_MEMBER = DATA_TYPE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_MEMBER = DATA_TYPE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__IS_LEAF = DATA_TYPE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__REDEFINED_ELEMENT = DATA_TYPE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__REDEFINITION_CONTEXT = DATA_TYPE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__TEMPLATE_PARAMETER = DATA_TYPE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNING_TEMPLATE_PARAMETER = DATA_TYPE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__PACKAGE = DATA_TYPE__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__TEMPLATE_BINDING = DATA_TYPE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_TEMPLATE_SIGNATURE = DATA_TYPE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__IS_ABSTRACT = DATA_TYPE__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__GENERALIZATION = DATA_TYPE__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__POWERTYPE_EXTENT = DATA_TYPE__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__FEATURE = DATA_TYPE__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__INHERITED_MEMBER = DATA_TYPE__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__REDEFINED_CLASSIFIER = DATA_TYPE__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__GENERAL = DATA_TYPE__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_USE_CASE = DATA_TYPE__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__USE_CASE = DATA_TYPE__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__SUBSTITUTION = DATA_TYPE__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__ATTRIBUTE = DATA_TYPE__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__REPRESENTATION = DATA_TYPE__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__COLLABORATION_USE = DATA_TYPE__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_SIGNATURE = DATA_TYPE__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_ATTRIBUTE = DATA_TYPE__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE__OWNED_OPERATION = DATA_TYPE__OWNED_OPERATION; + + /** + * The number of structural features of the 'Primitive Type' class. + * + * + * @generated + * @ordered + */ + int PRIMITIVE_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InstanceValueImpl Instance Value}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InstanceValueImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInstanceValue() + * @generated + */ + int INSTANCE_VALUE = 98; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Instance' reference. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE__INSTANCE = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Instance Value' class. + * + * + * @generated + * @ordered + */ + int INSTANCE_VALUE_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl Literal Unlimited Natural}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLiteralUnlimitedNatural() + * @generated + */ + int LITERAL_UNLIMITED_NATURAL = 99; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__EANNOTATIONS = LITERAL_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__OWNED_ELEMENT = LITERAL_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__OWNER = LITERAL_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__OWNED_COMMENT = LITERAL_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__NAME = LITERAL_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__VISIBILITY = LITERAL_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__QUALIFIED_NAME = LITERAL_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__CLIENT_DEPENDENCY = LITERAL_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__NAMESPACE = LITERAL_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__NAME_EXPRESSION = LITERAL_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__OWNING_TEMPLATE_PARAMETER = LITERAL_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__TYPE = LITERAL_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL__VALUE = LITERAL_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Unlimited Natural' class. + * + * + * @generated + * @ordered + */ + int LITERAL_UNLIMITED_NATURAL_FEATURE_COUNT = LITERAL_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl Opaque Behavior}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueBehavior() + * @generated + */ + int OPAQUE_BEHAVIOR = 100; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__EANNOTATIONS = BEHAVIOR__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_ELEMENT = BEHAVIOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNER = BEHAVIOR__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_COMMENT = BEHAVIOR__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__NAME = BEHAVIOR__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__VISIBILITY = BEHAVIOR__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__QUALIFIED_NAME = BEHAVIOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY = BEHAVIOR__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__NAMESPACE = BEHAVIOR__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__NAME_EXPRESSION = BEHAVIOR__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__ELEMENT_IMPORT = BEHAVIOR__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__PACKAGE_IMPORT = BEHAVIOR__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_RULE = BEHAVIOR__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__MEMBER = BEHAVIOR__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__IMPORTED_MEMBER = BEHAVIOR__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_MEMBER = BEHAVIOR__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__IS_LEAF = BEHAVIOR__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__REDEFINED_ELEMENT = BEHAVIOR__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__REDEFINITION_CONTEXT = BEHAVIOR__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER = BEHAVIOR__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNING_TEMPLATE_PARAMETER = BEHAVIOR__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__PACKAGE = BEHAVIOR__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__TEMPLATE_BINDING = BEHAVIOR__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE = BEHAVIOR__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__IS_ABSTRACT = BEHAVIOR__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__GENERALIZATION = BEHAVIOR__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__POWERTYPE_EXTENT = BEHAVIOR__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__FEATURE = BEHAVIOR__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__INHERITED_MEMBER = BEHAVIOR__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER = BEHAVIOR__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__GENERAL = BEHAVIOR__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_USE_CASE = BEHAVIOR__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__USE_CASE = BEHAVIOR__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__SUBSTITUTION = BEHAVIOR__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__ATTRIBUTE = BEHAVIOR__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__REPRESENTATION = BEHAVIOR__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__COLLABORATION_USE = BEHAVIOR__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_SIGNATURE = BEHAVIOR__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE = BEHAVIOR__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__PART = BEHAVIOR__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__ROLE = BEHAVIOR__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_CONNECTOR = BEHAVIOR__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_PORT = BEHAVIOR__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_BEHAVIOR = BEHAVIOR__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR = BEHAVIOR__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__INTERFACE_REALIZATION = BEHAVIOR__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_TRIGGER = BEHAVIOR__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_OPERATION = BEHAVIOR__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__NESTED_CLASSIFIER = BEHAVIOR__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__SUPER_CLASS = BEHAVIOR__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__IS_ACTIVE = BEHAVIOR__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_RECEPTION = BEHAVIOR__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__EXTENSION = BEHAVIOR__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__IS_REENTRANT = BEHAVIOR__IS_REENTRANT; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR = BEHAVIOR__REDEFINED_BEHAVIOR; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_PARAMETER = BEHAVIOR__OWNED_PARAMETER; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__CONTEXT = BEHAVIOR__CONTEXT; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET = BEHAVIOR__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__SPECIFICATION = BEHAVIOR__SPECIFICATION; + + /** + * The feature id for the 'Body' attribute list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__BODY = BEHAVIOR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Language' attribute list. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR__LANGUAGE = BEHAVIOR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Opaque Behavior' class. + * + * + * @generated + * @ordered + */ + int OPAQUE_BEHAVIOR_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FunctionBehaviorImpl Function Behavior}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.FunctionBehaviorImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFunctionBehavior() + * @generated + */ + int FUNCTION_BEHAVIOR = 101; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__EANNOTATIONS = OPAQUE_BEHAVIOR__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_ELEMENT = OPAQUE_BEHAVIOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNER = OPAQUE_BEHAVIOR__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_COMMENT = OPAQUE_BEHAVIOR__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__NAME = OPAQUE_BEHAVIOR__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__VISIBILITY = OPAQUE_BEHAVIOR__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__QUALIFIED_NAME = OPAQUE_BEHAVIOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__CLIENT_DEPENDENCY = OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__NAMESPACE = OPAQUE_BEHAVIOR__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__NAME_EXPRESSION = OPAQUE_BEHAVIOR__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__ELEMENT_IMPORT = OPAQUE_BEHAVIOR__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__PACKAGE_IMPORT = OPAQUE_BEHAVIOR__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_RULE = OPAQUE_BEHAVIOR__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__MEMBER = OPAQUE_BEHAVIOR__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__IMPORTED_MEMBER = OPAQUE_BEHAVIOR__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_MEMBER = OPAQUE_BEHAVIOR__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__IS_LEAF = OPAQUE_BEHAVIOR__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__REDEFINED_ELEMENT = OPAQUE_BEHAVIOR__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__REDEFINITION_CONTEXT = OPAQUE_BEHAVIOR__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__TEMPLATE_PARAMETER = OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNING_TEMPLATE_PARAMETER = OPAQUE_BEHAVIOR__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__PACKAGE = OPAQUE_BEHAVIOR__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__TEMPLATE_BINDING = OPAQUE_BEHAVIOR__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE = OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__IS_ABSTRACT = OPAQUE_BEHAVIOR__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__GENERALIZATION = OPAQUE_BEHAVIOR__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__POWERTYPE_EXTENT = OPAQUE_BEHAVIOR__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__FEATURE = OPAQUE_BEHAVIOR__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__INHERITED_MEMBER = OPAQUE_BEHAVIOR__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__REDEFINED_CLASSIFIER = OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__GENERAL = OPAQUE_BEHAVIOR__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_USE_CASE = OPAQUE_BEHAVIOR__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__USE_CASE = OPAQUE_BEHAVIOR__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__SUBSTITUTION = OPAQUE_BEHAVIOR__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__ATTRIBUTE = OPAQUE_BEHAVIOR__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__REPRESENTATION = OPAQUE_BEHAVIOR__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__COLLABORATION_USE = OPAQUE_BEHAVIOR__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_SIGNATURE = OPAQUE_BEHAVIOR__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_ATTRIBUTE = OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__PART = OPAQUE_BEHAVIOR__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__ROLE = OPAQUE_BEHAVIOR__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_CONNECTOR = OPAQUE_BEHAVIOR__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_PORT = OPAQUE_BEHAVIOR__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_BEHAVIOR = OPAQUE_BEHAVIOR__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__CLASSIFIER_BEHAVIOR = OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__INTERFACE_REALIZATION = OPAQUE_BEHAVIOR__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_TRIGGER = OPAQUE_BEHAVIOR__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_OPERATION = OPAQUE_BEHAVIOR__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__NESTED_CLASSIFIER = OPAQUE_BEHAVIOR__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__SUPER_CLASS = OPAQUE_BEHAVIOR__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__IS_ACTIVE = OPAQUE_BEHAVIOR__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_RECEPTION = OPAQUE_BEHAVIOR__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__EXTENSION = OPAQUE_BEHAVIOR__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__IS_REENTRANT = OPAQUE_BEHAVIOR__IS_REENTRANT; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__REDEFINED_BEHAVIOR = OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_PARAMETER = OPAQUE_BEHAVIOR__OWNED_PARAMETER; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__CONTEXT = OPAQUE_BEHAVIOR__CONTEXT; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__OWNED_PARAMETER_SET = OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__SPECIFICATION = OPAQUE_BEHAVIOR__SPECIFICATION; + + /** + * The feature id for the 'Body' attribute list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__BODY = OPAQUE_BEHAVIOR__BODY; + + /** + * The feature id for the 'Language' attribute list. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR__LANGUAGE = OPAQUE_BEHAVIOR__LANGUAGE; + + /** + * The number of structural features of the 'Function Behavior' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_BEHAVIOR_FEATURE_COUNT = OPAQUE_BEHAVIOR_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActorImpl Actor}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActorImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActor() + * @generated + */ + int ACTOR = 102; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__EANNOTATIONS = BEHAVIORED_CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_ELEMENT = BEHAVIORED_CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNER = BEHAVIORED_CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_COMMENT = BEHAVIORED_CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR__NAME = BEHAVIORED_CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR__VISIBILITY = BEHAVIORED_CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR__QUALIFIED_NAME = BEHAVIORED_CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__CLIENT_DEPENDENCY = BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTOR__NAMESPACE = BEHAVIORED_CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTOR__NAME_EXPRESSION = BEHAVIORED_CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__ELEMENT_IMPORT = BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__PACKAGE_IMPORT = BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_RULE = BEHAVIORED_CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__MEMBER = BEHAVIORED_CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__IMPORTED_MEMBER = BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_MEMBER = BEHAVIORED_CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR__IS_LEAF = BEHAVIORED_CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__REDEFINED_ELEMENT = BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__REDEFINITION_CONTEXT = BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ACTOR__TEMPLATE_PARAMETER = BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNING_TEMPLATE_PARAMETER = BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ACTOR__PACKAGE = BEHAVIORED_CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__TEMPLATE_BINDING = BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_TEMPLATE_SIGNATURE = BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR__IS_ABSTRACT = BEHAVIORED_CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__GENERALIZATION = BEHAVIORED_CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__POWERTYPE_EXTENT = BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__FEATURE = BEHAVIORED_CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__INHERITED_MEMBER = BEHAVIORED_CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__REDEFINED_CLASSIFIER = BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__GENERAL = BEHAVIORED_CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_USE_CASE = BEHAVIORED_CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__USE_CASE = BEHAVIORED_CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__SUBSTITUTION = BEHAVIORED_CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__ATTRIBUTE = BEHAVIORED_CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ACTOR__REPRESENTATION = BEHAVIORED_CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__COLLABORATION_USE = BEHAVIORED_CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_SIGNATURE = BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_BEHAVIOR = BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int ACTOR__CLASSIFIER_BEHAVIOR = BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__INTERFACE_REALIZATION = BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR__OWNED_TRIGGER = BEHAVIORED_CLASSIFIER__OWNED_TRIGGER; + + /** + * The number of structural features of the 'Actor' class. + * + * + * @generated + * @ordered + */ + int ACTOR_FEATURE_COUNT = BEHAVIORED_CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.UsageImpl Usage}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.UsageImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getUsage() + * @generated + */ + int USAGE = 103; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int USAGE__EANNOTATIONS = DEPENDENCY__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_ELEMENT = DEPENDENCY__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNER = DEPENDENCY__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_COMMENT = DEPENDENCY__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__NAME = DEPENDENCY__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__VISIBILITY = DEPENDENCY__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__QUALIFIED_NAME = DEPENDENCY__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__CLIENT_DEPENDENCY = DEPENDENCY__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int USAGE__NAMESPACE = DEPENDENCY__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int USAGE__NAME_EXPRESSION = DEPENDENCY__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int USAGE__TEMPLATE_PARAMETER = DEPENDENCY__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_TEMPLATE_PARAMETER = DEPENDENCY__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__RELATED_ELEMENT = DEPENDENCY__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__SOURCE = DEPENDENCY__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__TARGET = DEPENDENCY__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__SUPPLIER = DEPENDENCY__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__CLIENT = DEPENDENCY__CLIENT; + + /** + * The number of structural features of the 'Usage' class. + * + * + * @generated + * @ordered + */ + int USAGE_FEATURE_COUNT = DEPENDENCY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageImpl Message}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.MessageImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessage() + * @generated + */ + int MESSAGE = 104; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Message Kind' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__MESSAGE_KIND = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Message Sort' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__MESSAGE_SORT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Receive Event' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__RECEIVE_EVENT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Send Event' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__SEND_EVENT = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Connector' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__CONNECTOR = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Interaction' container reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__INTERACTION = NAMED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__ARGUMENT = NAMED_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Signature' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__SIGNATURE = NAMED_ELEMENT_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Message' class. + * + * + * @generated + * @ordered + */ + int MESSAGE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageEndImpl Message End}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.MessageEndImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageEnd() + * @generated + */ + int MESSAGE_END = 105; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Message' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_END__MESSAGE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Message End' class. + * + * + * @generated + * @ordered + */ + int MESSAGE_END_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl Interaction}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InteractionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteraction() + * @generated + */ + int INTERACTION = 106; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__EANNOTATIONS = BEHAVIOR__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_ELEMENT = BEHAVIOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNER = BEHAVIOR__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_COMMENT = BEHAVIOR__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__NAME = BEHAVIOR__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__VISIBILITY = BEHAVIOR__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__QUALIFIED_NAME = BEHAVIOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__CLIENT_DEPENDENCY = BEHAVIOR__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__NAMESPACE = BEHAVIOR__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__NAME_EXPRESSION = BEHAVIOR__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ELEMENT_IMPORT = BEHAVIOR__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__PACKAGE_IMPORT = BEHAVIOR__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_RULE = BEHAVIOR__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__MEMBER = BEHAVIOR__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__IMPORTED_MEMBER = BEHAVIOR__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_MEMBER = BEHAVIOR__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_LEAF = BEHAVIOR__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__REDEFINED_ELEMENT = BEHAVIOR__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__REDEFINITION_CONTEXT = BEHAVIOR__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__TEMPLATE_PARAMETER = BEHAVIOR__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNING_TEMPLATE_PARAMETER = BEHAVIOR__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__PACKAGE = BEHAVIOR__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TEMPLATE_BINDING = BEHAVIOR__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_TEMPLATE_SIGNATURE = BEHAVIOR__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_ABSTRACT = BEHAVIOR__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__GENERALIZATION = BEHAVIOR__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__POWERTYPE_EXTENT = BEHAVIOR__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__FEATURE = BEHAVIOR__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__INHERITED_MEMBER = BEHAVIOR__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__REDEFINED_CLASSIFIER = BEHAVIOR__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__GENERAL = BEHAVIOR__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_USE_CASE = BEHAVIOR__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__USE_CASE = BEHAVIOR__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__SUBSTITUTION = BEHAVIOR__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ATTRIBUTE = BEHAVIOR__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__REPRESENTATION = BEHAVIOR__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__COLLABORATION_USE = BEHAVIOR__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_SIGNATURE = BEHAVIOR__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_ATTRIBUTE = BEHAVIOR__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__PART = BEHAVIOR__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ROLE = BEHAVIOR__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_CONNECTOR = BEHAVIOR__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_PORT = BEHAVIOR__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_BEHAVIOR = BEHAVIOR__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__CLASSIFIER_BEHAVIOR = BEHAVIOR__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__INTERFACE_REALIZATION = BEHAVIOR__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_TRIGGER = BEHAVIOR__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_OPERATION = BEHAVIOR__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__NESTED_CLASSIFIER = BEHAVIOR__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__SUPER_CLASS = BEHAVIOR__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_ACTIVE = BEHAVIOR__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_RECEPTION = BEHAVIOR__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__EXTENSION = BEHAVIOR__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_REENTRANT = BEHAVIOR__IS_REENTRANT; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__REDEFINED_BEHAVIOR = BEHAVIOR__REDEFINED_BEHAVIOR; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_PARAMETER = BEHAVIOR__OWNED_PARAMETER; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__CONTEXT = BEHAVIOR__CONTEXT; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_PARAMETER_SET = BEHAVIOR__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__SPECIFICATION = BEHAVIOR__SPECIFICATION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__COVERED = BEHAVIOR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__GENERAL_ORDERING = BEHAVIOR_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__ENCLOSING_INTERACTION = BEHAVIOR_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__ENCLOSING_OPERAND = BEHAVIOR_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Lifeline' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__LIFELINE = BEHAVIOR_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Fragment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__FRAGMENT = BEHAVIOR_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Action' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ACTION = BEHAVIOR_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Formal Gate' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__FORMAL_GATE = BEHAVIOR_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Message' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__MESSAGE = BEHAVIOR_FEATURE_COUNT + 8; + + /** + * The number of structural features of the 'Interaction' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 9; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl Interaction Fragment}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionFragment() + * @generated + */ + int INTERACTION_FRAGMENT = 107; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__COVERED = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__GENERAL_ORDERING = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__ENCLOSING_INTERACTION = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT__ENCLOSING_OPERAND = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Interaction Fragment' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_FRAGMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl Lifeline}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LifelineImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLifeline() + * @generated + */ + int LIFELINE = 108; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LIFELINE__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LIFELINE__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LIFELINE__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LIFELINE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LIFELINE__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LIFELINE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LIFELINE__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Represents' reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__REPRESENTS = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Interaction' container reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__INTERACTION = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Selector' containment reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__SELECTOR = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Decomposed As' reference. + * + * + * @generated + * @ordered + */ + int LIFELINE__DECOMPOSED_AS = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Covered By' reference list. + * + * + * @generated + * @ordered + */ + int LIFELINE__COVERED_BY = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Lifeline' class. + * + * + * @generated + * @ordered + */ + int LIFELINE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl Interaction Use}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InteractionUseImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionUse() + * @generated + */ + int INTERACTION_USE = 110; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__EANNOTATIONS = INTERACTION_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__OWNED_ELEMENT = INTERACTION_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__OWNER = INTERACTION_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__OWNED_COMMENT = INTERACTION_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__NAME = INTERACTION_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__VISIBILITY = INTERACTION_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__QUALIFIED_NAME = INTERACTION_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__CLIENT_DEPENDENCY = INTERACTION_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__NAMESPACE = INTERACTION_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__NAME_EXPRESSION = INTERACTION_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__COVERED = INTERACTION_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__GENERAL_ORDERING = INTERACTION_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__ENCLOSING_INTERACTION = INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__ENCLOSING_OPERAND = INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Refers To' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__REFERS_TO = INTERACTION_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Actual Gate' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__ACTUAL_GATE = INTERACTION_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE__ARGUMENT = INTERACTION_FRAGMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Interaction Use' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_USE_FEATURE_COUNT = INTERACTION_FRAGMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PartDecompositionImpl Part Decomposition}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PartDecompositionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPartDecomposition() + * @generated + */ + int PART_DECOMPOSITION = 109; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__EANNOTATIONS = INTERACTION_USE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__OWNED_ELEMENT = INTERACTION_USE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__OWNER = INTERACTION_USE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__OWNED_COMMENT = INTERACTION_USE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__NAME = INTERACTION_USE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__VISIBILITY = INTERACTION_USE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__QUALIFIED_NAME = INTERACTION_USE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__CLIENT_DEPENDENCY = INTERACTION_USE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__NAMESPACE = INTERACTION_USE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__NAME_EXPRESSION = INTERACTION_USE__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__COVERED = INTERACTION_USE__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__GENERAL_ORDERING = INTERACTION_USE__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__ENCLOSING_INTERACTION = INTERACTION_USE__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__ENCLOSING_OPERAND = INTERACTION_USE__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Refers To' reference. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__REFERS_TO = INTERACTION_USE__REFERS_TO; + + /** + * The feature id for the 'Actual Gate' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__ACTUAL_GATE = INTERACTION_USE__ACTUAL_GATE; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION__ARGUMENT = INTERACTION_USE__ARGUMENT; + + /** + * The number of structural features of the 'Part Decomposition' class. + * + * + * @generated + * @ordered + */ + int PART_DECOMPOSITION_FEATURE_COUNT = INTERACTION_USE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GateImpl Gate}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.GateImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGate() + * @generated + */ + int GATE = 111; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE__EANNOTATIONS = MESSAGE_END__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int GATE__OWNED_ELEMENT = MESSAGE_END__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int GATE__OWNER = MESSAGE_END__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE__OWNED_COMMENT = MESSAGE_END__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE__NAME = MESSAGE_END__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int GATE__VISIBILITY = MESSAGE_END__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE__QUALIFIED_NAME = MESSAGE_END__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int GATE__CLIENT_DEPENDENCY = MESSAGE_END__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int GATE__NAMESPACE = MESSAGE_END__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int GATE__NAME_EXPRESSION = MESSAGE_END__NAME_EXPRESSION; + + /** + * The feature id for the 'Message' reference. + * + * + * @generated + * @ordered + */ + int GATE__MESSAGE = MESSAGE_END__MESSAGE; + + /** + * The number of structural features of the 'Gate' class. + * + * + * @generated + * @ordered + */ + int GATE_FEATURE_COUNT = MESSAGE_END_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl Activity Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityNode() + * @generated + */ + int ACTIVITY_NODE = 114; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__OWNER = REDEFINABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__NAME = REDEFINABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__OUTGOING = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__IN_GROUP = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__IN_PARTITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__IN_STRUCTURED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__ACTIVITY = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__INCOMING = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE__REDEFINED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Activity Node' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_NODE_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl Executable Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutableNode() + * @generated + */ + int EXECUTABLE_NODE = 113; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__EANNOTATIONS = ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__OWNED_ELEMENT = ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__OWNER = ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__OWNED_COMMENT = ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__NAME = ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__VISIBILITY = ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__QUALIFIED_NAME = ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__CLIENT_DEPENDENCY = ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__NAMESPACE = ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__NAME_EXPRESSION = ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__IS_LEAF = ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__REDEFINED_ELEMENT = ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__REDEFINITION_CONTEXT = ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__OUTGOING = ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__IN_PARTITION = ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__IN_STRUCTURED_NODE = ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__ACTIVITY = ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__INCOMING = ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION = ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__REDEFINED_NODE = ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE__HANDLER = ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Executable Node' class. + * + * + * @generated + * @ordered + */ + int EXECUTABLE_NODE_FEATURE_COUNT = ACTIVITY_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionImpl Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAction() + * @generated + */ + int ACTION = 112; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__EANNOTATIONS = EXECUTABLE_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__OWNED_ELEMENT = EXECUTABLE_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTION__OWNER = EXECUTABLE_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__OWNED_COMMENT = EXECUTABLE_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__NAME = EXECUTABLE_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__VISIBILITY = EXECUTABLE_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__QUALIFIED_NAME = EXECUTABLE_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__CLIENT_DEPENDENCY = EXECUTABLE_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTION__NAMESPACE = EXECUTABLE_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION__NAME_EXPRESSION = EXECUTABLE_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__IS_LEAF = EXECUTABLE_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__REDEFINED_ELEMENT = EXECUTABLE_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__REDEFINITION_CONTEXT = EXECUTABLE_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__OUTGOING = EXECUTABLE_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__IN_GROUP = EXECUTABLE_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__IN_PARTITION = EXECUTABLE_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACTION__IN_STRUCTURED_NODE = EXECUTABLE_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTION__ACTIVITY = EXECUTABLE_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__INCOMING = EXECUTABLE_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__IN_INTERRUPTIBLE_REGION = EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__REDEFINED_NODE = EXECUTABLE_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__HANDLER = EXECUTABLE_NODE__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__OUTPUT = EXECUTABLE_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ACTION__INPUT = EXECUTABLE_NODE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int ACTION__CONTEXT = EXECUTABLE_NODE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__LOCAL_PRECONDITION = EXECUTABLE_NODE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__LOCAL_POSTCONDITION = EXECUTABLE_NODE_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Action' class. + * + * + * @generated + * @ordered + */ + int ACTION_FEATURE_COUNT = EXECUTABLE_NODE_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl Activity Edge}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityEdge() + * @generated + */ + int ACTIVITY_EDGE = 115; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__EANNOTATIONS = REDEFINABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__OWNED_ELEMENT = REDEFINABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__OWNER = REDEFINABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__OWNED_COMMENT = REDEFINABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__NAME = REDEFINABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__VISIBILITY = REDEFINABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__QUALIFIED_NAME = REDEFINABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__CLIENT_DEPENDENCY = REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__NAMESPACE = REDEFINABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__NAME_EXPRESSION = REDEFINABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__IS_LEAF = REDEFINABLE_ELEMENT__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__REDEFINED_ELEMENT = REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__REDEFINITION_CONTEXT = REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__ACTIVITY = REDEFINABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__IN_GROUP = REDEFINABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__IN_PARTITION = REDEFINABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__IN_STRUCTURED_NODE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Target' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__TARGET = REDEFINABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Redefined Edge' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__REDEFINED_EDGE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Guard' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__GUARD = REDEFINABLE_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Weight' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__WEIGHT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Interrupts' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__INTERRUPTS = REDEFINABLE_ELEMENT_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Source' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE__SOURCE = REDEFINABLE_ELEMENT_FEATURE_COUNT + 9; + + /** + * The number of structural features of the 'Activity Edge' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_EDGE_FEATURE_COUNT = REDEFINABLE_ELEMENT_FEATURE_COUNT + 10; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl Activity}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivity() + * @generated + */ + int ACTIVITY = 116; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__EANNOTATIONS = BEHAVIOR__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_ELEMENT = BEHAVIOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNER = BEHAVIOR__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_COMMENT = BEHAVIOR__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__NAME = BEHAVIOR__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__VISIBILITY = BEHAVIOR__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__QUALIFIED_NAME = BEHAVIOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__CLIENT_DEPENDENCY = BEHAVIOR__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__NAMESPACE = BEHAVIOR__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__NAME_EXPRESSION = BEHAVIOR__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__ELEMENT_IMPORT = BEHAVIOR__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__PACKAGE_IMPORT = BEHAVIOR__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_RULE = BEHAVIOR__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__MEMBER = BEHAVIOR__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IMPORTED_MEMBER = BEHAVIOR__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_MEMBER = BEHAVIOR__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IS_LEAF = BEHAVIOR__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__REDEFINED_ELEMENT = BEHAVIOR__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__REDEFINITION_CONTEXT = BEHAVIOR__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__TEMPLATE_PARAMETER = BEHAVIOR__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNING_TEMPLATE_PARAMETER = BEHAVIOR__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__PACKAGE = BEHAVIOR__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__TEMPLATE_BINDING = BEHAVIOR__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_TEMPLATE_SIGNATURE = BEHAVIOR__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IS_ABSTRACT = BEHAVIOR__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__GENERALIZATION = BEHAVIOR__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__POWERTYPE_EXTENT = BEHAVIOR__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__FEATURE = BEHAVIOR__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__INHERITED_MEMBER = BEHAVIOR__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__REDEFINED_CLASSIFIER = BEHAVIOR__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__GENERAL = BEHAVIOR__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_USE_CASE = BEHAVIOR__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__USE_CASE = BEHAVIOR__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__SUBSTITUTION = BEHAVIOR__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__ATTRIBUTE = BEHAVIOR__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__REPRESENTATION = BEHAVIOR__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__COLLABORATION_USE = BEHAVIOR__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_SIGNATURE = BEHAVIOR__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_ATTRIBUTE = BEHAVIOR__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__PART = BEHAVIOR__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__ROLE = BEHAVIOR__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_CONNECTOR = BEHAVIOR__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_PORT = BEHAVIOR__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_BEHAVIOR = BEHAVIOR__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__CLASSIFIER_BEHAVIOR = BEHAVIOR__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__INTERFACE_REALIZATION = BEHAVIOR__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_TRIGGER = BEHAVIOR__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_OPERATION = BEHAVIOR__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__NESTED_CLASSIFIER = BEHAVIOR__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__SUPER_CLASS = BEHAVIOR__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IS_ACTIVE = BEHAVIOR__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_RECEPTION = BEHAVIOR__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__EXTENSION = BEHAVIOR__EXTENSION; + + /** + * The feature id for the 'Is Reentrant' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IS_REENTRANT = BEHAVIOR__IS_REENTRANT; + + /** + * The feature id for the 'Redefined Behavior' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__REDEFINED_BEHAVIOR = BEHAVIOR__REDEFINED_BEHAVIOR; + + /** + * The feature id for the 'Owned Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_PARAMETER = BEHAVIOR__OWNED_PARAMETER; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__CONTEXT = BEHAVIOR__CONTEXT; + + /** + * The feature id for the 'Owned Parameter Set' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__OWNED_PARAMETER_SET = BEHAVIOR__OWNED_PARAMETER_SET; + + /** + * The feature id for the 'Specification' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__SPECIFICATION = BEHAVIOR__SPECIFICATION; + + /** + * The feature id for the 'Is Read Only' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IS_READ_ONLY = BEHAVIOR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Partition' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY__PARTITION = BEHAVIOR_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Group' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__GROUP = BEHAVIOR_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Is Single Execution' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY__IS_SINGLE_EXECUTION = BEHAVIOR_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Structured Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__STRUCTURED_NODE = BEHAVIOR_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__VARIABLE = BEHAVIOR_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Node' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__NODE = BEHAVIOR_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Edge' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY__EDGE = BEHAVIOR_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Activity' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl Activity Partition}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityPartition() + * @generated + */ + int ACTIVITY_PARTITION = 117; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__SUBGROUP = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__SUPER_GROUP = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__CONTAINED_NODE = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__IN_ACTIVITY = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__CONTAINED_EDGE = NAMED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Is Dimension' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__IS_DIMENSION = NAMED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Is External' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__IS_EXTERNAL = NAMED_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Edge' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__EDGE = NAMED_ELEMENT_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__NODE = NAMED_ELEMENT_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Subpartition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__SUBPARTITION = NAMED_ELEMENT_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Super Partition' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__SUPER_PARTITION = NAMED_ELEMENT_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Represents' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION__REPRESENTS = NAMED_ELEMENT_FEATURE_COUNT + 11; + + /** + * The number of structural features of the 'Activity Partition' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARTITION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 12; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl Activity Group}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityGroup() + * @generated + */ + int ACTIVITY_GROUP = 118; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__SUBGROUP = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__SUPER_GROUP = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__CONTAINED_NODE = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__IN_ACTIVITY = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP__CONTAINED_EDGE = ELEMENT_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Activity Group' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_GROUP_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl Structured Activity Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuredActivityNode() + * @generated + */ + int STRUCTURED_ACTIVITY_NODE = 119; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OWNED_RULE = ACTION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__MEMBER = ACTION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER = ACTION_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER = ACTION_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__SUBGROUP = ACTION_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__SUPER_GROUP = ACTION_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE = ACTION_FEATURE_COUNT + 8; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY = ACTION_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE = ACTION_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__VARIABLE = ACTION_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Node' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__NODE = ACTION_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Must Isolate' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE = ACTION_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Edge' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE__EDGE = ACTION_FEATURE_COUNT + 14; + + /** + * The number of structural features of the 'Structured Activity Node' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT = ACTION_FEATURE_COUNT + 15; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.VariableImpl Variable}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.VariableImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVariable() + * @generated + */ + int VARIABLE = 120; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__EANNOTATIONS = TYPED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__OWNED_ELEMENT = TYPED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__OWNER = TYPED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__OWNED_COMMENT = TYPED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__NAME = TYPED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__VISIBILITY = TYPED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__QUALIFIED_NAME = TYPED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__CLIENT_DEPENDENCY = TYPED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__NAMESPACE = TYPED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__NAME_EXPRESSION = TYPED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__TYPE = TYPED_ELEMENT__TYPE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__IS_ORDERED = TYPED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__IS_UNIQUE = TYPED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Upper' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__UPPER = TYPED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Lower' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__LOWER = TYPED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Upper Value' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__UPPER_VALUE = TYPED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Lower Value' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__LOWER_VALUE = TYPED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Activity Scope' container reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__ACTIVITY_SCOPE = TYPED_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Scope' container reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__SCOPE = TYPED_ELEMENT_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 8; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl Interruptible Activity Region}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterruptibleActivityRegion() + * @generated + */ + int INTERRUPTIBLE_ACTIVITY_REGION = 121; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS = ACTIVITY_GROUP__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__OWNED_ELEMENT = ACTIVITY_GROUP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__OWNER = ACTIVITY_GROUP__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT = ACTIVITY_GROUP__OWNED_COMMENT; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__SUBGROUP = ACTIVITY_GROUP__SUBGROUP; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__SUPER_GROUP = ACTIVITY_GROUP__SUPER_GROUP; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE = ACTIVITY_GROUP__CONTAINED_NODE; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY = ACTIVITY_GROUP__IN_ACTIVITY; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE = ACTIVITY_GROUP__CONTAINED_EDGE; + + /** + * The feature id for the 'Node' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__NODE = ACTIVITY_GROUP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Interrupting Edge' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE = ACTIVITY_GROUP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Interruptible Activity Region' class. + * + * + * @generated + * @ordered + */ + int INTERRUPTIBLE_ACTIVITY_REGION_FEATURE_COUNT = ACTIVITY_GROUP_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl Exception Handler}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExceptionHandler() + * @generated + */ + int EXCEPTION_HANDLER = 122; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Handler Body' reference. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__HANDLER_BODY = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Exception Input' reference. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__EXCEPTION_INPUT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Exception Type' reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__EXCEPTION_TYPE = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Protected Node' container reference. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER__PROTECTED_NODE = ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Exception Handler' class. + * + * + * @generated + * @ordered + */ + int EXCEPTION_HANDLER_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl Object Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getObjectNode() + * @generated + */ + int OBJECT_NODE = 123; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__EANNOTATIONS = ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__OWNED_ELEMENT = ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__OWNER = ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__OWNED_COMMENT = ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__NAME = ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__VISIBILITY = ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__QUALIFIED_NAME = ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__CLIENT_DEPENDENCY = ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__NAMESPACE = ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__NAME_EXPRESSION = ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IS_LEAF = ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__REDEFINED_ELEMENT = ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__REDEFINITION_CONTEXT = ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__OUTGOING = ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IN_PARTITION = ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IN_STRUCTURED_NODE = ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__ACTIVITY = ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__INCOMING = ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IN_INTERRUPTIBLE_REGION = ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__REDEFINED_NODE = ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__TYPE = ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__ORDERING = ACTIVITY_NODE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IS_CONTROL_TYPE = ACTIVITY_NODE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__UPPER_BOUND = ACTIVITY_NODE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__IN_STATE = ACTIVITY_NODE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE__SELECTION = ACTIVITY_NODE_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Object Node' class. + * + * + * @generated + * @ordered + */ + int OBJECT_NODE_FEATURE_COUNT = ACTIVITY_NODE_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.PinImpl Pin}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.PinImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPin() + * @generated + */ + int PIN = 125; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PIN__EANNOTATIONS = OBJECT_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PIN__OWNED_ELEMENT = OBJECT_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PIN__OWNER = OBJECT_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PIN__OWNED_COMMENT = OBJECT_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PIN__NAME = OBJECT_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PIN__VISIBILITY = OBJECT_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PIN__QUALIFIED_NAME = OBJECT_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PIN__CLIENT_DEPENDENCY = OBJECT_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PIN__NAMESPACE = OBJECT_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PIN__NAME_EXPRESSION = OBJECT_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int PIN__IS_LEAF = OBJECT_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int PIN__REDEFINED_ELEMENT = OBJECT_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int PIN__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int PIN__OUTGOING = OBJECT_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int PIN__IN_GROUP = OBJECT_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int PIN__IN_PARTITION = OBJECT_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int PIN__IN_STRUCTURED_NODE = OBJECT_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int PIN__ACTIVITY = OBJECT_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int PIN__INCOMING = OBJECT_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int PIN__IN_INTERRUPTIBLE_REGION = OBJECT_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int PIN__REDEFINED_NODE = OBJECT_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int PIN__TYPE = OBJECT_NODE__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int PIN__ORDERING = OBJECT_NODE__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int PIN__IS_CONTROL_TYPE = OBJECT_NODE__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int PIN__UPPER_BOUND = OBJECT_NODE__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int PIN__IN_STATE = OBJECT_NODE__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int PIN__SELECTION = OBJECT_NODE__SELECTION; + + /** + * The feature id for the 'Is Control' attribute. + * + * + * @generated + * @ordered + */ + int PIN__IS_CONTROL = OBJECT_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Pin' class. + * + * + * @generated + * @ordered + */ + int PIN_FEATURE_COUNT = OBJECT_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OutputPinImpl Output Pin}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OutputPinImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOutputPin() + * @generated + */ + int OUTPUT_PIN = 124; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__EANNOTATIONS = PIN__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__OWNED_ELEMENT = PIN__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__OWNER = PIN__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__OWNED_COMMENT = PIN__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__NAME = PIN__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__VISIBILITY = PIN__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__QUALIFIED_NAME = PIN__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__CLIENT_DEPENDENCY = PIN__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__NAMESPACE = PIN__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__NAME_EXPRESSION = PIN__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IS_LEAF = PIN__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__REDEFINED_ELEMENT = PIN__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__REDEFINITION_CONTEXT = PIN__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__OUTGOING = PIN__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IN_GROUP = PIN__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IN_PARTITION = PIN__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IN_STRUCTURED_NODE = PIN__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__ACTIVITY = PIN__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__INCOMING = PIN__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IN_INTERRUPTIBLE_REGION = PIN__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__REDEFINED_NODE = PIN__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__TYPE = PIN__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__ORDERING = PIN__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IS_CONTROL_TYPE = PIN__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__UPPER_BOUND = PIN__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IN_STATE = PIN__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__SELECTION = PIN__SELECTION; + + /** + * The feature id for the 'Is Control' attribute. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN__IS_CONTROL = PIN__IS_CONTROL; + + /** + * The number of structural features of the 'Output Pin' class. + * + * + * @generated + * @ordered + */ + int OUTPUT_PIN_FEATURE_COUNT = PIN_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InputPinImpl Input Pin}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InputPinImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInputPin() + * @generated + */ + int INPUT_PIN = 126; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__EANNOTATIONS = PIN__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__OWNED_ELEMENT = PIN__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__OWNER = PIN__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__OWNED_COMMENT = PIN__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__NAME = PIN__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__VISIBILITY = PIN__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__QUALIFIED_NAME = PIN__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__CLIENT_DEPENDENCY = PIN__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__NAMESPACE = PIN__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__NAME_EXPRESSION = PIN__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IS_LEAF = PIN__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__REDEFINED_ELEMENT = PIN__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__REDEFINITION_CONTEXT = PIN__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__OUTGOING = PIN__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IN_GROUP = PIN__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IN_PARTITION = PIN__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IN_STRUCTURED_NODE = PIN__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__ACTIVITY = PIN__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__INCOMING = PIN__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IN_INTERRUPTIBLE_REGION = PIN__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__REDEFINED_NODE = PIN__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__TYPE = PIN__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__ORDERING = PIN__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IS_CONTROL_TYPE = PIN__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__UPPER_BOUND = PIN__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IN_STATE = PIN__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__SELECTION = PIN__SELECTION; + + /** + * The feature id for the 'Is Control' attribute. + * + * + * @generated + * @ordered + */ + int INPUT_PIN__IS_CONTROL = PIN__IS_CONTROL; + + /** + * The number of structural features of the 'Input Pin' class. + * + * + * @generated + * @ordered + */ + int INPUT_PIN_FEATURE_COUNT = PIN_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl General Ordering}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getGeneralOrdering() + * @generated + */ + int GENERAL_ORDERING = 127; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__EANNOTATIONS = NAMED_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__OWNED_ELEMENT = NAMED_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__OWNER = NAMED_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__OWNED_COMMENT = NAMED_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__VISIBILITY = NAMED_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__CLIENT_DEPENDENCY = NAMED_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__NAMESPACE = NAMED_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__NAME_EXPRESSION = NAMED_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Before' reference. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__BEFORE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'After' reference. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING__AFTER = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'General Ordering' class. + * + * + * @generated + * @ordered + */ + int GENERAL_ORDERING_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl Occurrence Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOccurrenceSpecification() + * @generated + */ + int OCCURRENCE_SPECIFICATION = 128; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__EANNOTATIONS = INTERACTION_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__OWNED_ELEMENT = INTERACTION_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__OWNER = INTERACTION_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__OWNED_COMMENT = INTERACTION_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__NAME = INTERACTION_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__VISIBILITY = INTERACTION_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__QUALIFIED_NAME = INTERACTION_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY = INTERACTION_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__NAMESPACE = INTERACTION_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__NAME_EXPRESSION = INTERACTION_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__COVERED = INTERACTION_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__GENERAL_ORDERING = INTERACTION_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION = INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND = INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'To Before' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__TO_BEFORE = INTERACTION_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__EVENT = INTERACTION_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'To After' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION__TO_AFTER = INTERACTION_FRAGMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Occurrence Specification' class. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_SPECIFICATION_FEATURE_COUNT = INTERACTION_FRAGMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl Interaction Operand}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionOperand() + * @generated + */ + int INTERACTION_OPERAND = 129; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__EANNOTATIONS = NAMESPACE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__OWNED_COMMENT = NAMESPACE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__VISIBILITY = NAMESPACE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__CLIENT_DEPENDENCY = NAMESPACE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__NAMESPACE = NAMESPACE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__NAME_EXPRESSION = NAMESPACE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__ELEMENT_IMPORT = NAMESPACE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__PACKAGE_IMPORT = NAMESPACE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__OWNED_RULE = NAMESPACE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__IMPORTED_MEMBER = NAMESPACE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__COVERED = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__GENERAL_ORDERING = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__ENCLOSING_INTERACTION = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__ENCLOSING_OPERAND = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Guard' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__GUARD = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Fragment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND__FRAGMENT = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Interaction Operand' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERAND_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl Interaction Constraint}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionConstraint() + * @generated + */ + int INTERACTION_CONSTRAINT = 130; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__EANNOTATIONS = CONSTRAINT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__OWNED_ELEMENT = CONSTRAINT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__OWNER = CONSTRAINT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__OWNED_COMMENT = CONSTRAINT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__NAME = CONSTRAINT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__VISIBILITY = CONSTRAINT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__QUALIFIED_NAME = CONSTRAINT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY = CONSTRAINT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__NAMESPACE = CONSTRAINT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__NAME_EXPRESSION = CONSTRAINT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER = CONSTRAINT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER = CONSTRAINT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Constrained Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__CONSTRAINED_ELEMENT = CONSTRAINT__CONSTRAINED_ELEMENT; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__SPECIFICATION = CONSTRAINT__SPECIFICATION; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__CONTEXT = CONSTRAINT__CONTEXT; + + /** + * The feature id for the 'Minint' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__MININT = CONSTRAINT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Maxint' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT__MAXINT = CONSTRAINT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Interaction Constraint' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_CONSTRAINT_FEATURE_COUNT = CONSTRAINT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl Execution Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionSpecification() + * @generated + */ + int EXECUTION_SPECIFICATION = 131; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__EANNOTATIONS = INTERACTION_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__OWNED_ELEMENT = INTERACTION_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__OWNER = INTERACTION_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__OWNED_COMMENT = INTERACTION_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__NAME = INTERACTION_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__VISIBILITY = INTERACTION_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__QUALIFIED_NAME = INTERACTION_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY = INTERACTION_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__NAMESPACE = INTERACTION_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__NAME_EXPRESSION = INTERACTION_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__COVERED = INTERACTION_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__GENERAL_ORDERING = INTERACTION_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION = INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__ENCLOSING_OPERAND = INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Start' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__START = INTERACTION_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Finish' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION__FINISH = INTERACTION_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Execution Specification' class. + * + * + * @generated + * @ordered + */ + int EXECUTION_SPECIFICATION_FEATURE_COUNT = INTERACTION_FRAGMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl Execution Occurrence Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionOccurrenceSpecification() + * @generated + */ + int EXECUTION_OCCURRENCE_SPECIFICATION = 132; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__EANNOTATIONS = OCCURRENCE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_ELEMENT = OCCURRENCE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__OWNER = OCCURRENCE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_COMMENT = OCCURRENCE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__NAME = OCCURRENCE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY = OCCURRENCE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__QUALIFIED_NAME = OCCURRENCE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY = OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__NAMESPACE = OCCURRENCE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION = OCCURRENCE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__COVERED = OCCURRENCE_SPECIFICATION__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING = OCCURRENCE_SPECIFICATION__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION = OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND = OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND; + + /** + * The feature id for the 'To Before' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__TO_BEFORE = OCCURRENCE_SPECIFICATION__TO_BEFORE; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__EVENT = OCCURRENCE_SPECIFICATION__EVENT; + + /** + * The feature id for the 'To After' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__TO_AFTER = OCCURRENCE_SPECIFICATION__TO_AFTER; + + /** + * The feature id for the 'Execution' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION = OCCURRENCE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Execution Occurrence Specification' class. + * + * + * @generated + * @ordered + */ + int EXECUTION_OCCURRENCE_SPECIFICATION_FEATURE_COUNT = OCCURRENCE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionEventImpl Execution Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExecutionEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionEvent() + * @generated + */ + int EXECUTION_EVENT = 133; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__EANNOTATIONS = EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__OWNED_ELEMENT = EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__OWNER = EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__OWNED_COMMENT = EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__NAME = EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__VISIBILITY = EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__CLIENT_DEPENDENCY = EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__NAMESPACE = EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__NAME_EXPRESSION = EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__TEMPLATE_PARAMETER = EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT__OWNING_TEMPLATE_PARAMETER = EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The number of structural features of the 'Execution Event' class. + * + * + * @generated + * @ordered + */ + int EXECUTION_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl State Invariant}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StateInvariantImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStateInvariant() + * @generated + */ + int STATE_INVARIANT = 134; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__EANNOTATIONS = INTERACTION_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__OWNED_ELEMENT = INTERACTION_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__OWNER = INTERACTION_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__OWNED_COMMENT = INTERACTION_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__NAME = INTERACTION_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__VISIBILITY = INTERACTION_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__QUALIFIED_NAME = INTERACTION_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__CLIENT_DEPENDENCY = INTERACTION_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__NAMESPACE = INTERACTION_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__NAME_EXPRESSION = INTERACTION_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__COVERED = INTERACTION_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__GENERAL_ORDERING = INTERACTION_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__ENCLOSING_INTERACTION = INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__ENCLOSING_OPERAND = INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Invariant' containment reference. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT__INVARIANT = INTERACTION_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'State Invariant' class. + * + * + * @generated + * @ordered + */ + int STATE_INVARIANT_FEATURE_COUNT = INTERACTION_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl Action Execution Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActionExecutionSpecification() + * @generated + */ + int ACTION_EXECUTION_SPECIFICATION = 135; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__EANNOTATIONS = EXECUTION_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__OWNED_ELEMENT = EXECUTION_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__OWNER = EXECUTION_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__OWNED_COMMENT = EXECUTION_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__NAME = EXECUTION_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__VISIBILITY = EXECUTION_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__QUALIFIED_NAME = EXECUTION_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY = EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__NAMESPACE = EXECUTION_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__NAME_EXPRESSION = EXECUTION_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__COVERED = EXECUTION_SPECIFICATION__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__GENERAL_ORDERING = EXECUTION_SPECIFICATION__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION = EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND = EXECUTION_SPECIFICATION__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Start' reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__START = EXECUTION_SPECIFICATION__START; + + /** + * The feature id for the 'Finish' reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__FINISH = EXECUTION_SPECIFICATION__FINISH; + + /** + * The feature id for the 'Action' reference. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION__ACTION = EXECUTION_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Action Execution Specification' class. + * + * + * @generated + * @ordered + */ + int ACTION_EXECUTION_SPECIFICATION_FEATURE_COUNT = EXECUTION_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl Behavior Execution Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBehaviorExecutionSpecification() + * @generated + */ + int BEHAVIOR_EXECUTION_SPECIFICATION = 136; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__EANNOTATIONS = EXECUTION_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_ELEMENT = EXECUTION_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__OWNER = EXECUTION_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_COMMENT = EXECUTION_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__NAME = EXECUTION_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY = EXECUTION_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__QUALIFIED_NAME = EXECUTION_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY = EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__NAMESPACE = EXECUTION_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__NAME_EXPRESSION = EXECUTION_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__COVERED = EXECUTION_SPECIFICATION__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__GENERAL_ORDERING = EXECUTION_SPECIFICATION__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION = EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND = EXECUTION_SPECIFICATION__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Start' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__START = EXECUTION_SPECIFICATION__START; + + /** + * The feature id for the 'Finish' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__FINISH = EXECUTION_SPECIFICATION__FINISH; + + /** + * The feature id for the 'Behavior' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR = EXECUTION_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Behavior Execution Specification' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_EXECUTION_SPECIFICATION_FEATURE_COUNT = EXECUTION_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreationEventImpl Creation Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CreationEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreationEvent() + * @generated + */ + int CREATION_EVENT = 137; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__EANNOTATIONS = EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__OWNED_ELEMENT = EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__OWNER = EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__OWNED_COMMENT = EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__NAME = EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__VISIBILITY = EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__CLIENT_DEPENDENCY = EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__NAMESPACE = EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__NAME_EXPRESSION = EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__TEMPLATE_PARAMETER = EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT__OWNING_TEMPLATE_PARAMETER = EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The number of structural features of the 'Creation Event' class. + * + * + * @generated + * @ordered + */ + int CREATION_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestructionEventImpl Destruction Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DestructionEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestructionEvent() + * @generated + */ + int DESTRUCTION_EVENT = 138; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__EANNOTATIONS = EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__OWNED_ELEMENT = EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__OWNER = EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__OWNED_COMMENT = EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__NAME = EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__VISIBILITY = EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__CLIENT_DEPENDENCY = EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__NAMESPACE = EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__NAME_EXPRESSION = EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__TEMPLATE_PARAMETER = EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT__OWNING_TEMPLATE_PARAMETER = EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The number of structural features of the 'Destruction Event' class. + * + * + * @generated + * @ordered + */ + int DESTRUCTION_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageEventImpl Message Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.MessageEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageEvent() + * @generated + */ + int MESSAGE_EVENT = 140; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__EANNOTATIONS = EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__OWNED_ELEMENT = EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__OWNER = EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__OWNED_COMMENT = EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__NAME = EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__VISIBILITY = EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__CLIENT_DEPENDENCY = EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__NAMESPACE = EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__NAME_EXPRESSION = EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__TEMPLATE_PARAMETER = EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT__OWNING_TEMPLATE_PARAMETER = EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The number of structural features of the 'Message Event' class. + * + * + * @generated + * @ordered + */ + int MESSAGE_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendOperationEventImpl Send Operation Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SendOperationEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendOperationEvent() + * @generated + */ + int SEND_OPERATION_EVENT = 139; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__EANNOTATIONS = MESSAGE_EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__OWNED_ELEMENT = MESSAGE_EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__OWNER = MESSAGE_EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__OWNED_COMMENT = MESSAGE_EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__NAME = MESSAGE_EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__VISIBILITY = MESSAGE_EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__QUALIFIED_NAME = MESSAGE_EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__CLIENT_DEPENDENCY = MESSAGE_EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__NAMESPACE = MESSAGE_EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__NAME_EXPRESSION = MESSAGE_EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__TEMPLATE_PARAMETER = MESSAGE_EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__OWNING_TEMPLATE_PARAMETER = MESSAGE_EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Operation' reference. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT__OPERATION = MESSAGE_EVENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Send Operation Event' class. + * + * + * @generated + * @ordered + */ + int SEND_OPERATION_EVENT_FEATURE_COUNT = MESSAGE_EVENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendSignalEventImpl Send Signal Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SendSignalEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendSignalEvent() + * @generated + */ + int SEND_SIGNAL_EVENT = 141; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__EANNOTATIONS = MESSAGE_EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__OWNED_ELEMENT = MESSAGE_EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__OWNER = MESSAGE_EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__OWNED_COMMENT = MESSAGE_EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__NAME = MESSAGE_EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__VISIBILITY = MESSAGE_EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__QUALIFIED_NAME = MESSAGE_EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__CLIENT_DEPENDENCY = MESSAGE_EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__NAMESPACE = MESSAGE_EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__NAME_EXPRESSION = MESSAGE_EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__TEMPLATE_PARAMETER = MESSAGE_EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER = MESSAGE_EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Signal' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT__SIGNAL = MESSAGE_EVENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Send Signal Event' class. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_EVENT_FEATURE_COUNT = MESSAGE_EVENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl Message Occurrence Specification}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageOccurrenceSpecification() + * @generated + */ + int MESSAGE_OCCURRENCE_SPECIFICATION = 142; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__EANNOTATIONS = OCCURRENCE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_ELEMENT = OCCURRENCE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__OWNER = OCCURRENCE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_COMMENT = OCCURRENCE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__NAME = OCCURRENCE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY = OCCURRENCE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__QUALIFIED_NAME = OCCURRENCE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY = OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__NAMESPACE = OCCURRENCE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION = OCCURRENCE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__COVERED = OCCURRENCE_SPECIFICATION__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING = OCCURRENCE_SPECIFICATION__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION = OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND = OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND; + + /** + * The feature id for the 'To Before' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__TO_BEFORE = OCCURRENCE_SPECIFICATION__TO_BEFORE; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__EVENT = OCCURRENCE_SPECIFICATION__EVENT; + + /** + * The feature id for the 'To After' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__TO_AFTER = OCCURRENCE_SPECIFICATION__TO_AFTER; + + /** + * The feature id for the 'Message' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE = OCCURRENCE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Message Occurrence Specification' class. + * + * + * @generated + * @ordered + */ + int MESSAGE_OCCURRENCE_SPECIFICATION_FEATURE_COUNT = OCCURRENCE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl Combined Fragment}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCombinedFragment() + * @generated + */ + int COMBINED_FRAGMENT = 143; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__EANNOTATIONS = INTERACTION_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__OWNED_ELEMENT = INTERACTION_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__OWNER = INTERACTION_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__OWNED_COMMENT = INTERACTION_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__NAME = INTERACTION_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__VISIBILITY = INTERACTION_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__QUALIFIED_NAME = INTERACTION_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__CLIENT_DEPENDENCY = INTERACTION_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__NAMESPACE = INTERACTION_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__NAME_EXPRESSION = INTERACTION_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__COVERED = INTERACTION_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__GENERAL_ORDERING = INTERACTION_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__ENCLOSING_INTERACTION = INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__ENCLOSING_OPERAND = INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Interaction Operator' attribute. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__INTERACTION_OPERATOR = INTERACTION_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__OPERAND = INTERACTION_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Cfragment Gate' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT__CFRAGMENT_GATE = INTERACTION_FRAGMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Combined Fragment' class. + * + * + * @generated + * @ordered + */ + int COMBINED_FRAGMENT_FEATURE_COUNT = INTERACTION_FRAGMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ContinuationImpl Continuation}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ContinuationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getContinuation() + * @generated + */ + int CONTINUATION = 144; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTINUATION__EANNOTATIONS = INTERACTION_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONTINUATION__OWNED_ELEMENT = INTERACTION_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONTINUATION__OWNER = INTERACTION_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTINUATION__OWNED_COMMENT = INTERACTION_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTINUATION__NAME = INTERACTION_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONTINUATION__VISIBILITY = INTERACTION_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTINUATION__QUALIFIED_NAME = INTERACTION_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONTINUATION__CLIENT_DEPENDENCY = INTERACTION_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONTINUATION__NAMESPACE = INTERACTION_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONTINUATION__NAME_EXPRESSION = INTERACTION_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int CONTINUATION__COVERED = INTERACTION_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTINUATION__GENERAL_ORDERING = INTERACTION_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int CONTINUATION__ENCLOSING_INTERACTION = INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int CONTINUATION__ENCLOSING_OPERAND = INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Setting' attribute. + * + * + * @generated + * @ordered + */ + int CONTINUATION__SETTING = INTERACTION_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Continuation' class. + * + * + * @generated + * @ordered + */ + int CONTINUATION_FEATURE_COUNT = INTERACTION_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl Consider Ignore Fragment}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConsiderIgnoreFragment() + * @generated + */ + int CONSIDER_IGNORE_FRAGMENT = 145; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__EANNOTATIONS = COMBINED_FRAGMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__OWNED_ELEMENT = COMBINED_FRAGMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__OWNER = COMBINED_FRAGMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__OWNED_COMMENT = COMBINED_FRAGMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__NAME = COMBINED_FRAGMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__VISIBILITY = COMBINED_FRAGMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__QUALIFIED_NAME = COMBINED_FRAGMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__CLIENT_DEPENDENCY = COMBINED_FRAGMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__NAMESPACE = COMBINED_FRAGMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__NAME_EXPRESSION = COMBINED_FRAGMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Covered' reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__COVERED = COMBINED_FRAGMENT__COVERED; + + /** + * The feature id for the 'General Ordering' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__GENERAL_ORDERING = COMBINED_FRAGMENT__GENERAL_ORDERING; + + /** + * The feature id for the 'Enclosing Interaction' container reference. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__ENCLOSING_INTERACTION = COMBINED_FRAGMENT__ENCLOSING_INTERACTION; + + /** + * The feature id for the 'Enclosing Operand' container reference. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__ENCLOSING_OPERAND = COMBINED_FRAGMENT__ENCLOSING_OPERAND; + + /** + * The feature id for the 'Interaction Operator' attribute. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR = COMBINED_FRAGMENT__INTERACTION_OPERATOR; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__OPERAND = COMBINED_FRAGMENT__OPERAND; + + /** + * The feature id for the 'Cfragment Gate' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__CFRAGMENT_GATE = COMBINED_FRAGMENT__CFRAGMENT_GATE; + + /** + * The feature id for the 'Message' reference list. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT__MESSAGE = COMBINED_FRAGMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Consider Ignore Fragment' class. + * + * + * @generated + * @ordered + */ + int CONSIDER_IGNORE_FRAGMENT_FEATURE_COUNT = COMBINED_FRAGMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallEventImpl Call Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CallEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallEvent() + * @generated + */ + int CALL_EVENT = 146; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__EANNOTATIONS = MESSAGE_EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__OWNED_ELEMENT = MESSAGE_EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__OWNER = MESSAGE_EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__OWNED_COMMENT = MESSAGE_EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__NAME = MESSAGE_EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__VISIBILITY = MESSAGE_EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__QUALIFIED_NAME = MESSAGE_EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__CLIENT_DEPENDENCY = MESSAGE_EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__NAMESPACE = MESSAGE_EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__NAME_EXPRESSION = MESSAGE_EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__TEMPLATE_PARAMETER = MESSAGE_EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__OWNING_TEMPLATE_PARAMETER = MESSAGE_EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Operation' reference. + * + * + * @generated + * @ordered + */ + int CALL_EVENT__OPERATION = MESSAGE_EVENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Call Event' class. + * + * + * @generated + * @ordered + */ + int CALL_EVENT_FEATURE_COUNT = MESSAGE_EVENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl Change Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ChangeEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getChangeEvent() + * @generated + */ + int CHANGE_EVENT = 147; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__EANNOTATIONS = EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__OWNED_ELEMENT = EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__OWNER = EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__OWNED_COMMENT = EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__NAME = EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__VISIBILITY = EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__CLIENT_DEPENDENCY = EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__NAMESPACE = EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__NAME_EXPRESSION = EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__TEMPLATE_PARAMETER = EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER = EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Change Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT__CHANGE_EXPRESSION = EVENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Change Event' class. + * + * + * @generated + * @ordered + */ + int CHANGE_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SignalEventImpl Signal Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SignalEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSignalEvent() + * @generated + */ + int SIGNAL_EVENT = 148; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__EANNOTATIONS = MESSAGE_EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__OWNED_ELEMENT = MESSAGE_EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__OWNER = MESSAGE_EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__OWNED_COMMENT = MESSAGE_EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__NAME = MESSAGE_EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__VISIBILITY = MESSAGE_EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__QUALIFIED_NAME = MESSAGE_EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__CLIENT_DEPENDENCY = MESSAGE_EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__NAMESPACE = MESSAGE_EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__NAME_EXPRESSION = MESSAGE_EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__TEMPLATE_PARAMETER = MESSAGE_EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER = MESSAGE_EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Signal' reference. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT__SIGNAL = MESSAGE_EVENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Signal Event' class. + * + * + * @generated + * @ordered + */ + int SIGNAL_EVENT_FEATURE_COUNT = MESSAGE_EVENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AnyReceiveEventImpl Any Receive Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AnyReceiveEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAnyReceiveEvent() + * @generated + */ + int ANY_RECEIVE_EVENT = 149; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__EANNOTATIONS = MESSAGE_EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__OWNED_ELEMENT = MESSAGE_EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__OWNER = MESSAGE_EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__OWNED_COMMENT = MESSAGE_EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__NAME = MESSAGE_EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__VISIBILITY = MESSAGE_EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__QUALIFIED_NAME = MESSAGE_EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__CLIENT_DEPENDENCY = MESSAGE_EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__NAMESPACE = MESSAGE_EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__NAME_EXPRESSION = MESSAGE_EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__TEMPLATE_PARAMETER = MESSAGE_EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT__OWNING_TEMPLATE_PARAMETER = MESSAGE_EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The number of structural features of the 'Any Receive Event' class. + * + * + * @generated + * @ordered + */ + int ANY_RECEIVE_EVENT_FEATURE_COUNT = MESSAGE_EVENT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl Create Object Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateObjectAction() + * @generated + */ + int CREATE_OBJECT_ACTION = 150; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Classifier' reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__CLASSIFIER = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION__RESULT = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Create Object Action' class. + * + * + * @generated + * @ordered + */ + int CREATE_OBJECT_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl Destroy Object Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestroyObjectAction() + * @generated + */ + int DESTROY_OBJECT_ACTION = 151; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Is Destroy Links' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IS_DESTROY_LINKS = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Destroy Owned Objects' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__IS_DESTROY_OWNED_OBJECTS = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Target' containment reference. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION__TARGET = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Destroy Object Action' class. + * + * + * @generated + * @ordered + */ + int DESTROY_OBJECT_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl Test Identity Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTestIdentityAction() + * @generated + */ + int TEST_IDENTITY_ACTION = 152; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'First' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__FIRST = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Second' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__SECOND = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION__RESULT = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Test Identity Action' class. + * + * + * @generated + * @ordered + */ + int TEST_IDENTITY_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl Read Self Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadSelfAction() + * @generated + */ + int READ_SELF_ACTION = 153; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION__RESULT = ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Read Self Action' class. + * + * + * @generated + * @ordered + */ + int READ_SELF_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl Structural Feature Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStructuralFeatureAction() + * @generated + */ + int STRUCTURAL_FEATURE_ACTION = 154; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION__OBJECT = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Structural Feature Action' class. + * + * + * @generated + * @ordered + */ + int STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl Read Structural Feature Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadStructuralFeatureAction() + * @generated + */ + int READ_STRUCTURAL_FEATURE_ACTION = 155; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS = STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT = STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__OWNER = STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT = STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__NAME = STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY = STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME = STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY = STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__NAMESPACE = STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION = STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__IS_LEAF = STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT = STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__OUTGOING = STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION = STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE = STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY = STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__INCOMING = STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION = STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE = STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__HANDLER = STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__OUTPUT = STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__INPUT = STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__CONTEXT = STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION = STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION = STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE = STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__OBJECT = STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION__RESULT = STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Read Structural Feature Action' class. + * + * + * @generated + * @ordered + */ + int READ_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT = STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl Write Structural Feature Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteStructuralFeatureAction() + * @generated + */ + int WRITE_STRUCTURAL_FEATURE_ACTION = 156; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS = STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT = STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__OWNER = STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT = STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__NAME = STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY = STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME = STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY = STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE = STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION = STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF = STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT = STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING = STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION = STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE = STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY = STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING = STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION = STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE = STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER = STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT = STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__INPUT = STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT = STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION = STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION = STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE = STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT = STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION__VALUE = STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Write Structural Feature Action' class. + * + * + * @generated + * @ordered + */ + int WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT = STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearStructuralFeatureActionImpl Clear Structural Feature Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClearStructuralFeatureActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearStructuralFeatureAction() + * @generated + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION = 157; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS = STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT = STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__OWNER = STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT = STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__NAME = STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__VISIBILITY = STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME = STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY = STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__NAMESPACE = STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION = STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__IS_LEAF = STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT = STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT = STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__OUTGOING = STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__IN_GROUP = STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__IN_PARTITION = STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE = STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__ACTIVITY = STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__INCOMING = STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION = STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE = STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__HANDLER = STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__OUTPUT = STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__INPUT = STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__CONTEXT = STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION = STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION = STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE = STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION__OBJECT = STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The number of structural features of the 'Clear Structural Feature Action' class. + * + * + * @generated + * @ordered + */ + int CLEAR_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT = STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl Remove Structural Feature Value Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRemoveStructuralFeatureValueAction() + * @generated + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION = 158; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS = WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNER = WRITE_STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME = WRITE_STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY = WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__QUALIFIED_NAME = WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY = WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAMESPACE = WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION = WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF = WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING = WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY = WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING = WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER = WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTPUT = WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT = WRITE_STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE = WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT = WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE = WRITE_STRUCTURAL_FEATURE_ACTION__VALUE; + + /** + * The feature id for the 'Is Remove Duplicates' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REMOVE_DUPLICATES = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Remove At' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Remove Structural Feature Value Action' class. + * + * + * @generated + * @ordered + */ + int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION_FEATURE_COUNT = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl Add Structural Feature Value Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAddStructuralFeatureValueAction() + * @generated + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION = 159; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS = WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNER = WRITE_STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME = WRITE_STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY = WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__QUALIFIED_NAME = WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY = WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAMESPACE = WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION = WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF = WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING = WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY = WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING = WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER = WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTPUT = WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT = WRITE_STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE = WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT = WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE = WRITE_STRUCTURAL_FEATURE_ACTION__VALUE; + + /** + * The feature id for the 'Is Replace All' attribute. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REPLACE_ALL = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Insert At' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Add Structural Feature Value Action' class. + * + * + * @generated + * @ordered + */ + int ADD_STRUCTURAL_FEATURE_VALUE_ACTION_FEATURE_COUNT = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl Link Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LinkActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkAction() + * @generated + */ + int LINK_ACTION = 160; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'End Data' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__END_DATA = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Input Value' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_ACTION__INPUT_VALUE = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Link Action' class. + * + * + * @generated + * @ordered + */ + int LINK_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl Link End Data}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndData() + * @generated + */ + int LINK_END_DATA = 161; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Value' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__VALUE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'End' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__END = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Qualifier' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA__QUALIFIER = ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Link End Data' class. + * + * + * @generated + * @ordered + */ + int LINK_END_DATA_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl Qualifier Value}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.QualifierValueImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getQualifierValue() + * @generated + */ + int QUALIFIER_VALUE = 162; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Qualifier' reference. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE__QUALIFIER = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Value' reference. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE__VALUE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Qualifier Value' class. + * + * + * @generated + * @ordered + */ + int QUALIFIER_VALUE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl Read Link Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadLinkAction() + * @generated + */ + int READ_LINK_ACTION = 163; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__EANNOTATIONS = LINK_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__OWNED_ELEMENT = LINK_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__OWNER = LINK_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__OWNED_COMMENT = LINK_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__NAME = LINK_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__VISIBILITY = LINK_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__QUALIFIED_NAME = LINK_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__CLIENT_DEPENDENCY = LINK_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__NAMESPACE = LINK_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__NAME_EXPRESSION = LINK_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__IS_LEAF = LINK_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__REDEFINED_ELEMENT = LINK_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__REDEFINITION_CONTEXT = LINK_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__OUTGOING = LINK_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__IN_GROUP = LINK_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__IN_PARTITION = LINK_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__IN_STRUCTURED_NODE = LINK_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__ACTIVITY = LINK_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__INCOMING = LINK_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION = LINK_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__REDEFINED_NODE = LINK_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__HANDLER = LINK_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__OUTPUT = LINK_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__INPUT = LINK_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__CONTEXT = LINK_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__LOCAL_PRECONDITION = LINK_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__LOCAL_POSTCONDITION = LINK_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'End Data' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__END_DATA = LINK_ACTION__END_DATA; + + /** + * The feature id for the 'Input Value' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__INPUT_VALUE = LINK_ACTION__INPUT_VALUE; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION__RESULT = LINK_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Read Link Action' class. + * + * + * @generated + * @ordered + */ + int READ_LINK_ACTION_FEATURE_COUNT = LINK_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl Link End Creation Data}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndCreationData() + * @generated + */ + int LINK_END_CREATION_DATA = 164; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__EANNOTATIONS = LINK_END_DATA__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__OWNED_ELEMENT = LINK_END_DATA__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__OWNER = LINK_END_DATA__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__OWNED_COMMENT = LINK_END_DATA__OWNED_COMMENT; + + /** + * The feature id for the 'Value' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__VALUE = LINK_END_DATA__VALUE; + + /** + * The feature id for the 'End' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__END = LINK_END_DATA__END; + + /** + * The feature id for the 'Qualifier' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__QUALIFIER = LINK_END_DATA__QUALIFIER; + + /** + * The feature id for the 'Is Replace All' attribute. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__IS_REPLACE_ALL = LINK_END_DATA_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Insert At' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA__INSERT_AT = LINK_END_DATA_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Link End Creation Data' class. + * + * + * @generated + * @ordered + */ + int LINK_END_CREATION_DATA_FEATURE_COUNT = LINK_END_DATA_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteLinkActionImpl Write Link Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.WriteLinkActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteLinkAction() + * @generated + */ + int WRITE_LINK_ACTION = 166; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__EANNOTATIONS = LINK_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__OWNED_ELEMENT = LINK_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__OWNER = LINK_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__OWNED_COMMENT = LINK_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__NAME = LINK_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__VISIBILITY = LINK_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__QUALIFIED_NAME = LINK_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__CLIENT_DEPENDENCY = LINK_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__NAMESPACE = LINK_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__NAME_EXPRESSION = LINK_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__IS_LEAF = LINK_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__REDEFINED_ELEMENT = LINK_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__REDEFINITION_CONTEXT = LINK_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__OUTGOING = LINK_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__IN_GROUP = LINK_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__IN_PARTITION = LINK_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__IN_STRUCTURED_NODE = LINK_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__ACTIVITY = LINK_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__INCOMING = LINK_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__IN_INTERRUPTIBLE_REGION = LINK_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__REDEFINED_NODE = LINK_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__HANDLER = LINK_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__OUTPUT = LINK_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__INPUT = LINK_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__CONTEXT = LINK_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__LOCAL_PRECONDITION = LINK_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__LOCAL_POSTCONDITION = LINK_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'End Data' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__END_DATA = LINK_ACTION__END_DATA; + + /** + * The feature id for the 'Input Value' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION__INPUT_VALUE = LINK_ACTION__INPUT_VALUE; + + /** + * The number of structural features of the 'Write Link Action' class. + * + * + * @generated + * @ordered + */ + int WRITE_LINK_ACTION_FEATURE_COUNT = LINK_ACTION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl Create Link Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateLinkAction() + * @generated + */ + int CREATE_LINK_ACTION = 165; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__EANNOTATIONS = WRITE_LINK_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__OWNED_ELEMENT = WRITE_LINK_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__OWNER = WRITE_LINK_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__OWNED_COMMENT = WRITE_LINK_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__NAME = WRITE_LINK_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__VISIBILITY = WRITE_LINK_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__QUALIFIED_NAME = WRITE_LINK_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__CLIENT_DEPENDENCY = WRITE_LINK_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__NAMESPACE = WRITE_LINK_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__NAME_EXPRESSION = WRITE_LINK_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__IS_LEAF = WRITE_LINK_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__REDEFINED_ELEMENT = WRITE_LINK_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__REDEFINITION_CONTEXT = WRITE_LINK_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__OUTGOING = WRITE_LINK_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__IN_GROUP = WRITE_LINK_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__IN_PARTITION = WRITE_LINK_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__IN_STRUCTURED_NODE = WRITE_LINK_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__ACTIVITY = WRITE_LINK_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__INCOMING = WRITE_LINK_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_LINK_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__REDEFINED_NODE = WRITE_LINK_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__HANDLER = WRITE_LINK_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__OUTPUT = WRITE_LINK_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__INPUT = WRITE_LINK_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__CONTEXT = WRITE_LINK_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__LOCAL_PRECONDITION = WRITE_LINK_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__LOCAL_POSTCONDITION = WRITE_LINK_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'End Data' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__END_DATA = WRITE_LINK_ACTION__END_DATA; + + /** + * The feature id for the 'Input Value' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION__INPUT_VALUE = WRITE_LINK_ACTION__INPUT_VALUE; + + /** + * The number of structural features of the 'Create Link Action' class. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_ACTION_FEATURE_COUNT = WRITE_LINK_ACTION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl Destroy Link Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDestroyLinkAction() + * @generated + */ + int DESTROY_LINK_ACTION = 167; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__EANNOTATIONS = WRITE_LINK_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__OWNED_ELEMENT = WRITE_LINK_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__OWNER = WRITE_LINK_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__OWNED_COMMENT = WRITE_LINK_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__NAME = WRITE_LINK_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__VISIBILITY = WRITE_LINK_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__QUALIFIED_NAME = WRITE_LINK_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__CLIENT_DEPENDENCY = WRITE_LINK_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__NAMESPACE = WRITE_LINK_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__NAME_EXPRESSION = WRITE_LINK_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__IS_LEAF = WRITE_LINK_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__REDEFINED_ELEMENT = WRITE_LINK_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__REDEFINITION_CONTEXT = WRITE_LINK_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__OUTGOING = WRITE_LINK_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__IN_GROUP = WRITE_LINK_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__IN_PARTITION = WRITE_LINK_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__IN_STRUCTURED_NODE = WRITE_LINK_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__ACTIVITY = WRITE_LINK_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__INCOMING = WRITE_LINK_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_LINK_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__REDEFINED_NODE = WRITE_LINK_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__HANDLER = WRITE_LINK_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__OUTPUT = WRITE_LINK_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__INPUT = WRITE_LINK_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__CONTEXT = WRITE_LINK_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__LOCAL_PRECONDITION = WRITE_LINK_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__LOCAL_POSTCONDITION = WRITE_LINK_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'End Data' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__END_DATA = WRITE_LINK_ACTION__END_DATA; + + /** + * The feature id for the 'Input Value' containment reference list. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION__INPUT_VALUE = WRITE_LINK_ACTION__INPUT_VALUE; + + /** + * The number of structural features of the 'Destroy Link Action' class. + * + * + * @generated + * @ordered + */ + int DESTROY_LINK_ACTION_FEATURE_COUNT = WRITE_LINK_ACTION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl Link End Destruction Data}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLinkEndDestructionData() + * @generated + */ + int LINK_END_DESTRUCTION_DATA = 168; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__EANNOTATIONS = LINK_END_DATA__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__OWNED_ELEMENT = LINK_END_DATA__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__OWNER = LINK_END_DATA__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__OWNED_COMMENT = LINK_END_DATA__OWNED_COMMENT; + + /** + * The feature id for the 'Value' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__VALUE = LINK_END_DATA__VALUE; + + /** + * The feature id for the 'End' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__END = LINK_END_DATA__END; + + /** + * The feature id for the 'Qualifier' containment reference list. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__QUALIFIER = LINK_END_DATA__QUALIFIER; + + /** + * The feature id for the 'Is Destroy Duplicates' attribute. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__IS_DESTROY_DUPLICATES = LINK_END_DATA_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Destroy At' reference. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA__DESTROY_AT = LINK_END_DATA_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Link End Destruction Data' class. + * + * + * @generated + * @ordered + */ + int LINK_END_DESTRUCTION_DATA_FEATURE_COUNT = LINK_END_DATA_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl Clear Association Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearAssociationAction() + * @generated + */ + int CLEAR_ASSOCIATION_ACTION = 169; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__OBJECT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Association' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION__ASSOCIATION = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Clear Association Action' class. + * + * + * @generated + * @ordered + */ + int CLEAR_ASSOCIATION_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl Invocation Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InvocationActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInvocationAction() + * @generated + */ + int INVOCATION_ACTION = 171; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__ARGUMENT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION__ON_PORT = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Invocation Action' class. + * + * + * @generated + * @ordered + */ + int INVOCATION_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl Broadcast Signal Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getBroadcastSignalAction() + * @generated + */ + int BROADCAST_SIGNAL_ACTION = 170; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__EANNOTATIONS = INVOCATION_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__OWNED_ELEMENT = INVOCATION_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__OWNER = INVOCATION_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__OWNED_COMMENT = INVOCATION_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__NAME = INVOCATION_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__VISIBILITY = INVOCATION_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__QUALIFIED_NAME = INVOCATION_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__CLIENT_DEPENDENCY = INVOCATION_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__NAMESPACE = INVOCATION_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__NAME_EXPRESSION = INVOCATION_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__IS_LEAF = INVOCATION_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__REDEFINED_ELEMENT = INVOCATION_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__OUTGOING = INVOCATION_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__IN_PARTITION = INVOCATION_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE = INVOCATION_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__INCOMING = INVOCATION_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION = INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__REDEFINED_NODE = INVOCATION_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__HANDLER = INVOCATION_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__OUTPUT = INVOCATION_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__INPUT = INVOCATION_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__CONTEXT = INVOCATION_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__LOCAL_PRECONDITION = INVOCATION_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__LOCAL_POSTCONDITION = INVOCATION_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__ARGUMENT = INVOCATION_ACTION__ARGUMENT; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__ON_PORT = INVOCATION_ACTION__ON_PORT; + + /** + * The feature id for the 'Signal' reference. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION__SIGNAL = INVOCATION_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Broadcast Signal Action' class. + * + * + * @generated + * @ordered + */ + int BROADCAST_SIGNAL_ACTION_FEATURE_COUNT = INVOCATION_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl Send Object Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendObjectAction() + * @generated + */ + int SEND_OBJECT_ACTION = 172; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__EANNOTATIONS = INVOCATION_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__OWNED_ELEMENT = INVOCATION_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__OWNER = INVOCATION_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__OWNED_COMMENT = INVOCATION_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__NAME = INVOCATION_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__VISIBILITY = INVOCATION_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__QUALIFIED_NAME = INVOCATION_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__CLIENT_DEPENDENCY = INVOCATION_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__NAMESPACE = INVOCATION_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__NAME_EXPRESSION = INVOCATION_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__IS_LEAF = INVOCATION_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__REDEFINED_ELEMENT = INVOCATION_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__OUTGOING = INVOCATION_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__IN_PARTITION = INVOCATION_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__IN_STRUCTURED_NODE = INVOCATION_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__INCOMING = INVOCATION_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION = INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__REDEFINED_NODE = INVOCATION_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__HANDLER = INVOCATION_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__OUTPUT = INVOCATION_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__INPUT = INVOCATION_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__CONTEXT = INVOCATION_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__LOCAL_PRECONDITION = INVOCATION_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__LOCAL_POSTCONDITION = INVOCATION_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__ARGUMENT = INVOCATION_ACTION__ARGUMENT; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__ON_PORT = INVOCATION_ACTION__ON_PORT; + + /** + * The feature id for the 'Target' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__TARGET = INVOCATION_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Request' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION__REQUEST = INVOCATION_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Send Object Action' class. + * + * + * @generated + * @ordered + */ + int SEND_OBJECT_ACTION_FEATURE_COUNT = INVOCATION_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl Value Specification Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValueSpecificationAction() + * @generated + */ + int VALUE_SPECIFICATION_ACTION = 173; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__VALUE = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION__RESULT = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Value Specification Action' class. + * + * + * @generated + * @ordered + */ + int VALUE_SPECIFICATION_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl Time Expression}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeExpression() + * @generated + */ + int TIME_EXPRESSION = 174; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The feature id for the 'First Time' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__FIRST_TIME = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION__EVENT = VALUE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Time Expression' class. + * + * + * @generated + * @ordered + */ + int TIME_EXPRESSION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationImpl Duration}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DurationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDuration() + * @generated + */ + int DURATION = 175; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DURATION__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DURATION__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DURATION__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DURATION__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DURATION__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DURATION__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DURATION__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int DURATION__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The feature id for the 'First Time' attribute. + * + * + * @generated + * @ordered + */ + int DURATION__FIRST_TIME = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Event' reference list. + * + * + * @generated + * @ordered + */ + int DURATION__EVENT = VALUE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Duration' class. + * + * + * @generated + * @ordered + */ + int DURATION_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeObservationActionImpl Time Observation Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TimeObservationActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeObservationAction() + * @generated + */ + int TIME_OBSERVATION_ACTION = 176; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__EANNOTATIONS = WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__OWNED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__OWNER = WRITE_STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__OWNED_COMMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__NAME = WRITE_STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__VISIBILITY = WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__QUALIFIED_NAME = WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__CLIENT_DEPENDENCY = WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__NAMESPACE = WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__NAME_EXPRESSION = WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__IS_LEAF = WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__REDEFINED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__REDEFINITION_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__OUTGOING = WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__IN_PARTITION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__IN_STRUCTURED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__ACTIVITY = WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__INCOMING = WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__REDEFINED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__HANDLER = WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__OUTPUT = WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__INPUT = WRITE_STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__LOCAL_PRECONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__LOCAL_POSTCONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__STRUCTURAL_FEATURE = WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__OBJECT = WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__VALUE = WRITE_STRUCTURAL_FEATURE_ACTION__VALUE; + + /** + * The feature id for the 'Now' reference. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION__NOW = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Time Observation Action' class. + * + * + * @generated + * @ordered + */ + int TIME_OBSERVATION_ACTION_FEATURE_COUNT = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ValuePinImpl Value Pin}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ValuePinImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getValuePin() + * @generated + */ + int VALUE_PIN = 177; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__EANNOTATIONS = INPUT_PIN__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__OWNED_ELEMENT = INPUT_PIN__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__OWNER = INPUT_PIN__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__OWNED_COMMENT = INPUT_PIN__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__NAME = INPUT_PIN__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__VISIBILITY = INPUT_PIN__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__QUALIFIED_NAME = INPUT_PIN__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__CLIENT_DEPENDENCY = INPUT_PIN__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__NAMESPACE = INPUT_PIN__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__NAME_EXPRESSION = INPUT_PIN__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IS_LEAF = INPUT_PIN__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__REDEFINED_ELEMENT = INPUT_PIN__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__REDEFINITION_CONTEXT = INPUT_PIN__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__OUTGOING = INPUT_PIN__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IN_GROUP = INPUT_PIN__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IN_PARTITION = INPUT_PIN__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IN_STRUCTURED_NODE = INPUT_PIN__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__ACTIVITY = INPUT_PIN__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__INCOMING = INPUT_PIN__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IN_INTERRUPTIBLE_REGION = INPUT_PIN__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__REDEFINED_NODE = INPUT_PIN__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__TYPE = INPUT_PIN__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__ORDERING = INPUT_PIN__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IS_CONTROL_TYPE = INPUT_PIN__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__UPPER_BOUND = INPUT_PIN__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IN_STATE = INPUT_PIN__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__SELECTION = INPUT_PIN__SELECTION; + + /** + * The feature id for the 'Is Control' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__IS_CONTROL = INPUT_PIN__IS_CONTROL; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int VALUE_PIN__VALUE = INPUT_PIN_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Value Pin' class. + * + * + * @generated + * @ordered + */ + int VALUE_PIN_FEATURE_COUNT = INPUT_PIN_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IntervalImpl Interval}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.IntervalImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInterval() + * @generated + */ + int INTERVAL = 179; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL__EANNOTATIONS = VALUE_SPECIFICATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL__OWNED_ELEMENT = VALUE_SPECIFICATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__OWNER = VALUE_SPECIFICATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL__OWNED_COMMENT = VALUE_SPECIFICATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERVAL__NAME = VALUE_SPECIFICATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERVAL__VISIBILITY = VALUE_SPECIFICATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERVAL__QUALIFIED_NAME = VALUE_SPECIFICATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL__CLIENT_DEPENDENCY = VALUE_SPECIFICATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__NAMESPACE = VALUE_SPECIFICATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__NAME_EXPRESSION = VALUE_SPECIFICATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__TEMPLATE_PARAMETER = VALUE_SPECIFICATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__OWNING_TEMPLATE_PARAMETER = VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__TYPE = VALUE_SPECIFICATION__TYPE; + + /** + * The feature id for the 'Min' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__MIN = VALUE_SPECIFICATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Max' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL__MAX = VALUE_SPECIFICATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Interval' class. + * + * + * @generated + * @ordered + */ + int INTERVAL_FEATURE_COUNT = VALUE_SPECIFICATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl Duration Interval}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationInterval() + * @generated + */ + int DURATION_INTERVAL = 178; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__EANNOTATIONS = INTERVAL__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__OWNED_ELEMENT = INTERVAL__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__OWNER = INTERVAL__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__OWNED_COMMENT = INTERVAL__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__NAME = INTERVAL__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__VISIBILITY = INTERVAL__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__QUALIFIED_NAME = INTERVAL__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__CLIENT_DEPENDENCY = INTERVAL__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__NAMESPACE = INTERVAL__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__NAME_EXPRESSION = INTERVAL__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__TEMPLATE_PARAMETER = INTERVAL__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__OWNING_TEMPLATE_PARAMETER = INTERVAL__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__TYPE = INTERVAL__TYPE; + + /** + * The feature id for the 'Min' reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__MIN = INTERVAL__MIN; + + /** + * The feature id for the 'Max' reference. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL__MAX = INTERVAL__MAX; + + /** + * The number of structural features of the 'Duration Interval' class. + * + * + * @generated + * @ordered + */ + int DURATION_INTERVAL_FEATURE_COUNT = INTERVAL_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl Interval Constraint}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getIntervalConstraint() + * @generated + */ + int INTERVAL_CONSTRAINT = 181; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__EANNOTATIONS = CONSTRAINT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__OWNED_ELEMENT = CONSTRAINT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__OWNER = CONSTRAINT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__OWNED_COMMENT = CONSTRAINT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__NAME = CONSTRAINT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__VISIBILITY = CONSTRAINT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__QUALIFIED_NAME = CONSTRAINT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__CLIENT_DEPENDENCY = CONSTRAINT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__NAMESPACE = CONSTRAINT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__NAME_EXPRESSION = CONSTRAINT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__TEMPLATE_PARAMETER = CONSTRAINT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__OWNING_TEMPLATE_PARAMETER = CONSTRAINT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Constrained Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__CONSTRAINED_ELEMENT = CONSTRAINT__CONSTRAINED_ELEMENT; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__SPECIFICATION = CONSTRAINT__SPECIFICATION; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT__CONTEXT = CONSTRAINT__CONTEXT; + + /** + * The number of structural features of the 'Interval Constraint' class. + * + * + * @generated + * @ordered + */ + int INTERVAL_CONSTRAINT_FEATURE_COUNT = CONSTRAINT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl Time Constraint}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeConstraint() + * @generated + */ + int TIME_CONSTRAINT = 180; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__EANNOTATIONS = INTERVAL_CONSTRAINT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__OWNED_ELEMENT = INTERVAL_CONSTRAINT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__OWNER = INTERVAL_CONSTRAINT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__OWNED_COMMENT = INTERVAL_CONSTRAINT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__NAME = INTERVAL_CONSTRAINT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__VISIBILITY = INTERVAL_CONSTRAINT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__QUALIFIED_NAME = INTERVAL_CONSTRAINT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__CLIENT_DEPENDENCY = INTERVAL_CONSTRAINT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__NAMESPACE = INTERVAL_CONSTRAINT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__NAME_EXPRESSION = INTERVAL_CONSTRAINT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__TEMPLATE_PARAMETER = INTERVAL_CONSTRAINT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__OWNING_TEMPLATE_PARAMETER = INTERVAL_CONSTRAINT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Constrained Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__CONSTRAINED_ELEMENT = INTERVAL_CONSTRAINT__CONSTRAINED_ELEMENT; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__SPECIFICATION = INTERVAL_CONSTRAINT__SPECIFICATION; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__CONTEXT = INTERVAL_CONSTRAINT__CONTEXT; + + /** + * The number of structural features of the 'Time Constraint' class. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT_FEATURE_COUNT = INTERVAL_CONSTRAINT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl Time Interval}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeInterval() + * @generated + */ + int TIME_INTERVAL = 182; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__EANNOTATIONS = INTERVAL__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__OWNED_ELEMENT = INTERVAL__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__OWNER = INTERVAL__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__OWNED_COMMENT = INTERVAL__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__NAME = INTERVAL__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__VISIBILITY = INTERVAL__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__QUALIFIED_NAME = INTERVAL__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__CLIENT_DEPENDENCY = INTERVAL__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__NAMESPACE = INTERVAL__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__NAME_EXPRESSION = INTERVAL__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__TEMPLATE_PARAMETER = INTERVAL__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__OWNING_TEMPLATE_PARAMETER = INTERVAL__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__TYPE = INTERVAL__TYPE; + + /** + * The feature id for the 'Min' reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__MIN = INTERVAL__MIN; + + /** + * The feature id for the 'Max' reference. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL__MAX = INTERVAL__MAX; + + /** + * The number of structural features of the 'Time Interval' class. + * + * + * @generated + * @ordered + */ + int TIME_INTERVAL_FEATURE_COUNT = INTERVAL_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationObservationActionImpl Duration Observation Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DurationObservationActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationObservationAction() + * @generated + */ + int DURATION_OBSERVATION_ACTION = 183; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__EANNOTATIONS = WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__OWNED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__OWNER = WRITE_STRUCTURAL_FEATURE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__OWNED_COMMENT = WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__NAME = WRITE_STRUCTURAL_FEATURE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__VISIBILITY = WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__QUALIFIED_NAME = WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__CLIENT_DEPENDENCY = WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__NAMESPACE = WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__NAME_EXPRESSION = WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__IS_LEAF = WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__REDEFINED_ELEMENT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__REDEFINITION_CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__OUTGOING = WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__IN_GROUP = WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__IN_PARTITION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__IN_STRUCTURED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__ACTIVITY = WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__INCOMING = WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__REDEFINED_NODE = WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__HANDLER = WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__OUTPUT = WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__INPUT = WRITE_STRUCTURAL_FEATURE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__CONTEXT = WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__LOCAL_PRECONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__LOCAL_POSTCONDITION = WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Structural Feature' reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__STRUCTURAL_FEATURE = WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__OBJECT = WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__VALUE = WRITE_STRUCTURAL_FEATURE_ACTION__VALUE; + + /** + * The feature id for the 'Duration' reference. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION__DURATION = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Duration Observation Action' class. + * + * + * @generated + * @ordered + */ + int DURATION_OBSERVATION_ACTION_FEATURE_COUNT = WRITE_STRUCTURAL_FEATURE_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl Duration Constraint}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDurationConstraint() + * @generated + */ + int DURATION_CONSTRAINT = 184; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__EANNOTATIONS = INTERVAL_CONSTRAINT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__OWNED_ELEMENT = INTERVAL_CONSTRAINT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__OWNER = INTERVAL_CONSTRAINT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__OWNED_COMMENT = INTERVAL_CONSTRAINT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__NAME = INTERVAL_CONSTRAINT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__VISIBILITY = INTERVAL_CONSTRAINT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__QUALIFIED_NAME = INTERVAL_CONSTRAINT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__CLIENT_DEPENDENCY = INTERVAL_CONSTRAINT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__NAMESPACE = INTERVAL_CONSTRAINT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__NAME_EXPRESSION = INTERVAL_CONSTRAINT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__TEMPLATE_PARAMETER = INTERVAL_CONSTRAINT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER = INTERVAL_CONSTRAINT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Constrained Element' reference list. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__CONSTRAINED_ELEMENT = INTERVAL_CONSTRAINT__CONSTRAINED_ELEMENT; + + /** + * The feature id for the 'Specification' containment reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__SPECIFICATION = INTERVAL_CONSTRAINT__SPECIFICATION; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT__CONTEXT = INTERVAL_CONSTRAINT__CONTEXT; + + /** + * The number of structural features of the 'Duration Constraint' class. + * + * + * @generated + * @ordered + */ + int DURATION_CONSTRAINT_FEATURE_COUNT = INTERVAL_CONSTRAINT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl Opaque Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getOpaqueAction() + * @generated + */ + int OPAQUE_ACTION = 185; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Body' attribute list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__BODY = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Language' attribute list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__LANGUAGE = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Input Value' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__INPUT_VALUE = ACTION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Output Value' reference list. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION__OUTPUT_VALUE = ACTION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Opaque Action' class. + * + * + * @generated + * @ordered + */ + int OPAQUE_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallActionImpl Call Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CallActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallAction() + * @generated + */ + int CALL_ACTION = 186; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__EANNOTATIONS = INVOCATION_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__OWNED_ELEMENT = INVOCATION_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__OWNER = INVOCATION_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__OWNED_COMMENT = INVOCATION_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__NAME = INVOCATION_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__VISIBILITY = INVOCATION_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__QUALIFIED_NAME = INVOCATION_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__CLIENT_DEPENDENCY = INVOCATION_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__NAMESPACE = INVOCATION_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__NAME_EXPRESSION = INVOCATION_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__IS_LEAF = INVOCATION_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__REDEFINED_ELEMENT = INVOCATION_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__OUTGOING = INVOCATION_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__IN_PARTITION = INVOCATION_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__IN_STRUCTURED_NODE = INVOCATION_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__INCOMING = INVOCATION_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__IN_INTERRUPTIBLE_REGION = INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__REDEFINED_NODE = INVOCATION_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__HANDLER = INVOCATION_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__OUTPUT = INVOCATION_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__INPUT = INVOCATION_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__CONTEXT = INVOCATION_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__LOCAL_PRECONDITION = INVOCATION_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__LOCAL_POSTCONDITION = INVOCATION_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__ARGUMENT = INVOCATION_ACTION__ARGUMENT; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__ON_PORT = INVOCATION_ACTION__ON_PORT; + + /** + * The feature id for the 'Is Synchronous' attribute. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__IS_SYNCHRONOUS = INVOCATION_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Result' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_ACTION__RESULT = INVOCATION_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Call Action' class. + * + * + * @generated + * @ordered + */ + int CALL_ACTION_FEATURE_COUNT = INVOCATION_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl Send Signal Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSendSignalAction() + * @generated + */ + int SEND_SIGNAL_ACTION = 187; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__EANNOTATIONS = INVOCATION_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__OWNED_ELEMENT = INVOCATION_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__OWNER = INVOCATION_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__OWNED_COMMENT = INVOCATION_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__NAME = INVOCATION_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__VISIBILITY = INVOCATION_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__QUALIFIED_NAME = INVOCATION_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY = INVOCATION_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__NAMESPACE = INVOCATION_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__NAME_EXPRESSION = INVOCATION_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__IS_LEAF = INVOCATION_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__REDEFINED_ELEMENT = INVOCATION_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__REDEFINITION_CONTEXT = INVOCATION_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__OUTGOING = INVOCATION_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__IN_GROUP = INVOCATION_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__IN_PARTITION = INVOCATION_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE = INVOCATION_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__ACTIVITY = INVOCATION_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__INCOMING = INVOCATION_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION = INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__REDEFINED_NODE = INVOCATION_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__HANDLER = INVOCATION_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__OUTPUT = INVOCATION_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__INPUT = INVOCATION_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__CONTEXT = INVOCATION_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__LOCAL_PRECONDITION = INVOCATION_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION = INVOCATION_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__ARGUMENT = INVOCATION_ACTION__ARGUMENT; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__ON_PORT = INVOCATION_ACTION__ON_PORT; + + /** + * The feature id for the 'Target' containment reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__TARGET = INVOCATION_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Signal' reference. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION__SIGNAL = INVOCATION_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Send Signal Action' class. + * + * + * @generated + * @ordered + */ + int SEND_SIGNAL_ACTION_FEATURE_COUNT = INVOCATION_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl Call Operation Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallOperationAction() + * @generated + */ + int CALL_OPERATION_ACTION = 188; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__EANNOTATIONS = CALL_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__OWNED_ELEMENT = CALL_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__OWNER = CALL_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__OWNED_COMMENT = CALL_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__NAME = CALL_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__VISIBILITY = CALL_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__QUALIFIED_NAME = CALL_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__CLIENT_DEPENDENCY = CALL_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__NAMESPACE = CALL_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__NAME_EXPRESSION = CALL_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__IS_LEAF = CALL_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__REDEFINED_ELEMENT = CALL_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__REDEFINITION_CONTEXT = CALL_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__OUTGOING = CALL_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__IN_PARTITION = CALL_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__IN_STRUCTURED_NODE = CALL_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__ACTIVITY = CALL_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__INCOMING = CALL_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION = CALL_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__REDEFINED_NODE = CALL_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__HANDLER = CALL_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__OUTPUT = CALL_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__INPUT = CALL_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__CONTEXT = CALL_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__LOCAL_PRECONDITION = CALL_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__LOCAL_POSTCONDITION = CALL_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__ARGUMENT = CALL_ACTION__ARGUMENT; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__ON_PORT = CALL_ACTION__ON_PORT; + + /** + * The feature id for the 'Is Synchronous' attribute. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__IS_SYNCHRONOUS = CALL_ACTION__IS_SYNCHRONOUS; + + /** + * The feature id for the 'Result' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__RESULT = CALL_ACTION__RESULT; + + /** + * The feature id for the 'Operation' reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__OPERATION = CALL_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Target' containment reference. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION__TARGET = CALL_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Call Operation Action' class. + * + * + * @generated + * @ordered + */ + int CALL_OPERATION_ACTION_FEATURE_COUNT = CALL_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl Call Behavior Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallBehaviorAction() + * @generated + */ + int CALL_BEHAVIOR_ACTION = 189; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__EANNOTATIONS = CALL_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__OWNED_ELEMENT = CALL_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__OWNER = CALL_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__OWNED_COMMENT = CALL_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__NAME = CALL_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__VISIBILITY = CALL_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__QUALIFIED_NAME = CALL_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__CLIENT_DEPENDENCY = CALL_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__NAMESPACE = CALL_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__NAME_EXPRESSION = CALL_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__IS_LEAF = CALL_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__REDEFINED_ELEMENT = CALL_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__REDEFINITION_CONTEXT = CALL_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__OUTGOING = CALL_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__IN_GROUP = CALL_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__IN_PARTITION = CALL_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE = CALL_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__ACTIVITY = CALL_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__INCOMING = CALL_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION = CALL_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__REDEFINED_NODE = CALL_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__HANDLER = CALL_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__OUTPUT = CALL_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__INPUT = CALL_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__CONTEXT = CALL_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__LOCAL_PRECONDITION = CALL_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__LOCAL_POSTCONDITION = CALL_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__ARGUMENT = CALL_ACTION__ARGUMENT; + + /** + * The feature id for the 'On Port' reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__ON_PORT = CALL_ACTION__ON_PORT; + + /** + * The feature id for the 'Is Synchronous' attribute. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__IS_SYNCHRONOUS = CALL_ACTION__IS_SYNCHRONOUS; + + /** + * The feature id for the 'Result' containment reference list. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__RESULT = CALL_ACTION__RESULT; + + /** + * The feature id for the 'Behavior' reference. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION__BEHAVIOR = CALL_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Call Behavior Action' class. + * + * + * @generated + * @ordered + */ + int CALL_BEHAVIOR_ACTION_FEATURE_COUNT = CALL_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InformationItemImpl Information Item}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InformationItemImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInformationItem() + * @generated + */ + int INFORMATION_ITEM = 190; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__EANNOTATIONS = CLASSIFIER__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_COMMENT = CLASSIFIER__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__VISIBILITY = CLASSIFIER__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__CLIENT_DEPENDENCY = CLASSIFIER__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__NAMESPACE = CLASSIFIER__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__NAME_EXPRESSION = CLASSIFIER__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__ELEMENT_IMPORT = CLASSIFIER__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__PACKAGE_IMPORT = CLASSIFIER__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_RULE = CLASSIFIER__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__IMPORTED_MEMBER = CLASSIFIER__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__IS_LEAF = CLASSIFIER__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__REDEFINED_ELEMENT = CLASSIFIER__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__REDEFINITION_CONTEXT = CLASSIFIER__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__TEMPLATE_PARAMETER = CLASSIFIER__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNING_TEMPLATE_PARAMETER = CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__PACKAGE = CLASSIFIER__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__TEMPLATE_BINDING = CLASSIFIER__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_TEMPLATE_SIGNATURE = CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__GENERALIZATION = CLASSIFIER__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__POWERTYPE_EXTENT = CLASSIFIER__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__INHERITED_MEMBER = CLASSIFIER__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__REDEFINED_CLASSIFIER = CLASSIFIER__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__GENERAL = CLASSIFIER__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_USE_CASE = CLASSIFIER__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__USE_CASE = CLASSIFIER__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__SUBSTITUTION = CLASSIFIER__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__ATTRIBUTE = CLASSIFIER__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__REPRESENTATION = CLASSIFIER__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__COLLABORATION_USE = CLASSIFIER__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__OWNED_SIGNATURE = CLASSIFIER__OWNED_SIGNATURE; + + /** + * The feature id for the 'Represented' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM__REPRESENTED = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Information Item' class. + * + * + * @generated + * @ordered + */ + int INFORMATION_ITEM_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl Information Flow}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InformationFlowImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInformationFlow() + * @generated + */ + int INFORMATION_FLOW = 191; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__EANNOTATIONS = PACKAGEABLE_ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__OWNED_ELEMENT = PACKAGEABLE_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__OWNER = PACKAGEABLE_ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__OWNED_COMMENT = PACKAGEABLE_ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__VISIBILITY = PACKAGEABLE_ELEMENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__CLIENT_DEPENDENCY = PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__NAMESPACE = PACKAGEABLE_ELEMENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__NAME_EXPRESSION = PACKAGEABLE_ELEMENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__OWNING_TEMPLATE_PARAMETER = PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__RELATED_ELEMENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__SOURCE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__TARGET = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Realization' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__REALIZATION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Conveyed' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__CONVEYED = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Information Source' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__INFORMATION_SOURCE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Information Target' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__INFORMATION_TARGET = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Realizing Activity Edge' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Realizing Connector' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__REALIZING_CONNECTOR = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Realizing Message' reference list. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW__REALIZING_MESSAGE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 9; + + /** + * The number of structural features of the 'Information Flow' class. + * + * + * @generated + * @ordered + */ + int INFORMATION_FLOW_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 10; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ModelImpl Model}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ModelImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getModel() + * @generated + */ + int MODEL = 192; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__EANNOTATIONS = PACKAGE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__OWNED_ELEMENT = PACKAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MODEL__OWNER = PACKAGE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__OWNED_COMMENT = PACKAGE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MODEL__NAME = PACKAGE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MODEL__VISIBILITY = PACKAGE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MODEL__QUALIFIED_NAME = PACKAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__CLIENT_DEPENDENCY = PACKAGE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MODEL__NAMESPACE = PACKAGE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MODEL__NAME_EXPRESSION = PACKAGE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__ELEMENT_IMPORT = PACKAGE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__PACKAGE_IMPORT = PACKAGE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__OWNED_RULE = PACKAGE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__MEMBER = PACKAGE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__IMPORTED_MEMBER = PACKAGE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__OWNED_MEMBER = PACKAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int MODEL__TEMPLATE_PARAMETER = PACKAGE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int MODEL__OWNING_TEMPLATE_PARAMETER = PACKAGE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__TEMPLATE_BINDING = PACKAGE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int MODEL__OWNED_TEMPLATE_SIGNATURE = PACKAGE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Package Merge' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__PACKAGE_MERGE = PACKAGE__PACKAGE_MERGE; + + /** + * The feature id for the 'Packaged Element' containment reference list. + * + * + * @generated + * @ordered + */ + int MODEL__PACKAGED_ELEMENT = PACKAGE__PACKAGED_ELEMENT; + + /** + * The feature id for the 'Owned Type' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__OWNED_TYPE = PACKAGE__OWNED_TYPE; + + /** + * The feature id for the 'Nested Package' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__NESTED_PACKAGE = PACKAGE__NESTED_PACKAGE; + + /** + * The feature id for the 'Nesting Package' reference. + * + * + * @generated + * @ordered + */ + int MODEL__NESTING_PACKAGE = PACKAGE__NESTING_PACKAGE; + + /** + * The feature id for the 'Applied Profile' reference list. + * + * + * @generated + * @ordered + */ + int MODEL__APPLIED_PROFILE = PACKAGE__APPLIED_PROFILE; + + /** + * The feature id for the 'Viewpoint' attribute. + * + * + * @generated + * @ordered + */ + int MODEL__VIEWPOINT = PACKAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Model' class. + * + * + * @generated + * @ordered + */ + int MODEL_FEATURE_COUNT = PACKAGE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.VariableActionImpl Variable Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.VariableActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVariableAction() + * @generated + */ + int VARIABLE_ACTION = 193; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION__VARIABLE = ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Variable Action' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadVariableActionImpl Read Variable Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadVariableActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadVariableAction() + * @generated + */ + int READ_VARIABLE_ACTION = 194; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__EANNOTATIONS = VARIABLE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__OWNED_ELEMENT = VARIABLE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__OWNER = VARIABLE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__OWNED_COMMENT = VARIABLE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__NAME = VARIABLE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__VISIBILITY = VARIABLE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__QUALIFIED_NAME = VARIABLE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__CLIENT_DEPENDENCY = VARIABLE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__NAMESPACE = VARIABLE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__NAME_EXPRESSION = VARIABLE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__IS_LEAF = VARIABLE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__REDEFINED_ELEMENT = VARIABLE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__REDEFINITION_CONTEXT = VARIABLE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__OUTGOING = VARIABLE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__IN_PARTITION = VARIABLE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__IN_STRUCTURED_NODE = VARIABLE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__ACTIVITY = VARIABLE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__INCOMING = VARIABLE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION = VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__REDEFINED_NODE = VARIABLE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__HANDLER = VARIABLE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__OUTPUT = VARIABLE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__INPUT = VARIABLE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__CONTEXT = VARIABLE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__LOCAL_PRECONDITION = VARIABLE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__LOCAL_POSTCONDITION = VARIABLE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__VARIABLE = VARIABLE_ACTION__VARIABLE; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION__RESULT = VARIABLE_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Read Variable Action' class. + * + * + * @generated + * @ordered + */ + int READ_VARIABLE_ACTION_FEATURE_COUNT = VARIABLE_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.WriteVariableActionImpl Write Variable Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.WriteVariableActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getWriteVariableAction() + * @generated + */ + int WRITE_VARIABLE_ACTION = 195; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__EANNOTATIONS = VARIABLE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__OWNED_ELEMENT = VARIABLE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__OWNER = VARIABLE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__OWNED_COMMENT = VARIABLE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__NAME = VARIABLE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__VISIBILITY = VARIABLE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__QUALIFIED_NAME = VARIABLE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY = VARIABLE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__NAMESPACE = VARIABLE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__NAME_EXPRESSION = VARIABLE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__IS_LEAF = VARIABLE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__REDEFINED_ELEMENT = VARIABLE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT = VARIABLE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__OUTGOING = VARIABLE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__IN_PARTITION = VARIABLE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE = VARIABLE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__ACTIVITY = VARIABLE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__INCOMING = VARIABLE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION = VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__REDEFINED_NODE = VARIABLE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__HANDLER = VARIABLE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__OUTPUT = VARIABLE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__INPUT = VARIABLE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__CONTEXT = VARIABLE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION = VARIABLE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION = VARIABLE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__VARIABLE = VARIABLE_ACTION__VARIABLE; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION__VALUE = VARIABLE_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Write Variable Action' class. + * + * + * @generated + * @ordered + */ + int WRITE_VARIABLE_ACTION_FEATURE_COUNT = VARIABLE_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClearVariableActionImpl Clear Variable Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClearVariableActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClearVariableAction() + * @generated + */ + int CLEAR_VARIABLE_ACTION = 196; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__EANNOTATIONS = VARIABLE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__OWNED_ELEMENT = VARIABLE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__OWNER = VARIABLE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__OWNED_COMMENT = VARIABLE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__NAME = VARIABLE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__VISIBILITY = VARIABLE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__QUALIFIED_NAME = VARIABLE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__CLIENT_DEPENDENCY = VARIABLE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__NAMESPACE = VARIABLE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__NAME_EXPRESSION = VARIABLE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__IS_LEAF = VARIABLE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__REDEFINED_ELEMENT = VARIABLE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__REDEFINITION_CONTEXT = VARIABLE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__OUTGOING = VARIABLE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__IN_GROUP = VARIABLE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__IN_PARTITION = VARIABLE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__IN_STRUCTURED_NODE = VARIABLE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__ACTIVITY = VARIABLE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__INCOMING = VARIABLE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION = VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__REDEFINED_NODE = VARIABLE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__HANDLER = VARIABLE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__OUTPUT = VARIABLE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__INPUT = VARIABLE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__CONTEXT = VARIABLE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__LOCAL_PRECONDITION = VARIABLE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__LOCAL_POSTCONDITION = VARIABLE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION__VARIABLE = VARIABLE_ACTION__VARIABLE; + + /** + * The number of structural features of the 'Clear Variable Action' class. + * + * + * @generated + * @ordered + */ + int CLEAR_VARIABLE_ACTION_FEATURE_COUNT = VARIABLE_ACTION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl Add Variable Value Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAddVariableValueAction() + * @generated + */ + int ADD_VARIABLE_VALUE_ACTION = 197; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__EANNOTATIONS = WRITE_VARIABLE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__OWNED_ELEMENT = WRITE_VARIABLE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__OWNER = WRITE_VARIABLE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT = WRITE_VARIABLE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__NAME = WRITE_VARIABLE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__VISIBILITY = WRITE_VARIABLE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__QUALIFIED_NAME = WRITE_VARIABLE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY = WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__NAMESPACE = WRITE_VARIABLE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION = WRITE_VARIABLE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__IS_LEAF = WRITE_VARIABLE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__REDEFINED_ELEMENT = WRITE_VARIABLE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__OUTGOING = WRITE_VARIABLE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__IN_GROUP = WRITE_VARIABLE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__IN_PARTITION = WRITE_VARIABLE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE = WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__ACTIVITY = WRITE_VARIABLE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__INCOMING = WRITE_VARIABLE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE = WRITE_VARIABLE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__HANDLER = WRITE_VARIABLE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__OUTPUT = WRITE_VARIABLE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__INPUT = WRITE_VARIABLE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__CONTEXT = WRITE_VARIABLE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION = WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION = WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__VARIABLE = WRITE_VARIABLE_ACTION__VARIABLE; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__VALUE = WRITE_VARIABLE_ACTION__VALUE; + + /** + * The feature id for the 'Is Replace All' attribute. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__IS_REPLACE_ALL = WRITE_VARIABLE_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Insert At' containment reference. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION__INSERT_AT = WRITE_VARIABLE_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Add Variable Value Action' class. + * + * + * @generated + * @ordered + */ + int ADD_VARIABLE_VALUE_ACTION_FEATURE_COUNT = WRITE_VARIABLE_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl Remove Variable Value Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRemoveVariableValueAction() + * @generated + */ + int REMOVE_VARIABLE_VALUE_ACTION = 198; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__EANNOTATIONS = WRITE_VARIABLE_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__OWNED_ELEMENT = WRITE_VARIABLE_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__OWNER = WRITE_VARIABLE_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT = WRITE_VARIABLE_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__NAME = WRITE_VARIABLE_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY = WRITE_VARIABLE_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__QUALIFIED_NAME = WRITE_VARIABLE_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY = WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__NAMESPACE = WRITE_VARIABLE_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION = WRITE_VARIABLE_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__IS_LEAF = WRITE_VARIABLE_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_ELEMENT = WRITE_VARIABLE_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT = WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__OUTGOING = WRITE_VARIABLE_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP = WRITE_VARIABLE_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION = WRITE_VARIABLE_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE = WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY = WRITE_VARIABLE_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__INCOMING = WRITE_VARIABLE_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION = WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE = WRITE_VARIABLE_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__HANDLER = WRITE_VARIABLE_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__OUTPUT = WRITE_VARIABLE_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__INPUT = WRITE_VARIABLE_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__CONTEXT = WRITE_VARIABLE_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION = WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION = WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__VARIABLE = WRITE_VARIABLE_ACTION__VARIABLE; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__VALUE = WRITE_VARIABLE_ACTION__VALUE; + + /** + * The feature id for the 'Is Remove Duplicates' attribute. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__IS_REMOVE_DUPLICATES = WRITE_VARIABLE_ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Remove At' containment reference. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT = WRITE_VARIABLE_ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Remove Variable Value Action' class. + * + * + * @generated + * @ordered + */ + int REMOVE_VARIABLE_VALUE_ACTION_FEATURE_COUNT = WRITE_VARIABLE_ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.RaiseExceptionActionImpl Raise Exception Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.RaiseExceptionActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getRaiseExceptionAction() + * @generated + */ + int RAISE_EXCEPTION_ACTION = 199; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Exception' containment reference. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION__EXCEPTION = ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Raise Exception Action' class. + * + * + * @generated + * @ordered + */ + int RAISE_EXCEPTION_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActionInputPinImpl Action Input Pin}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActionInputPinImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActionInputPin() + * @generated + */ + int ACTION_INPUT_PIN = 200; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__EANNOTATIONS = INPUT_PIN__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__OWNED_ELEMENT = INPUT_PIN__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__OWNER = INPUT_PIN__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__OWNED_COMMENT = INPUT_PIN__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__NAME = INPUT_PIN__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__VISIBILITY = INPUT_PIN__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__QUALIFIED_NAME = INPUT_PIN__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__CLIENT_DEPENDENCY = INPUT_PIN__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__NAMESPACE = INPUT_PIN__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__NAME_EXPRESSION = INPUT_PIN__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IS_LEAF = INPUT_PIN__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__REDEFINED_ELEMENT = INPUT_PIN__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__REDEFINITION_CONTEXT = INPUT_PIN__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__OUTGOING = INPUT_PIN__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IN_GROUP = INPUT_PIN__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IN_PARTITION = INPUT_PIN__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IN_STRUCTURED_NODE = INPUT_PIN__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__ACTIVITY = INPUT_PIN__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__INCOMING = INPUT_PIN__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION = INPUT_PIN__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__REDEFINED_NODE = INPUT_PIN__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__TYPE = INPUT_PIN__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__ORDERING = INPUT_PIN__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IS_CONTROL_TYPE = INPUT_PIN__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__UPPER_BOUND = INPUT_PIN__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IN_STATE = INPUT_PIN__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__SELECTION = INPUT_PIN__SELECTION; + + /** + * The feature id for the 'Is Control' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__IS_CONTROL = INPUT_PIN__IS_CONTROL; + + /** + * The feature id for the 'From Action' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN__FROM_ACTION = INPUT_PIN_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Action Input Pin' class. + * + * + * @generated + * @ordered + */ + int ACTION_INPUT_PIN_FEATURE_COUNT = INPUT_PIN_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl Read Extent Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadExtentAction() + * @generated + */ + int READ_EXTENT_ACTION = 201; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__RESULT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Classifier' reference. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION__CLASSIFIER = ACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Read Extent Action' class. + * + * + * @generated + * @ordered + */ + int READ_EXTENT_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl Reclassify Object Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReclassifyObjectAction() + * @generated + */ + int RECLASSIFY_OBJECT_ACTION = 202; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Is Replace All' attribute. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__IS_REPLACE_ALL = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Old Classifier' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'New Classifier' reference list. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER = ACTION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION__OBJECT = ACTION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Reclassify Object Action' class. + * + * + * @generated + * @ordered + */ + int RECLASSIFY_OBJECT_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl Read Is Classified Object Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadIsClassifiedObjectAction() + * @generated + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION = 203; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Is Direct' attribute. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__IS_DIRECT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Classifier' reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT = ACTION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT = ACTION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Read Is Classified Object Action' class. + * + * + * @generated + * @ordered + */ + int READ_IS_CLASSIFIED_OBJECT_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.StartClassifierBehaviorActionImpl Start Classifier Behavior Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.StartClassifierBehaviorActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getStartClassifierBehaviorAction() + * @generated + */ + int START_CLASSIFIER_BEHAVIOR_ACTION = 204; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT = ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Start Classifier Behavior Action' class. + * + * + * @generated + * @ordered + */ + int START_CLASSIFIER_BEHAVIOR_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl Read Link Object End Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadLinkObjectEndAction() + * @generated + */ + int READ_LINK_OBJECT_END_ACTION = 205; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__OBJECT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'End' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__END = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION__RESULT = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Read Link Object End Action' class. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl Read Link Object End Qualifier Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReadLinkObjectEndQualifierAction() + * @generated + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION = 206; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Qualifier' reference. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Read Link Object End Qualifier Action' class. + * + * + * @generated + * @ordered + */ + int READ_LINK_OBJECT_END_QUALIFIER_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CreateLinkObjectActionImpl Create Link Object Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CreateLinkObjectActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCreateLinkObjectAction() + * @generated + */ + int CREATE_LINK_OBJECT_ACTION = 207; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__EANNOTATIONS = CREATE_LINK_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__OWNED_ELEMENT = CREATE_LINK_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__OWNER = CREATE_LINK_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT = CREATE_LINK_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__NAME = CREATE_LINK_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__VISIBILITY = CREATE_LINK_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__QUALIFIED_NAME = CREATE_LINK_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY = CREATE_LINK_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__NAMESPACE = CREATE_LINK_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION = CREATE_LINK_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__IS_LEAF = CREATE_LINK_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__REDEFINED_ELEMENT = CREATE_LINK_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__REDEFINITION_CONTEXT = CREATE_LINK_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__OUTGOING = CREATE_LINK_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__IN_GROUP = CREATE_LINK_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__IN_PARTITION = CREATE_LINK_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE = CREATE_LINK_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__ACTIVITY = CREATE_LINK_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__INCOMING = CREATE_LINK_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION = CREATE_LINK_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE = CREATE_LINK_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__HANDLER = CREATE_LINK_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__OUTPUT = CREATE_LINK_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__INPUT = CREATE_LINK_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__CONTEXT = CREATE_LINK_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION = CREATE_LINK_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION = CREATE_LINK_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'End Data' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__END_DATA = CREATE_LINK_ACTION__END_DATA; + + /** + * The feature id for the 'Input Value' containment reference list. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__INPUT_VALUE = CREATE_LINK_ACTION__INPUT_VALUE; + + /** + * The feature id for the 'Result' containment reference. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION__RESULT = CREATE_LINK_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Create Link Object Action' class. + * + * + * @generated + * @ordered + */ + int CREATE_LINK_OBJECT_ACTION_FEATURE_COUNT = CREATE_LINK_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl Accept Event Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAcceptEventAction() + * @generated + */ + int ACCEPT_EVENT_ACTION = 208; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Is Unmarshall' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__IS_UNMARSHALL = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Result' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__RESULT = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION__TRIGGER = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Accept Event Action' class. + * + * + * @generated + * @ordered + */ + int ACCEPT_EVENT_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AcceptCallActionImpl Accept Call Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AcceptCallActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAcceptCallAction() + * @generated + */ + int ACCEPT_CALL_ACTION = 209; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__EANNOTATIONS = ACCEPT_EVENT_ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__OWNED_ELEMENT = ACCEPT_EVENT_ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__OWNER = ACCEPT_EVENT_ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__OWNED_COMMENT = ACCEPT_EVENT_ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__NAME = ACCEPT_EVENT_ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__VISIBILITY = ACCEPT_EVENT_ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__QUALIFIED_NAME = ACCEPT_EVENT_ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__CLIENT_DEPENDENCY = ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__NAMESPACE = ACCEPT_EVENT_ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__NAME_EXPRESSION = ACCEPT_EVENT_ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__IS_LEAF = ACCEPT_EVENT_ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__REDEFINED_ELEMENT = ACCEPT_EVENT_ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__REDEFINITION_CONTEXT = ACCEPT_EVENT_ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__OUTGOING = ACCEPT_EVENT_ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__IN_GROUP = ACCEPT_EVENT_ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__IN_PARTITION = ACCEPT_EVENT_ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE = ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__ACTIVITY = ACCEPT_EVENT_ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__INCOMING = ACCEPT_EVENT_ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__IN_INTERRUPTIBLE_REGION = ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__REDEFINED_NODE = ACCEPT_EVENT_ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__HANDLER = ACCEPT_EVENT_ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__OUTPUT = ACCEPT_EVENT_ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__INPUT = ACCEPT_EVENT_ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__CONTEXT = ACCEPT_EVENT_ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__LOCAL_PRECONDITION = ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__LOCAL_POSTCONDITION = ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Is Unmarshall' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__IS_UNMARSHALL = ACCEPT_EVENT_ACTION__IS_UNMARSHALL; + + /** + * The feature id for the 'Result' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__RESULT = ACCEPT_EVENT_ACTION__RESULT; + + /** + * The feature id for the 'Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__TRIGGER = ACCEPT_EVENT_ACTION__TRIGGER; + + /** + * The feature id for the 'Return Information' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION__RETURN_INFORMATION = ACCEPT_EVENT_ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Accept Call Action' class. + * + * + * @generated + * @ordered + */ + int ACCEPT_CALL_ACTION_FEATURE_COUNT = ACCEPT_EVENT_ACTION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl Reply Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ReplyActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getReplyAction() + * @generated + */ + int REPLY_ACTION = 210; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Reply To Call' reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__REPLY_TO_CALL = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Return Information' containment reference. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__RETURN_INFORMATION = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Reply Value' containment reference list. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION__REPLY_VALUE = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Reply Action' class. + * + * + * @generated + * @ordered + */ + int REPLY_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl Unmarshall Action}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getUnmarshallAction() + * @generated + */ + int UNMARSHALL_ACTION = 211; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__EANNOTATIONS = ACTION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__OWNED_ELEMENT = ACTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__OWNER = ACTION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__OWNED_COMMENT = ACTION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__VISIBILITY = ACTION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__CLIENT_DEPENDENCY = ACTION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__NAMESPACE = ACTION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__NAME_EXPRESSION = ACTION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__IS_LEAF = ACTION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__REDEFINED_ELEMENT = ACTION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__REDEFINITION_CONTEXT = ACTION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__OUTGOING = ACTION__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__IN_GROUP = ACTION__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__IN_PARTITION = ACTION__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__IN_STRUCTURED_NODE = ACTION__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__ACTIVITY = ACTION__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__INCOMING = ACTION__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION = ACTION__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__REDEFINED_NODE = ACTION__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__HANDLER = ACTION__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__OUTPUT = ACTION__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__INPUT = ACTION__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__CONTEXT = ACTION__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__LOCAL_PRECONDITION = ACTION__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__LOCAL_POSTCONDITION = ACTION__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Result' reference list. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__RESULT = ACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Unmarshall Type' reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__UNMARSHALL_TYPE = ACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Object' containment reference. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION__OBJECT = ACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Unmarshall Action' class. + * + * + * @generated + * @ordered + */ + int UNMARSHALL_ACTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ControlNodeImpl Control Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ControlNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getControlNode() + * @generated + */ + int CONTROL_NODE = 212; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__EANNOTATIONS = ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_ELEMENT = ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNER = ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_COMMENT = ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NAME = ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__VISIBILITY = ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__QUALIFIED_NAME = ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__CLIENT_DEPENDENCY = ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NAMESPACE = ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NAME_EXPRESSION = ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_LEAF = ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__REDEFINED_ELEMENT = ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__REDEFINITION_CONTEXT = ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OUTGOING = ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IN_GROUP = ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IN_PARTITION = ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IN_STRUCTURED_NODE = ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__ACTIVITY = ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__INCOMING = ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IN_INTERRUPTIBLE_REGION = ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__REDEFINED_NODE = ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Control Node' class. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE_FEATURE_COUNT = ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ControlFlowImpl Control Flow}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ControlFlowImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getControlFlow() + * @generated + */ + int CONTROL_FLOW = 213; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__EANNOTATIONS = ACTIVITY_EDGE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__OWNED_ELEMENT = ACTIVITY_EDGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__OWNER = ACTIVITY_EDGE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__OWNED_COMMENT = ACTIVITY_EDGE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__NAME = ACTIVITY_EDGE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__VISIBILITY = ACTIVITY_EDGE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__QUALIFIED_NAME = ACTIVITY_EDGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__CLIENT_DEPENDENCY = ACTIVITY_EDGE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__NAMESPACE = ACTIVITY_EDGE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__NAME_EXPRESSION = ACTIVITY_EDGE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__IS_LEAF = ACTIVITY_EDGE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__REDEFINED_ELEMENT = ACTIVITY_EDGE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__REDEFINITION_CONTEXT = ACTIVITY_EDGE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__ACTIVITY = ACTIVITY_EDGE__ACTIVITY; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__IN_GROUP = ACTIVITY_EDGE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__IN_PARTITION = ACTIVITY_EDGE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__IN_STRUCTURED_NODE = ACTIVITY_EDGE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Target' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__TARGET = ACTIVITY_EDGE__TARGET; + + /** + * The feature id for the 'Redefined Edge' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__REDEFINED_EDGE = ACTIVITY_EDGE__REDEFINED_EDGE; + + /** + * The feature id for the 'Guard' containment reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__GUARD = ACTIVITY_EDGE__GUARD; + + /** + * The feature id for the 'Weight' containment reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__WEIGHT = ACTIVITY_EDGE__WEIGHT; + + /** + * The feature id for the 'Interrupts' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__INTERRUPTS = ACTIVITY_EDGE__INTERRUPTS; + + /** + * The feature id for the 'Source' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW__SOURCE = ACTIVITY_EDGE__SOURCE; + + /** + * The number of structural features of the 'Control Flow' class. + * + * + * @generated + * @ordered + */ + int CONTROL_FLOW_FEATURE_COUNT = ACTIVITY_EDGE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.InitialNodeImpl Initial Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.InitialNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInitialNode() + * @generated + */ + int INITIAL_NODE = 214; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__EANNOTATIONS = CONTROL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__OWNED_COMMENT = CONTROL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__VISIBILITY = CONTROL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__CLIENT_DEPENDENCY = CONTROL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__NAMESPACE = CONTROL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__NAME_EXPRESSION = CONTROL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__IS_LEAF = CONTROL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__REDEFINED_ELEMENT = CONTROL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__OUTGOING = CONTROL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__IN_PARTITION = CONTROL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__IN_STRUCTURED_NODE = CONTROL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__INCOMING = CONTROL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__IN_INTERRUPTIBLE_REGION = CONTROL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE__REDEFINED_NODE = CONTROL_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Initial Node' class. + * + * + * @generated + * @ordered + */ + int INITIAL_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityParameterNodeImpl Activity Parameter Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityParameterNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityParameterNode() + * @generated + */ + int ACTIVITY_PARAMETER_NODE = 215; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__EANNOTATIONS = OBJECT_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__OWNED_ELEMENT = OBJECT_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__OWNER = OBJECT_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__OWNED_COMMENT = OBJECT_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__NAME = OBJECT_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__VISIBILITY = OBJECT_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__QUALIFIED_NAME = OBJECT_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__CLIENT_DEPENDENCY = OBJECT_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__NAMESPACE = OBJECT_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__NAME_EXPRESSION = OBJECT_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IS_LEAF = OBJECT_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__REDEFINED_ELEMENT = OBJECT_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__OUTGOING = OBJECT_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IN_PARTITION = OBJECT_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE = OBJECT_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__ACTIVITY = OBJECT_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__INCOMING = OBJECT_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IN_INTERRUPTIBLE_REGION = OBJECT_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__REDEFINED_NODE = OBJECT_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__TYPE = OBJECT_NODE__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__ORDERING = OBJECT_NODE__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IS_CONTROL_TYPE = OBJECT_NODE__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__UPPER_BOUND = OBJECT_NODE__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__IN_STATE = OBJECT_NODE__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__SELECTION = OBJECT_NODE__SELECTION; + + /** + * The feature id for the 'Parameter' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE__PARAMETER = OBJECT_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Activity Parameter Node' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_PARAMETER_NODE_FEATURE_COUNT = OBJECT_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ForkNodeImpl Fork Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ForkNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getForkNode() + * @generated + */ + int FORK_NODE = 216; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__EANNOTATIONS = CONTROL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_COMMENT = CONTROL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__VISIBILITY = CONTROL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__CLIENT_DEPENDENCY = CONTROL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NAMESPACE = CONTROL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NAME_EXPRESSION = CONTROL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_LEAF = CONTROL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__REDEFINED_ELEMENT = CONTROL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OUTGOING = CONTROL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IN_PARTITION = CONTROL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IN_STRUCTURED_NODE = CONTROL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__INCOMING = CONTROL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IN_INTERRUPTIBLE_REGION = CONTROL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__REDEFINED_NODE = CONTROL_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Fork Node' class. + * + * + * @generated + * @ordered + */ + int FORK_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FinalNodeImpl Final Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.FinalNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFinalNode() + * @generated + */ + int FINAL_NODE = 218; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__EANNOTATIONS = CONTROL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__OWNED_COMMENT = CONTROL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__VISIBILITY = CONTROL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__CLIENT_DEPENDENCY = CONTROL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__NAMESPACE = CONTROL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__NAME_EXPRESSION = CONTROL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__IS_LEAF = CONTROL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__REDEFINED_ELEMENT = CONTROL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__OUTGOING = CONTROL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__IN_PARTITION = CONTROL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__IN_STRUCTURED_NODE = CONTROL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__INCOMING = CONTROL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__IN_INTERRUPTIBLE_REGION = CONTROL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_NODE__REDEFINED_NODE = CONTROL_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Final Node' class. + * + * + * @generated + * @ordered + */ + int FINAL_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FlowFinalNodeImpl Flow Final Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.FlowFinalNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFlowFinalNode() + * @generated + */ + int FLOW_FINAL_NODE = 217; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__EANNOTATIONS = FINAL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__OWNED_ELEMENT = FINAL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__OWNER = FINAL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__OWNED_COMMENT = FINAL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__NAME = FINAL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__VISIBILITY = FINAL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__QUALIFIED_NAME = FINAL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__CLIENT_DEPENDENCY = FINAL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__NAMESPACE = FINAL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__NAME_EXPRESSION = FINAL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__IS_LEAF = FINAL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__REDEFINED_ELEMENT = FINAL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__REDEFINITION_CONTEXT = FINAL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__OUTGOING = FINAL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__IN_GROUP = FINAL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__IN_PARTITION = FINAL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__IN_STRUCTURED_NODE = FINAL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__ACTIVITY = FINAL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__INCOMING = FINAL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__IN_INTERRUPTIBLE_REGION = FINAL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE__REDEFINED_NODE = FINAL_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Flow Final Node' class. + * + * + * @generated + * @ordered + */ + int FLOW_FINAL_NODE_FEATURE_COUNT = FINAL_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CentralBufferNodeImpl Central Buffer Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CentralBufferNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCentralBufferNode() + * @generated + */ + int CENTRAL_BUFFER_NODE = 219; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__EANNOTATIONS = OBJECT_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__OWNED_ELEMENT = OBJECT_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__OWNER = OBJECT_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__OWNED_COMMENT = OBJECT_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__NAME = OBJECT_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__VISIBILITY = OBJECT_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__QUALIFIED_NAME = OBJECT_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__CLIENT_DEPENDENCY = OBJECT_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__NAMESPACE = OBJECT_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__NAME_EXPRESSION = OBJECT_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IS_LEAF = OBJECT_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__REDEFINED_ELEMENT = OBJECT_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__OUTGOING = OBJECT_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IN_PARTITION = OBJECT_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IN_STRUCTURED_NODE = OBJECT_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__ACTIVITY = OBJECT_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__INCOMING = OBJECT_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IN_INTERRUPTIBLE_REGION = OBJECT_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__REDEFINED_NODE = OBJECT_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__TYPE = OBJECT_NODE__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__ORDERING = OBJECT_NODE__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IS_CONTROL_TYPE = OBJECT_NODE__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__UPPER_BOUND = OBJECT_NODE__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__IN_STATE = OBJECT_NODE__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE__SELECTION = OBJECT_NODE__SELECTION; + + /** + * The number of structural features of the 'Central Buffer Node' class. + * + * + * @generated + * @ordered + */ + int CENTRAL_BUFFER_NODE_FEATURE_COUNT = OBJECT_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.MergeNodeImpl Merge Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.MergeNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMergeNode() + * @generated + */ + int MERGE_NODE = 220; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__EANNOTATIONS = CONTROL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_COMMENT = CONTROL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__VISIBILITY = CONTROL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__CLIENT_DEPENDENCY = CONTROL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NAMESPACE = CONTROL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NAME_EXPRESSION = CONTROL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_LEAF = CONTROL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__REDEFINED_ELEMENT = CONTROL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OUTGOING = CONTROL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IN_PARTITION = CONTROL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IN_STRUCTURED_NODE = CONTROL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__INCOMING = CONTROL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IN_INTERRUPTIBLE_REGION = CONTROL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__REDEFINED_NODE = CONTROL_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Merge Node' class. + * + * + * @generated + * @ordered + */ + int MERGE_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DecisionNodeImpl Decision Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DecisionNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDecisionNode() + * @generated + */ + int DECISION_NODE = 221; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__EANNOTATIONS = CONTROL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_COMMENT = CONTROL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__VISIBILITY = CONTROL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__CLIENT_DEPENDENCY = CONTROL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NAMESPACE = CONTROL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NAME_EXPRESSION = CONTROL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_LEAF = CONTROL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__REDEFINED_ELEMENT = CONTROL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OUTGOING = CONTROL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IN_PARTITION = CONTROL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IN_STRUCTURED_NODE = CONTROL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__INCOMING = CONTROL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IN_INTERRUPTIBLE_REGION = CONTROL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__REDEFINED_NODE = CONTROL_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Decision Input' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DECISION_INPUT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Decision Node' class. + * + * + * @generated + * @ordered + */ + int DECISION_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ActivityFinalNodeImpl Activity Final Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ActivityFinalNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getActivityFinalNode() + * @generated + */ + int ACTIVITY_FINAL_NODE = 222; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__EANNOTATIONS = FINAL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__OWNED_ELEMENT = FINAL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__OWNER = FINAL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__OWNED_COMMENT = FINAL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__NAME = FINAL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__VISIBILITY = FINAL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__QUALIFIED_NAME = FINAL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__CLIENT_DEPENDENCY = FINAL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__NAMESPACE = FINAL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__NAME_EXPRESSION = FINAL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__IS_LEAF = FINAL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__REDEFINED_ELEMENT = FINAL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__REDEFINITION_CONTEXT = FINAL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__OUTGOING = FINAL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__IN_GROUP = FINAL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__IN_PARTITION = FINAL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__IN_STRUCTURED_NODE = FINAL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__ACTIVITY = FINAL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__INCOMING = FINAL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__IN_INTERRUPTIBLE_REGION = FINAL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE__REDEFINED_NODE = FINAL_NODE__REDEFINED_NODE; + + /** + * The number of structural features of the 'Activity Final Node' class. + * + * + * @generated + * @ordered + */ + int ACTIVITY_FINAL_NODE_FEATURE_COUNT = FINAL_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl Join Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.JoinNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getJoinNode() + * @generated + */ + int JOIN_NODE = 223; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__EANNOTATIONS = CONTROL_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_COMMENT = CONTROL_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__VISIBILITY = CONTROL_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__CLIENT_DEPENDENCY = CONTROL_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NAMESPACE = CONTROL_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NAME_EXPRESSION = CONTROL_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_LEAF = CONTROL_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__REDEFINED_ELEMENT = CONTROL_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__REDEFINITION_CONTEXT = CONTROL_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OUTGOING = CONTROL_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IN_GROUP = CONTROL_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IN_PARTITION = CONTROL_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IN_STRUCTURED_NODE = CONTROL_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__ACTIVITY = CONTROL_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__INCOMING = CONTROL_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IN_INTERRUPTIBLE_REGION = CONTROL_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__REDEFINED_NODE = CONTROL_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Is Combine Duplicate' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_COMBINE_DUPLICATE = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Join Spec' containment reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__JOIN_SPEC = CONTROL_NODE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Join Node' class. + * + * + * @generated + * @ordered + */ + int JOIN_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DataStoreNodeImpl Data Store Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DataStoreNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDataStoreNode() + * @generated + */ + int DATA_STORE_NODE = 224; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__EANNOTATIONS = CENTRAL_BUFFER_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__OWNED_ELEMENT = CENTRAL_BUFFER_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__OWNER = CENTRAL_BUFFER_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__OWNED_COMMENT = CENTRAL_BUFFER_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__NAME = CENTRAL_BUFFER_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__VISIBILITY = CENTRAL_BUFFER_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__QUALIFIED_NAME = CENTRAL_BUFFER_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__CLIENT_DEPENDENCY = CENTRAL_BUFFER_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__NAMESPACE = CENTRAL_BUFFER_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__NAME_EXPRESSION = CENTRAL_BUFFER_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IS_LEAF = CENTRAL_BUFFER_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__REDEFINED_ELEMENT = CENTRAL_BUFFER_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__REDEFINITION_CONTEXT = CENTRAL_BUFFER_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__OUTGOING = CENTRAL_BUFFER_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IN_GROUP = CENTRAL_BUFFER_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IN_PARTITION = CENTRAL_BUFFER_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IN_STRUCTURED_NODE = CENTRAL_BUFFER_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__ACTIVITY = CENTRAL_BUFFER_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__INCOMING = CENTRAL_BUFFER_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IN_INTERRUPTIBLE_REGION = CENTRAL_BUFFER_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__REDEFINED_NODE = CENTRAL_BUFFER_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__TYPE = CENTRAL_BUFFER_NODE__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__ORDERING = CENTRAL_BUFFER_NODE__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IS_CONTROL_TYPE = CENTRAL_BUFFER_NODE__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__UPPER_BOUND = CENTRAL_BUFFER_NODE__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__IN_STATE = CENTRAL_BUFFER_NODE__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE__SELECTION = CENTRAL_BUFFER_NODE__SELECTION; + + /** + * The number of structural features of the 'Data Store Node' class. + * + * + * @generated + * @ordered + */ + int DATA_STORE_NODE_FEATURE_COUNT = CENTRAL_BUFFER_NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl Object Flow}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getObjectFlow() + * @generated + */ + int OBJECT_FLOW = 225; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__EANNOTATIONS = ACTIVITY_EDGE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__OWNED_ELEMENT = ACTIVITY_EDGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__OWNER = ACTIVITY_EDGE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__OWNED_COMMENT = ACTIVITY_EDGE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__NAME = ACTIVITY_EDGE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__VISIBILITY = ACTIVITY_EDGE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__QUALIFIED_NAME = ACTIVITY_EDGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__CLIENT_DEPENDENCY = ACTIVITY_EDGE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__NAMESPACE = ACTIVITY_EDGE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__NAME_EXPRESSION = ACTIVITY_EDGE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__IS_LEAF = ACTIVITY_EDGE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__REDEFINED_ELEMENT = ACTIVITY_EDGE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__REDEFINITION_CONTEXT = ACTIVITY_EDGE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__ACTIVITY = ACTIVITY_EDGE__ACTIVITY; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__IN_GROUP = ACTIVITY_EDGE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__IN_PARTITION = ACTIVITY_EDGE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__IN_STRUCTURED_NODE = ACTIVITY_EDGE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Target' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__TARGET = ACTIVITY_EDGE__TARGET; + + /** + * The feature id for the 'Redefined Edge' reference list. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__REDEFINED_EDGE = ACTIVITY_EDGE__REDEFINED_EDGE; + + /** + * The feature id for the 'Guard' containment reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__GUARD = ACTIVITY_EDGE__GUARD; + + /** + * The feature id for the 'Weight' containment reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__WEIGHT = ACTIVITY_EDGE__WEIGHT; + + /** + * The feature id for the 'Interrupts' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__INTERRUPTS = ACTIVITY_EDGE__INTERRUPTS; + + /** + * The feature id for the 'Source' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__SOURCE = ACTIVITY_EDGE__SOURCE; + + /** + * The feature id for the 'Is Multicast' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__IS_MULTICAST = ACTIVITY_EDGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Multireceive' attribute. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__IS_MULTIRECEIVE = ACTIVITY_EDGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Transformation' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__TRANSFORMATION = ACTIVITY_EDGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW__SELECTION = ACTIVITY_EDGE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Object Flow' class. + * + * + * @generated + * @ordered + */ + int OBJECT_FLOW_FEATURE_COUNT = ACTIVITY_EDGE_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.SequenceNodeImpl Sequence Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.SequenceNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getSequenceNode() + * @generated + */ + int SEQUENCE_NODE = 226; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__EANNOTATIONS = STRUCTURED_ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OWNED_ELEMENT = STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OWNER = STRUCTURED_ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OWNED_COMMENT = STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__NAME = STRUCTURED_ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__VISIBILITY = STRUCTURED_ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__QUALIFIED_NAME = STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__CLIENT_DEPENDENCY = STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__NAMESPACE = STRUCTURED_ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__NAME_EXPRESSION = STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IS_LEAF = STRUCTURED_ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__REDEFINED_ELEMENT = STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OUTGOING = STRUCTURED_ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IN_PARTITION = STRUCTURED_ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IN_STRUCTURED_NODE = STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION = STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__REDEFINED_NODE = STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__HANDLER = STRUCTURED_ACTIVITY_NODE__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OUTPUT = STRUCTURED_ACTIVITY_NODE__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__INPUT = STRUCTURED_ACTIVITY_NODE__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__CONTEXT = STRUCTURED_ACTIVITY_NODE__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__LOCAL_PRECONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__LOCAL_POSTCONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__ELEMENT_IMPORT = STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__PACKAGE_IMPORT = STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OWNED_RULE = STRUCTURED_ACTIVITY_NODE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IMPORTED_MEMBER = STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__OWNED_MEMBER = STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__SUBGROUP = STRUCTURED_ACTIVITY_NODE__SUBGROUP; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__IN_ACTIVITY = STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__VARIABLE = STRUCTURED_ACTIVITY_NODE__VARIABLE; + + /** + * The feature id for the 'Node' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__NODE = STRUCTURED_ACTIVITY_NODE__NODE; + + /** + * The feature id for the 'Must Isolate' attribute. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__MUST_ISOLATE = STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE; + + /** + * The feature id for the 'Edge' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__EDGE = STRUCTURED_ACTIVITY_NODE__EDGE; + + /** + * The feature id for the 'Executable Node' containment reference list. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE__EXECUTABLE_NODE = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Sequence Node' class. + * + * + * @generated + * @ordered + */ + int SEQUENCE_NODE_FEATURE_COUNT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl Conditional Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConditionalNode() + * @generated + */ + int CONDITIONAL_NODE = 227; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__EANNOTATIONS = STRUCTURED_ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OWNED_ELEMENT = STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OWNER = STRUCTURED_ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OWNED_COMMENT = STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__NAME = STRUCTURED_ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__VISIBILITY = STRUCTURED_ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__QUALIFIED_NAME = STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__CLIENT_DEPENDENCY = STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__NAMESPACE = STRUCTURED_ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__NAME_EXPRESSION = STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IS_LEAF = STRUCTURED_ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__REDEFINED_ELEMENT = STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OUTGOING = STRUCTURED_ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IN_PARTITION = STRUCTURED_ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IN_STRUCTURED_NODE = STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION = STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__REDEFINED_NODE = STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__HANDLER = STRUCTURED_ACTIVITY_NODE__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OUTPUT = STRUCTURED_ACTIVITY_NODE__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__INPUT = STRUCTURED_ACTIVITY_NODE__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__CONTEXT = STRUCTURED_ACTIVITY_NODE__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__LOCAL_PRECONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__LOCAL_POSTCONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__ELEMENT_IMPORT = STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__PACKAGE_IMPORT = STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OWNED_RULE = STRUCTURED_ACTIVITY_NODE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IMPORTED_MEMBER = STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__OWNED_MEMBER = STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__SUBGROUP = STRUCTURED_ACTIVITY_NODE__SUBGROUP; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IN_ACTIVITY = STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__VARIABLE = STRUCTURED_ACTIVITY_NODE__VARIABLE; + + /** + * The feature id for the 'Node' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__NODE = STRUCTURED_ACTIVITY_NODE__NODE; + + /** + * The feature id for the 'Must Isolate' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__MUST_ISOLATE = STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE; + + /** + * The feature id for the 'Edge' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__EDGE = STRUCTURED_ACTIVITY_NODE__EDGE; + + /** + * The feature id for the 'Is Determinate' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IS_DETERMINATE = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Assured' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__IS_ASSURED = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Clause' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__CLAUSE = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Result' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE__RESULT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Conditional Node' class. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_NODE_FEATURE_COUNT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl Clause}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ClauseImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getClause() + * @generated + */ + int CLAUSE = 228; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__EANNOTATIONS = ELEMENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLAUSE__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__OWNED_COMMENT = ELEMENT__OWNED_COMMENT; + + /** + * The feature id for the 'Test' reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__TEST = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Body' reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__BODY = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Predecessor Clause' reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__PREDECESSOR_CLAUSE = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Successor Clause' reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__SUCCESSOR_CLAUSE = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Decider' reference. + * + * + * @generated + * @ordered + */ + int CLAUSE__DECIDER = ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Body Output' reference list. + * + * + * @generated + * @ordered + */ + int CLAUSE__BODY_OUTPUT = ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Clause' class. + * + * + * @generated + * @ordered + */ + int CLAUSE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl Loop Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.LoopNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getLoopNode() + * @generated + */ + int LOOP_NODE = 229; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__EANNOTATIONS = STRUCTURED_ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OWNED_ELEMENT = STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OWNER = STRUCTURED_ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OWNED_COMMENT = STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__NAME = STRUCTURED_ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__VISIBILITY = STRUCTURED_ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__QUALIFIED_NAME = STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__CLIENT_DEPENDENCY = STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__NAMESPACE = STRUCTURED_ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__NAME_EXPRESSION = STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IS_LEAF = STRUCTURED_ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__REDEFINED_ELEMENT = STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OUTGOING = STRUCTURED_ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IN_PARTITION = STRUCTURED_ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IN_STRUCTURED_NODE = STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IN_INTERRUPTIBLE_REGION = STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__REDEFINED_NODE = STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__HANDLER = STRUCTURED_ACTIVITY_NODE__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OUTPUT = STRUCTURED_ACTIVITY_NODE__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__INPUT = STRUCTURED_ACTIVITY_NODE__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__CONTEXT = STRUCTURED_ACTIVITY_NODE__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__LOCAL_PRECONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__LOCAL_POSTCONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__ELEMENT_IMPORT = STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__PACKAGE_IMPORT = STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OWNED_RULE = STRUCTURED_ACTIVITY_NODE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IMPORTED_MEMBER = STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__OWNED_MEMBER = STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__SUBGROUP = STRUCTURED_ACTIVITY_NODE__SUBGROUP; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IN_ACTIVITY = STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__VARIABLE = STRUCTURED_ACTIVITY_NODE__VARIABLE; + + /** + * The feature id for the 'Node' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__NODE = STRUCTURED_ACTIVITY_NODE__NODE; + + /** + * The feature id for the 'Must Isolate' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__MUST_ISOLATE = STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE; + + /** + * The feature id for the 'Edge' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__EDGE = STRUCTURED_ACTIVITY_NODE__EDGE; + + /** + * The feature id for the 'Is Tested First' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__IS_TESTED_FIRST = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Body Part' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__BODY_PART = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Setup Part' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__SETUP_PART = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Decider' reference. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__DECIDER = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Test' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__TEST = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Result' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__RESULT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Loop Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__LOOP_VARIABLE = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Body Output' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__BODY_OUTPUT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Loop Variable Input' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_NODE__LOOP_VARIABLE_INPUT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 8; + + /** + * The number of structural features of the 'Loop Node' class. + * + * + * @generated + * @ordered + */ + int LOOP_NODE_FEATURE_COUNT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 9; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExpansionNodeImpl Expansion Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExpansionNodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExpansionNode() + * @generated + */ + int EXPANSION_NODE = 230; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__EANNOTATIONS = OBJECT_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__OWNED_ELEMENT = OBJECT_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__OWNER = OBJECT_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__OWNED_COMMENT = OBJECT_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__NAME = OBJECT_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__VISIBILITY = OBJECT_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__QUALIFIED_NAME = OBJECT_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__CLIENT_DEPENDENCY = OBJECT_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__NAMESPACE = OBJECT_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__NAME_EXPRESSION = OBJECT_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IS_LEAF = OBJECT_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__REDEFINED_ELEMENT = OBJECT_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__REDEFINITION_CONTEXT = OBJECT_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__OUTGOING = OBJECT_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IN_GROUP = OBJECT_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IN_PARTITION = OBJECT_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IN_STRUCTURED_NODE = OBJECT_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__ACTIVITY = OBJECT_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__INCOMING = OBJECT_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IN_INTERRUPTIBLE_REGION = OBJECT_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__REDEFINED_NODE = OBJECT_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__TYPE = OBJECT_NODE__TYPE; + + /** + * The feature id for the 'Ordering' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__ORDERING = OBJECT_NODE__ORDERING; + + /** + * The feature id for the 'Is Control Type' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IS_CONTROL_TYPE = OBJECT_NODE__IS_CONTROL_TYPE; + + /** + * The feature id for the 'Upper Bound' containment reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__UPPER_BOUND = OBJECT_NODE__UPPER_BOUND; + + /** + * The feature id for the 'In State' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__IN_STATE = OBJECT_NODE__IN_STATE; + + /** + * The feature id for the 'Selection' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__SELECTION = OBJECT_NODE__SELECTION; + + /** + * The feature id for the 'Region As Output' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__REGION_AS_OUTPUT = OBJECT_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Region As Input' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE__REGION_AS_INPUT = OBJECT_NODE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Expansion Node' class. + * + * + * @generated + * @ordered + */ + int EXPANSION_NODE_FEATURE_COUNT = OBJECT_NODE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl Expansion Region}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExpansionRegion() + * @generated + */ + int EXPANSION_REGION = 231; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__EANNOTATIONS = STRUCTURED_ACTIVITY_NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OWNED_ELEMENT = STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OWNER = STRUCTURED_ACTIVITY_NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OWNED_COMMENT = STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__NAME = STRUCTURED_ACTIVITY_NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__VISIBILITY = STRUCTURED_ACTIVITY_NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__QUALIFIED_NAME = STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__CLIENT_DEPENDENCY = STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__NAMESPACE = STRUCTURED_ACTIVITY_NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__NAME_EXPRESSION = STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IS_LEAF = STRUCTURED_ACTIVITY_NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__REDEFINED_ELEMENT = STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__REDEFINITION_CONTEXT = STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OUTGOING = STRUCTURED_ACTIVITY_NODE__OUTGOING; + + /** + * The feature id for the 'In Group' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IN_GROUP = STRUCTURED_ACTIVITY_NODE__IN_GROUP; + + /** + * The feature id for the 'In Partition' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IN_PARTITION = STRUCTURED_ACTIVITY_NODE__IN_PARTITION; + + /** + * The feature id for the 'In Structured Node' container reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IN_STRUCTURED_NODE = STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE; + + /** + * The feature id for the 'Activity' container reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__ACTIVITY = STRUCTURED_ACTIVITY_NODE__ACTIVITY; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__INCOMING = STRUCTURED_ACTIVITY_NODE__INCOMING; + + /** + * The feature id for the 'In Interruptible Region' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IN_INTERRUPTIBLE_REGION = STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION; + + /** + * The feature id for the 'Redefined Node' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__REDEFINED_NODE = STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE; + + /** + * The feature id for the 'Handler' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__HANDLER = STRUCTURED_ACTIVITY_NODE__HANDLER; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OUTPUT = STRUCTURED_ACTIVITY_NODE__OUTPUT; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__INPUT = STRUCTURED_ACTIVITY_NODE__INPUT; + + /** + * The feature id for the 'Context' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__CONTEXT = STRUCTURED_ACTIVITY_NODE__CONTEXT; + + /** + * The feature id for the 'Local Precondition' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__LOCAL_PRECONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION; + + /** + * The feature id for the 'Local Postcondition' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__LOCAL_POSTCONDITION = STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__ELEMENT_IMPORT = STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__PACKAGE_IMPORT = STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OWNED_RULE = STRUCTURED_ACTIVITY_NODE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__MEMBER = STRUCTURED_ACTIVITY_NODE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IMPORTED_MEMBER = STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OWNED_MEMBER = STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Subgroup' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__SUBGROUP = STRUCTURED_ACTIVITY_NODE__SUBGROUP; + + /** + * The feature id for the 'Super Group' reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__SUPER_GROUP = STRUCTURED_ACTIVITY_NODE__SUPER_GROUP; + + /** + * The feature id for the 'Contained Node' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__CONTAINED_NODE = STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE; + + /** + * The feature id for the 'In Activity' container reference. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__IN_ACTIVITY = STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY; + + /** + * The feature id for the 'Contained Edge' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__CONTAINED_EDGE = STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__VARIABLE = STRUCTURED_ACTIVITY_NODE__VARIABLE; + + /** + * The feature id for the 'Node' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__NODE = STRUCTURED_ACTIVITY_NODE__NODE; + + /** + * The feature id for the 'Must Isolate' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__MUST_ISOLATE = STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE; + + /** + * The feature id for the 'Edge' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__EDGE = STRUCTURED_ACTIVITY_NODE__EDGE; + + /** + * The feature id for the 'Mode' attribute. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__MODE = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Input Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__INPUT_ELEMENT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Output Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION__OUTPUT_ELEMENT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Expansion Region' class. + * + * + * @generated + * @ordered + */ + int EXPANSION_REGION_FEATURE_COUNT = STRUCTURED_ACTIVITY_NODE_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl Component Realization}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getComponentRealization() + * @generated + */ + int COMPONENT_REALIZATION = 232; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__EANNOTATIONS = REALIZATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__OWNED_ELEMENT = REALIZATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__OWNER = REALIZATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__OWNED_COMMENT = REALIZATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__NAME = REALIZATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__VISIBILITY = REALIZATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__QUALIFIED_NAME = REALIZATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__CLIENT_DEPENDENCY = REALIZATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__NAMESPACE = REALIZATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__NAME_EXPRESSION = REALIZATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__TEMPLATE_PARAMETER = REALIZATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER = REALIZATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__RELATED_ELEMENT = REALIZATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__SOURCE = REALIZATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__TARGET = REALIZATION__TARGET; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__SUPPLIER = REALIZATION__SUPPLIER; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__CLIENT = REALIZATION__CLIENT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__MAPPING = REALIZATION__MAPPING; + + /** + * The feature id for the 'Abstraction' container reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__ABSTRACTION = REALIZATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Realizing Classifier' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION__REALIZING_CLASSIFIER = REALIZATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Component Realization' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_REALIZATION_FEATURE_COUNT = REALIZATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl Component}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ComponentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getComponent() + * @generated + */ + int COMPONENT = 233; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__EANNOTATIONS = CLASS__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_COMMENT = CLASS__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__NAME = CLASS__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__VISIBILITY = CLASS__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__CLIENT_DEPENDENCY = CLASS__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__NAMESPACE = CLASS__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__NAME_EXPRESSION = CLASS__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__ELEMENT_IMPORT = CLASS__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__PACKAGE_IMPORT = CLASS__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_RULE = CLASS__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__IMPORTED_MEMBER = CLASS__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__IS_LEAF = CLASS__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__REDEFINED_ELEMENT = CLASS__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__REDEFINITION_CONTEXT = CLASS__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__TEMPLATE_PARAMETER = CLASS__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNING_TEMPLATE_PARAMETER = CLASS__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__PACKAGE = CLASS__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__TEMPLATE_BINDING = CLASS__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_TEMPLATE_SIGNATURE = CLASS__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__GENERALIZATION = CLASS__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__POWERTYPE_EXTENT = CLASS__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__INHERITED_MEMBER = CLASS__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__REDEFINED_CLASSIFIER = CLASS__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__GENERAL = CLASS__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_USE_CASE = CLASS__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__USE_CASE = CLASS__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__SUBSTITUTION = CLASS__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__ATTRIBUTE = CLASS__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__REPRESENTATION = CLASS__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__COLLABORATION_USE = CLASS__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_SIGNATURE = CLASS__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_ATTRIBUTE = CLASS__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__PART = CLASS__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__ROLE = CLASS__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_CONNECTOR = CLASS__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_PORT = CLASS__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_BEHAVIOR = CLASS__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT__CLASSIFIER_BEHAVIOR = CLASS__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__INTERFACE_REALIZATION = CLASS__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_TRIGGER = CLASS__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_OPERATION = CLASS__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__NESTED_CLASSIFIER = CLASS__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__SUPER_CLASS = CLASS__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__IS_ACTIVE = CLASS__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__OWNED_RECEPTION = CLASS__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__EXTENSION = CLASS__EXTENSION; + + /** + * The feature id for the 'Is Indirectly Instantiated' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__IS_INDIRECTLY_INSTANTIATED = CLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Required' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__REQUIRED = CLASS_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Provided' reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__PROVIDED = CLASS_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Packaged Element' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__PACKAGED_ELEMENT = CLASS_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT__REALIZATION = CLASS_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Component' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_FEATURE_COUNT = CLASS_FEATURE_COUNT + 5; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.NodeImpl Node}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.NodeImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getNode() + * @generated + */ + int NODE = 234; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__EANNOTATIONS = CLASS__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NODE__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_COMMENT = CLASS__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NODE__NAME = CLASS__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int NODE__VISIBILITY = CLASS__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NODE__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int NODE__CLIENT_DEPENDENCY = CLASS__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int NODE__NAMESPACE = CLASS__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int NODE__NAME_EXPRESSION = CLASS__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__ELEMENT_IMPORT = CLASS__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__PACKAGE_IMPORT = CLASS__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_RULE = CLASS__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int NODE__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int NODE__IMPORTED_MEMBER = CLASS__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int NODE__IS_LEAF = CLASS__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int NODE__REDEFINED_ELEMENT = CLASS__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int NODE__REDEFINITION_CONTEXT = CLASS__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int NODE__TEMPLATE_PARAMETER = CLASS__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int NODE__OWNING_TEMPLATE_PARAMETER = CLASS__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int NODE__PACKAGE = CLASS__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__TEMPLATE_BINDING = CLASS__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_TEMPLATE_SIGNATURE = CLASS__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int NODE__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__GENERALIZATION = CLASS__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int NODE__POWERTYPE_EXTENT = CLASS__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int NODE__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int NODE__INHERITED_MEMBER = CLASS__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int NODE__REDEFINED_CLASSIFIER = CLASS__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int NODE__GENERAL = CLASS__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_USE_CASE = CLASS__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int NODE__USE_CASE = CLASS__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__SUBSTITUTION = CLASS__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int NODE__ATTRIBUTE = CLASS__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int NODE__REPRESENTATION = CLASS__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__COLLABORATION_USE = CLASS__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_SIGNATURE = CLASS__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_ATTRIBUTE = CLASS__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int NODE__PART = CLASS__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int NODE__ROLE = CLASS__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_CONNECTOR = CLASS__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_PORT = CLASS__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_BEHAVIOR = CLASS__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int NODE__CLASSIFIER_BEHAVIOR = CLASS__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__INTERFACE_REALIZATION = CLASS__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_TRIGGER = CLASS__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_OPERATION = CLASS__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__NESTED_CLASSIFIER = CLASS__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int NODE__SUPER_CLASS = CLASS__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int NODE__IS_ACTIVE = CLASS__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__OWNED_RECEPTION = CLASS__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int NODE__EXTENSION = CLASS__EXTENSION; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__DEPLOYMENT = CLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int NODE__DEPLOYED_ELEMENT = CLASS_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Nested Node' containment reference list. + * + * + * @generated + * @ordered + */ + int NODE__NESTED_NODE = CLASS_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Node' class. + * + * + * @generated + * @ordered + */ + int NODE_FEATURE_COUNT = CLASS_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.DeviceImpl Device}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.DeviceImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getDevice() + * @generated + */ + int DEVICE = 235; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__EANNOTATIONS = NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_ELEMENT = NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNER = NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_COMMENT = NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEVICE__NAME = NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int DEVICE__VISIBILITY = NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEVICE__QUALIFIED_NAME = NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__CLIENT_DEPENDENCY = NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEVICE__NAMESPACE = NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int DEVICE__NAME_EXPRESSION = NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__ELEMENT_IMPORT = NODE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__PACKAGE_IMPORT = NODE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_RULE = NODE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__MEMBER = NODE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__IMPORTED_MEMBER = NODE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_MEMBER = NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int DEVICE__IS_LEAF = NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__REDEFINED_ELEMENT = NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__REDEFINITION_CONTEXT = NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int DEVICE__TEMPLATE_PARAMETER = NODE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNING_TEMPLATE_PARAMETER = NODE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int DEVICE__PACKAGE = NODE__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__TEMPLATE_BINDING = NODE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_TEMPLATE_SIGNATURE = NODE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DEVICE__IS_ABSTRACT = NODE__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__GENERALIZATION = NODE__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__POWERTYPE_EXTENT = NODE__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__FEATURE = NODE__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__INHERITED_MEMBER = NODE__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__REDEFINED_CLASSIFIER = NODE__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__GENERAL = NODE__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_USE_CASE = NODE__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__USE_CASE = NODE__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__SUBSTITUTION = NODE__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__ATTRIBUTE = NODE__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int DEVICE__REPRESENTATION = NODE__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__COLLABORATION_USE = NODE__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_SIGNATURE = NODE__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_ATTRIBUTE = NODE__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__PART = NODE__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__ROLE = NODE__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_CONNECTOR = NODE__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_PORT = NODE__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_BEHAVIOR = NODE__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int DEVICE__CLASSIFIER_BEHAVIOR = NODE__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__INTERFACE_REALIZATION = NODE__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_TRIGGER = NODE__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_OPERATION = NODE__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__NESTED_CLASSIFIER = NODE__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__SUPER_CLASS = NODE__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int DEVICE__IS_ACTIVE = NODE__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__OWNED_RECEPTION = NODE__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__EXTENSION = NODE__EXTENSION; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__DEPLOYMENT = NODE__DEPLOYMENT; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__DEPLOYED_ELEMENT = NODE__DEPLOYED_ELEMENT; + + /** + * The feature id for the 'Nested Node' containment reference list. + * + * + * @generated + * @ordered + */ + int DEVICE__NESTED_NODE = NODE__NESTED_NODE; + + /** + * The number of structural features of the 'Device' class. + * + * + * @generated + * @ordered + */ + int DEVICE_FEATURE_COUNT = NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ExecutionEnvironmentImpl Execution Environment}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ExecutionEnvironmentImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExecutionEnvironment() + * @generated + */ + int EXECUTION_ENVIRONMENT = 236; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__EANNOTATIONS = NODE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_ELEMENT = NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNER = NODE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_COMMENT = NODE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__NAME = NODE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__VISIBILITY = NODE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__QUALIFIED_NAME = NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__CLIENT_DEPENDENCY = NODE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__NAMESPACE = NODE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__NAME_EXPRESSION = NODE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__ELEMENT_IMPORT = NODE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__PACKAGE_IMPORT = NODE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_RULE = NODE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__MEMBER = NODE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__IMPORTED_MEMBER = NODE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_MEMBER = NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__IS_LEAF = NODE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__REDEFINED_ELEMENT = NODE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__REDEFINITION_CONTEXT = NODE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__TEMPLATE_PARAMETER = NODE__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNING_TEMPLATE_PARAMETER = NODE__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__PACKAGE = NODE__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__TEMPLATE_BINDING = NODE__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_TEMPLATE_SIGNATURE = NODE__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__IS_ABSTRACT = NODE__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__GENERALIZATION = NODE__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__POWERTYPE_EXTENT = NODE__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__FEATURE = NODE__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__INHERITED_MEMBER = NODE__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__REDEFINED_CLASSIFIER = NODE__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__GENERAL = NODE__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_USE_CASE = NODE__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__USE_CASE = NODE__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__SUBSTITUTION = NODE__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__ATTRIBUTE = NODE__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__REPRESENTATION = NODE__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__COLLABORATION_USE = NODE__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_SIGNATURE = NODE__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_ATTRIBUTE = NODE__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__PART = NODE__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__ROLE = NODE__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_CONNECTOR = NODE__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_PORT = NODE__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_BEHAVIOR = NODE__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__CLASSIFIER_BEHAVIOR = NODE__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__INTERFACE_REALIZATION = NODE__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_TRIGGER = NODE__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_OPERATION = NODE__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__NESTED_CLASSIFIER = NODE__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__SUPER_CLASS = NODE__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__IS_ACTIVE = NODE__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__OWNED_RECEPTION = NODE__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__EXTENSION = NODE__EXTENSION; + + /** + * The feature id for the 'Deployment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__DEPLOYMENT = NODE__DEPLOYMENT; + + /** + * The feature id for the 'Deployed Element' reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__DEPLOYED_ELEMENT = NODE__DEPLOYED_ELEMENT; + + /** + * The feature id for the 'Nested Node' containment reference list. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT__NESTED_NODE = NODE__NESTED_NODE; + + /** + * The number of structural features of the 'Execution Environment' class. + * + * + * @generated + * @ordered + */ + int EXECUTION_ENVIRONMENT_FEATURE_COUNT = NODE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.CommunicationPathImpl Communication Path}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.CommunicationPathImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCommunicationPath() + * @generated + */ + int COMMUNICATION_PATH = 237; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__EANNOTATIONS = ASSOCIATION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_ELEMENT = ASSOCIATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNER = ASSOCIATION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_COMMENT = ASSOCIATION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__NAME = ASSOCIATION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__VISIBILITY = ASSOCIATION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__QUALIFIED_NAME = ASSOCIATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__CLIENT_DEPENDENCY = ASSOCIATION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__NAMESPACE = ASSOCIATION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__NAME_EXPRESSION = ASSOCIATION__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__ELEMENT_IMPORT = ASSOCIATION__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__PACKAGE_IMPORT = ASSOCIATION__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_RULE = ASSOCIATION__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__MEMBER = ASSOCIATION__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__IMPORTED_MEMBER = ASSOCIATION__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_MEMBER = ASSOCIATION__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__IS_LEAF = ASSOCIATION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__REDEFINED_ELEMENT = ASSOCIATION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__REDEFINITION_CONTEXT = ASSOCIATION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__TEMPLATE_PARAMETER = ASSOCIATION__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNING_TEMPLATE_PARAMETER = ASSOCIATION__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__PACKAGE = ASSOCIATION__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__TEMPLATE_BINDING = ASSOCIATION__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_TEMPLATE_SIGNATURE = ASSOCIATION__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__IS_ABSTRACT = ASSOCIATION__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__GENERALIZATION = ASSOCIATION__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__POWERTYPE_EXTENT = ASSOCIATION__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__FEATURE = ASSOCIATION__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__INHERITED_MEMBER = ASSOCIATION__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__REDEFINED_CLASSIFIER = ASSOCIATION__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__GENERAL = ASSOCIATION__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_USE_CASE = ASSOCIATION__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__USE_CASE = ASSOCIATION__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__SUBSTITUTION = ASSOCIATION__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__ATTRIBUTE = ASSOCIATION__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__REPRESENTATION = ASSOCIATION__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__COLLABORATION_USE = ASSOCIATION__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_SIGNATURE = ASSOCIATION__OWNED_SIGNATURE; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__RELATED_ELEMENT = ASSOCIATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__IS_DERIVED = ASSOCIATION__IS_DERIVED; + + /** + * The feature id for the 'End Type' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__END_TYPE = ASSOCIATION__END_TYPE; + + /** + * The feature id for the 'Member End' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__MEMBER_END = ASSOCIATION__MEMBER_END; + + /** + * The feature id for the 'Navigable Owned End' reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__NAVIGABLE_OWNED_END = ASSOCIATION__NAVIGABLE_OWNED_END; + + /** + * The feature id for the 'Owned End' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH__OWNED_END = ASSOCIATION__OWNED_END; + + /** + * The number of structural features of the 'Communication Path' class. + * + * + * @generated + * @ordered + */ + int COMMUNICATION_PATH_FEATURE_COUNT = ASSOCIATION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.FinalStateImpl Final State}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.FinalStateImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getFinalState() + * @generated + */ + int FINAL_STATE = 238; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__EANNOTATIONS = STATE__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__OWNED_ELEMENT = STATE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__OWNER = STATE__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__OWNED_COMMENT = STATE__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__NAME = STATE__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__VISIBILITY = STATE__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__QUALIFIED_NAME = STATE__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__CLIENT_DEPENDENCY = STATE__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__NAMESPACE = STATE__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__NAME_EXPRESSION = STATE__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__ELEMENT_IMPORT = STATE__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__PACKAGE_IMPORT = STATE__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__OWNED_RULE = STATE__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__MEMBER = STATE__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__IMPORTED_MEMBER = STATE__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__OWNED_MEMBER = STATE__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__IS_LEAF = STATE__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__REDEFINED_ELEMENT = STATE__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__REDEFINITION_CONTEXT = STATE__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Outgoing' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__OUTGOING = STATE__OUTGOING; + + /** + * The feature id for the 'Incoming' reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__INCOMING = STATE__INCOMING; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__CONTAINER = STATE__CONTAINER; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__IS_COMPOSITE = STATE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Orthogonal' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__IS_ORTHOGONAL = STATE__IS_ORTHOGONAL; + + /** + * The feature id for the 'Is Simple' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__IS_SIMPLE = STATE__IS_SIMPLE; + + /** + * The feature id for the 'Is Submachine State' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__IS_SUBMACHINE_STATE = STATE__IS_SUBMACHINE_STATE; + + /** + * The feature id for the 'Submachine' reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__SUBMACHINE = STATE__SUBMACHINE; + + /** + * The feature id for the 'Connection' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__CONNECTION = STATE__CONNECTION; + + /** + * The feature id for the 'Connection Point' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__CONNECTION_POINT = STATE__CONNECTION_POINT; + + /** + * The feature id for the 'Redefined State' reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__REDEFINED_STATE = STATE__REDEFINED_STATE; + + /** + * The feature id for the 'State Invariant' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__STATE_INVARIANT = STATE__STATE_INVARIANT; + + /** + * The feature id for the 'Entry' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__ENTRY = STATE__ENTRY; + + /** + * The feature id for the 'Exit' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__EXIT = STATE__EXIT; + + /** + * The feature id for the 'Do Activity' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__DO_ACTIVITY = STATE__DO_ACTIVITY; + + /** + * The feature id for the 'Deferrable Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__DEFERRABLE_TRIGGER = STATE__DEFERRABLE_TRIGGER; + + /** + * The feature id for the 'Region' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__REGION = STATE__REGION; + + /** + * The number of structural features of the 'Final State' class. + * + * + * @generated + * @ordered + */ + int FINAL_STATE_FEATURE_COUNT = STATE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl Time Event}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.TimeEventImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTimeEvent() + * @generated + */ + int TIME_EVENT = 239; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__EANNOTATIONS = EVENT__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__OWNED_ELEMENT = EVENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__OWNER = EVENT__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__OWNED_COMMENT = EVENT__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__NAME = EVENT__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__VISIBILITY = EVENT__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__CLIENT_DEPENDENCY = EVENT__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__NAMESPACE = EVENT__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__NAME_EXPRESSION = EVENT__NAME_EXPRESSION; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__TEMPLATE_PARAMETER = EVENT__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__OWNING_TEMPLATE_PARAMETER = EVENT__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Is Relative' attribute. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__IS_RELATIVE = EVENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'When' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_EVENT__WHEN = EVENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Time Event' class. + * + * + * @generated + * @ordered + */ + int TIME_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl Protocol Transition}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getProtocolTransition() + * @generated + */ + int PROTOCOL_TRANSITION = 240; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__EANNOTATIONS = TRANSITION__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__OWNED_ELEMENT = TRANSITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__OWNER = TRANSITION__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__OWNED_COMMENT = TRANSITION__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__NAME = TRANSITION__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__VISIBILITY = TRANSITION__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__QUALIFIED_NAME = TRANSITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__CLIENT_DEPENDENCY = TRANSITION__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__NAMESPACE = TRANSITION__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__NAME_EXPRESSION = TRANSITION__NAME_EXPRESSION; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__IS_LEAF = TRANSITION__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__REDEFINED_ELEMENT = TRANSITION__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__REDEFINITION_CONTEXT = TRANSITION__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__KIND = TRANSITION__KIND; + + /** + * The feature id for the 'Container' container reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__CONTAINER = TRANSITION__CONTAINER; + + /** + * The feature id for the 'Target' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__TARGET = TRANSITION__TARGET; + + /** + * The feature id for the 'Redefined Transition' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__REDEFINED_TRANSITION = TRANSITION__REDEFINED_TRANSITION; + + /** + * The feature id for the 'Guard' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__GUARD = TRANSITION__GUARD; + + /** + * The feature id for the 'Effect' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__EFFECT = TRANSITION__EFFECT; + + /** + * The feature id for the 'Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__TRIGGER = TRANSITION__TRIGGER; + + /** + * The feature id for the 'Source' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__SOURCE = TRANSITION__SOURCE; + + /** + * The feature id for the 'Post Condition' containment reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__POST_CONDITION = TRANSITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Referred' reference list. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__REFERRED = TRANSITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Pre Condition' reference. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION__PRE_CONDITION = TRANSITION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Protocol Transition' class. + * + * + * @generated + * @ordered + */ + int PROTOCOL_TRANSITION_FEATURE_COUNT = TRANSITION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl Association Class}' class. + * + * + * @see org.eclipse.uml2.uml.internal.impl.AssociationClassImpl + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAssociationClass() + * @generated + */ + int ASSOCIATION_CLASS = 241; + + /** + * The feature id for the 'EAnnotations' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__EANNOTATIONS = CLASS__EANNOTATIONS; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owned Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_COMMENT = CLASS__OWNED_COMMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__NAME = CLASS__NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__VISIBILITY = CLASS__VISIBILITY; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Client Dependency' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__CLIENT_DEPENDENCY = CLASS__CLIENT_DEPENDENCY; + + /** + * The feature id for the 'Namespace' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__NAMESPACE = CLASS__NAMESPACE; + + /** + * The feature id for the 'Name Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__NAME_EXPRESSION = CLASS__NAME_EXPRESSION; + + /** + * The feature id for the 'Element Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__ELEMENT_IMPORT = CLASS__ELEMENT_IMPORT; + + /** + * The feature id for the 'Package Import' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__PACKAGE_IMPORT = CLASS__PACKAGE_IMPORT; + + /** + * The feature id for the 'Owned Rule' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_RULE = CLASS__OWNED_RULE; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Imported Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__IMPORTED_MEMBER = CLASS__IMPORTED_MEMBER; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Is Leaf' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__IS_LEAF = CLASS__IS_LEAF; + + /** + * The feature id for the 'Redefined Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__REDEFINED_ELEMENT = CLASS__REDEFINED_ELEMENT; + + /** + * The feature id for the 'Redefinition Context' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__REDEFINITION_CONTEXT = CLASS__REDEFINITION_CONTEXT; + + /** + * The feature id for the 'Template Parameter' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__TEMPLATE_PARAMETER = CLASS__TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Owning Template Parameter' container reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER = CLASS__OWNING_TEMPLATE_PARAMETER; + + /** + * The feature id for the 'Package' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__PACKAGE = CLASS__PACKAGE; + + /** + * The feature id for the 'Template Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__TEMPLATE_BINDING = CLASS__TEMPLATE_BINDING; + + /** + * The feature id for the 'Owned Template Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE = CLASS__OWNED_TEMPLATE_SIGNATURE; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Generalization' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__GENERALIZATION = CLASS__GENERALIZATION; + + /** + * The feature id for the 'Powertype Extent' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__POWERTYPE_EXTENT = CLASS__POWERTYPE_EXTENT; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Inherited Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__INHERITED_MEMBER = CLASS__INHERITED_MEMBER; + + /** + * The feature id for the 'Redefined Classifier' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__REDEFINED_CLASSIFIER = CLASS__REDEFINED_CLASSIFIER; + + /** + * The feature id for the 'General' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__GENERAL = CLASS__GENERAL; + + /** + * The feature id for the 'Owned Use Case' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_USE_CASE = CLASS__OWNED_USE_CASE; + + /** + * The feature id for the 'Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__USE_CASE = CLASS__USE_CASE; + + /** + * The feature id for the 'Substitution' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__SUBSTITUTION = CLASS__SUBSTITUTION; + + /** + * The feature id for the 'Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__ATTRIBUTE = CLASS__ATTRIBUTE; + + /** + * The feature id for the 'Representation' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__REPRESENTATION = CLASS__REPRESENTATION; + + /** + * The feature id for the 'Collaboration Use' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__COLLABORATION_USE = CLASS__COLLABORATION_USE; + + /** + * The feature id for the 'Owned Signature' containment reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_SIGNATURE = CLASS__OWNED_SIGNATURE; + + /** + * The feature id for the 'Owned Attribute' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_ATTRIBUTE = CLASS__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Part' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__PART = CLASS__PART; + + /** + * The feature id for the 'Role' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__ROLE = CLASS__ROLE; + + /** + * The feature id for the 'Owned Connector' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_CONNECTOR = CLASS__OWNED_CONNECTOR; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_PORT = CLASS__OWNED_PORT; + + /** + * The feature id for the 'Owned Behavior' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_BEHAVIOR = CLASS__OWNED_BEHAVIOR; + + /** + * The feature id for the 'Classifier Behavior' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__CLASSIFIER_BEHAVIOR = CLASS__CLASSIFIER_BEHAVIOR; + + /** + * The feature id for the 'Interface Realization' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__INTERFACE_REALIZATION = CLASS__INTERFACE_REALIZATION; + + /** + * The feature id for the 'Owned Trigger' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_TRIGGER = CLASS__OWNED_TRIGGER; + + /** + * The feature id for the 'Owned Operation' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_OPERATION = CLASS__OWNED_OPERATION; + + /** + * The feature id for the 'Nested Classifier' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__NESTED_CLASSIFIER = CLASS__NESTED_CLASSIFIER; + + /** + * The feature id for the 'Super Class' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__SUPER_CLASS = CLASS__SUPER_CLASS; + + /** + * The feature id for the 'Is Active' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__IS_ACTIVE = CLASS__IS_ACTIVE; + + /** + * The feature id for the 'Owned Reception' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_RECEPTION = CLASS__OWNED_RECEPTION; + + /** + * The feature id for the 'Extension' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__EXTENSION = CLASS__EXTENSION; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__RELATED_ELEMENT = CLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__IS_DERIVED = CLASS_FEATURE_COUNT + 1; + + /** + * The feature id for the 'End Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__END_TYPE = CLASS_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Member End' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__MEMBER_END = CLASS_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Navigable Owned End' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__NAVIGABLE_OWNED_END = CLASS_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned End' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS__OWNED_END = CLASS_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Association Class' class. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_CLASS_FEATURE_COUNT = CLASS_FEATURE_COUNT + 6; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.VisibilityKind Visibility Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.VisibilityKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getVisibilityKind() + * @generated + */ + int VISIBILITY_KIND = 242; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.CallConcurrencyKind Call Concurrency Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.CallConcurrencyKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getCallConcurrencyKind() + * @generated + */ + int CALL_CONCURRENCY_KIND = 243; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.TransitionKind Transition Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.TransitionKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getTransitionKind() + * @generated + */ + int TRANSITION_KIND = 244; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.PseudostateKind Pseudostate Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.PseudostateKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getPseudostateKind() + * @generated + */ + int PSEUDOSTATE_KIND = 245; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.AggregationKind Aggregation Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.AggregationKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getAggregationKind() + * @generated + */ + int AGGREGATION_KIND = 246; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.ParameterDirectionKind Parameter Direction Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.ParameterDirectionKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterDirectionKind() + * @generated + */ + int PARAMETER_DIRECTION_KIND = 247; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.ParameterEffectKind Parameter Effect Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.ParameterEffectKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getParameterEffectKind() + * @generated + */ + int PARAMETER_EFFECT_KIND = 248; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.ConnectorKind Connector Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.ConnectorKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getConnectorKind() + * @generated + */ + int CONNECTOR_KIND = 249; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.MessageKind Message Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.MessageKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageKind() + * @generated + */ + int MESSAGE_KIND = 250; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.MessageSort Message Sort}' enum. + * + * + * @see org.eclipse.uml2.uml.MessageSort + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getMessageSort() + * @generated + */ + int MESSAGE_SORT = 251; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.ObjectNodeOrderingKind Object Node Ordering Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.ObjectNodeOrderingKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getObjectNodeOrderingKind() + * @generated + */ + int OBJECT_NODE_ORDERING_KIND = 252; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.InteractionOperatorKind Interaction Operator Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.InteractionOperatorKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getInteractionOperatorKind() + * @generated + */ + int INTERACTION_OPERATOR_KIND = 253; + + /** + * The meta object id for the '{@link org.eclipse.uml2.uml.ExpansionKind Expansion Kind}' enum. + * + * + * @see org.eclipse.uml2.uml.ExpansionKind + * @see org.eclipse.uml2.uml.internal.impl.UMLPackageImpl#getExpansionKind() + * @generated + */ + int EXPANSION_KIND = 254; + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Comment Comment}'. + * + * + * @return the meta object for class 'Comment'. + * @see org.eclipse.uml2.uml.Comment + * @generated + */ + EClass getComment(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Comment#getBody Body}'. + * + * + * @return the meta object for the attribute 'Body'. + * @see org.eclipse.uml2.uml.Comment#getBody() + * @see #getComment() + * @generated + */ + EAttribute getComment_Body(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Comment#getAnnotatedElements Annotated Element}'. + * + * + * @return the meta object for the reference list 'Annotated Element'. + * @see org.eclipse.uml2.uml.Comment#getAnnotatedElements() + * @see #getComment() + * @generated + */ + EReference getComment_AnnotatedElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Element Element}'. + * + * + * @return the meta object for class 'Element'. + * @see org.eclipse.uml2.uml.Element + * @generated + */ + EClass getElement(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Element#getOwnedElements Owned Element}'. + * + * + * @return the meta object for the reference list 'Owned Element'. + * @see org.eclipse.uml2.uml.Element#getOwnedElements() + * @see #getElement() + * @generated + */ + EReference getElement_OwnedElement(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Element#getOwner Owner}'. + * + * + * @return the meta object for the reference 'Owner'. + * @see org.eclipse.uml2.uml.Element#getOwner() + * @see #getElement() + * @generated + */ + EReference getElement_Owner(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Element#getOwnedComments Owned Comment}'. + * + * + * @return the meta object for the containment reference list 'Owned Comment'. + * @see org.eclipse.uml2.uml.Element#getOwnedComments() + * @see #getElement() + * @generated + */ + EReference getElement_OwnedComment(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DirectedRelationship Directed Relationship}'. + * + * + * @return the meta object for class 'Directed Relationship'. + * @see org.eclipse.uml2.uml.DirectedRelationship + * @generated + */ + EClass getDirectedRelationship(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.DirectedRelationship#getSources Source}'. + * + * + * @return the meta object for the reference list 'Source'. + * @see org.eclipse.uml2.uml.DirectedRelationship#getSources() + * @see #getDirectedRelationship() + * @generated + */ + EReference getDirectedRelationship_Source(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.DirectedRelationship#getTargets Target}'. + * + * + * @return the meta object for the reference list 'Target'. + * @see org.eclipse.uml2.uml.DirectedRelationship#getTargets() + * @see #getDirectedRelationship() + * @generated + */ + EReference getDirectedRelationship_Target(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Relationship Relationship}'. + * + * + * @return the meta object for class 'Relationship'. + * @see org.eclipse.uml2.uml.Relationship + * @generated + */ + EClass getRelationship(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Relationship#getRelatedElements Related Element}'. + * + * + * @return the meta object for the reference list 'Related Element'. + * @see org.eclipse.uml2.uml.Relationship#getRelatedElements() + * @see #getRelationship() + * @generated + */ + EReference getRelationship_RelatedElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LiteralSpecification Literal Specification}'. + * + * + * @return the meta object for class 'Literal Specification'. + * @see org.eclipse.uml2.uml.LiteralSpecification + * @generated + */ + EClass getLiteralSpecification(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ValueSpecification Value Specification}'. + * + * + * @return the meta object for class 'Value Specification'. + * @see org.eclipse.uml2.uml.ValueSpecification + * @generated + */ + EClass getValueSpecification(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TypedElement Typed Element}'. + * + * + * @return the meta object for class 'Typed Element'. + * @see org.eclipse.uml2.uml.TypedElement + * @generated + */ + EClass getTypedElement(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TypedElement#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.uml2.uml.TypedElement#getType() + * @see #getTypedElement() + * @generated + */ + EReference getTypedElement_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.NamedElement Named Element}'. + * + * + * @return the meta object for class 'Named Element'. + * @see org.eclipse.uml2.uml.NamedElement + * @generated + */ + EClass getNamedElement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.NamedElement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.eclipse.uml2.uml.NamedElement#getName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.NamedElement#getVisibility Visibility}'. + * + * + * @return the meta object for the attribute 'Visibility'. + * @see org.eclipse.uml2.uml.NamedElement#getVisibility() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_Visibility(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.NamedElement#getQualifiedName Qualified Name}'. + * + * + * @return the meta object for the attribute 'Qualified Name'. + * @see org.eclipse.uml2.uml.NamedElement#getQualifiedName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_QualifiedName(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.NamedElement#getClientDependencies Client Dependency}'. + * + * + * @return the meta object for the reference list 'Client Dependency'. + * @see org.eclipse.uml2.uml.NamedElement#getClientDependencies() + * @see #getNamedElement() + * @generated + */ + EReference getNamedElement_ClientDependency(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.NamedElement#getNamespace Namespace}'. + * + * + * @return the meta object for the reference 'Namespace'. + * @see org.eclipse.uml2.uml.NamedElement#getNamespace() + * @see #getNamedElement() + * @generated + */ + EReference getNamedElement_Namespace(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.NamedElement#getNameExpression Name Expression}'. + * + * + * @return the meta object for the containment reference 'Name Expression'. + * @see org.eclipse.uml2.uml.NamedElement#getNameExpression() + * @see #getNamedElement() + * @generated + */ + EReference getNamedElement_NameExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Dependency Dependency}'. + * + * + * @return the meta object for class 'Dependency'. + * @see org.eclipse.uml2.uml.Dependency + * @generated + */ + EClass getDependency(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Dependency#getSuppliers Supplier}'. + * + * + * @return the meta object for the reference list 'Supplier'. + * @see org.eclipse.uml2.uml.Dependency#getSuppliers() + * @see #getDependency() + * @generated + */ + EReference getDependency_Supplier(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Dependency#getClients Client}'. + * + * + * @return the meta object for the reference list 'Client'. + * @see org.eclipse.uml2.uml.Dependency#getClients() + * @see #getDependency() + * @generated + */ + EReference getDependency_Client(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.PackageableElement Packageable Element}'. + * + * + * @return the meta object for class 'Packageable Element'. + * @see org.eclipse.uml2.uml.PackageableElement + * @generated + */ + EClass getPackageableElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ParameterableElement Parameterable Element}'. + * + * + * @return the meta object for class 'Parameterable Element'. + * @see org.eclipse.uml2.uml.ParameterableElement + * @generated + */ + EClass getParameterableElement(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter Template Parameter}'. + * + * + * @return the meta object for the reference 'Template Parameter'. + * @see org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter() + * @see #getParameterableElement() + * @generated + */ + EReference getParameterableElement_TemplateParameter(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter Owning Template Parameter}'. + * + * + * @return the meta object for the container reference 'Owning Template Parameter'. + * @see org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter() + * @see #getParameterableElement() + * @generated + */ + EReference getParameterableElement_OwningTemplateParameter(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TemplateParameter Template Parameter}'. + * + * + * @return the meta object for class 'Template Parameter'. + * @see org.eclipse.uml2.uml.TemplateParameter + * @generated + */ + EClass getTemplateParameter(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.TemplateParameter#getSignature Signature}'. + * + * + * @return the meta object for the container reference 'Signature'. + * @see org.eclipse.uml2.uml.TemplateParameter#getSignature() + * @see #getTemplateParameter() + * @generated + */ + EReference getTemplateParameter_Signature(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement Owned Parametered Element}'. + * + * + * @return the meta object for the containment reference 'Owned Parametered Element'. + * @see org.eclipse.uml2.uml.TemplateParameter#getOwnedParameteredElement() + * @see #getTemplateParameter() + * @generated + */ + EReference getTemplateParameter_OwnedParameteredElement(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TemplateParameter#getDefault Default}'. + * + * + * @return the meta object for the reference 'Default'. + * @see org.eclipse.uml2.uml.TemplateParameter#getDefault() + * @see #getTemplateParameter() + * @generated + */ + EReference getTemplateParameter_Default(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TemplateParameter#getOwnedDefault Owned Default}'. + * + * + * @return the meta object for the containment reference 'Owned Default'. + * @see org.eclipse.uml2.uml.TemplateParameter#getOwnedDefault() + * @see #getTemplateParameter() + * @generated + */ + EReference getTemplateParameter_OwnedDefault(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TemplateParameter#getParameteredElement Parametered Element}'. + * + * + * @return the meta object for the reference 'Parametered Element'. + * @see org.eclipse.uml2.uml.TemplateParameter#getParameteredElement() + * @see #getTemplateParameter() + * @generated + */ + EReference getTemplateParameter_ParameteredElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TemplateSignature Template Signature}'. + * + * + * @return the meta object for class 'Template Signature'. + * @see org.eclipse.uml2.uml.TemplateSignature + * @generated + */ + EClass getTemplateSignature(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.TemplateSignature#getParameters Parameter}'. + * + * + * @return the meta object for the reference list 'Parameter'. + * @see org.eclipse.uml2.uml.TemplateSignature#getParameters() + * @see #getTemplateSignature() + * @generated + */ + EReference getTemplateSignature_Parameter(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.TemplateSignature#getTemplate Template}'. + * + * + * @return the meta object for the container reference 'Template'. + * @see org.eclipse.uml2.uml.TemplateSignature#getTemplate() + * @see #getTemplateSignature() + * @generated + */ + EReference getTemplateSignature_Template(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.TemplateSignature#getOwnedParameters Owned Parameter}'. + * + * + * @return the meta object for the containment reference list 'Owned Parameter'. + * @see org.eclipse.uml2.uml.TemplateSignature#getOwnedParameters() + * @see #getTemplateSignature() + * @generated + */ + EReference getTemplateSignature_OwnedParameter(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TemplateableElement Templateable Element}'. + * + * + * @return the meta object for class 'Templateable Element'. + * @see org.eclipse.uml2.uml.TemplateableElement + * @generated + */ + EClass getTemplateableElement(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.TemplateableElement#getTemplateBindings Template Binding}'. + * + * + * @return the meta object for the containment reference list 'Template Binding'. + * @see org.eclipse.uml2.uml.TemplateableElement#getTemplateBindings() + * @see #getTemplateableElement() + * @generated + */ + EReference getTemplateableElement_TemplateBinding(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature Owned Template Signature}'. + * + * + * @return the meta object for the containment reference 'Owned Template Signature'. + * @see org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature() + * @see #getTemplateableElement() + * @generated + */ + EReference getTemplateableElement_OwnedTemplateSignature(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TemplateBinding Template Binding}'. + * + * + * @return the meta object for class 'Template Binding'. + * @see org.eclipse.uml2.uml.TemplateBinding + * @generated + */ + EClass getTemplateBinding(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TemplateBinding#getSignature Signature}'. + * + * + * @return the meta object for the reference 'Signature'. + * @see org.eclipse.uml2.uml.TemplateBinding#getSignature() + * @see #getTemplateBinding() + * @generated + */ + EReference getTemplateBinding_Signature(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.TemplateBinding#getParameterSubstitutions Parameter Substitution}'. + * + * + * @return the meta object for the containment reference list 'Parameter Substitution'. + * @see org.eclipse.uml2.uml.TemplateBinding#getParameterSubstitutions() + * @see #getTemplateBinding() + * @generated + */ + EReference getTemplateBinding_ParameterSubstitution(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.TemplateBinding#getBoundElement Bound Element}'. + * + * + * @return the meta object for the container reference 'Bound Element'. + * @see org.eclipse.uml2.uml.TemplateBinding#getBoundElement() + * @see #getTemplateBinding() + * @generated + */ + EReference getTemplateBinding_BoundElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution Template Parameter Substitution}'. + * + * + * @return the meta object for class 'Template Parameter Substitution'. + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution + * @generated + */ + EClass getTemplateParameterSubstitution(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getFormal Formal}'. + * + * + * @return the meta object for the reference 'Formal'. + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution#getFormal() + * @see #getTemplateParameterSubstitution() + * @generated + */ + EReference getTemplateParameterSubstitution_Formal(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getActuals Actual}'. + * + * + * @return the meta object for the reference list 'Actual'. + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution#getActuals() + * @see #getTemplateParameterSubstitution() + * @generated + */ + EReference getTemplateParameterSubstitution_Actual(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getOwnedActuals Owned Actual}'. + * + * + * @return the meta object for the containment reference list 'Owned Actual'. + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution#getOwnedActuals() + * @see #getTemplateParameterSubstitution() + * @generated + */ + EReference getTemplateParameterSubstitution_OwnedActual(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution#getTemplateBinding Template Binding}'. + * + * + * @return the meta object for the container reference 'Template Binding'. + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution#getTemplateBinding() + * @see #getTemplateParameterSubstitution() + * @generated + */ + EReference getTemplateParameterSubstitution_TemplateBinding(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Namespace Namespace}'. + * + * + * @return the meta object for class 'Namespace'. + * @see org.eclipse.uml2.uml.Namespace + * @generated + */ + EClass getNamespace(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Namespace#getElementImports Element Import}'. + * + * + * @return the meta object for the containment reference list 'Element Import'. + * @see org.eclipse.uml2.uml.Namespace#getElementImports() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_ElementImport(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Namespace#getPackageImports Package Import}'. + * + * + * @return the meta object for the containment reference list 'Package Import'. + * @see org.eclipse.uml2.uml.Namespace#getPackageImports() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_PackageImport(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Namespace#getOwnedRules Owned Rule}'. + * + * + * @return the meta object for the containment reference list 'Owned Rule'. + * @see org.eclipse.uml2.uml.Namespace#getOwnedRules() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_OwnedRule(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Namespace#getMembers Member}'. + * + * + * @return the meta object for the reference list 'Member'. + * @see org.eclipse.uml2.uml.Namespace#getMembers() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_Member(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Namespace#getImportedMembers Imported Member}'. + * + * + * @return the meta object for the reference list 'Imported Member'. + * @see org.eclipse.uml2.uml.Namespace#getImportedMembers() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_ImportedMember(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers Owned Member}'. + * + * + * @return the meta object for the reference list 'Owned Member'. + * @see org.eclipse.uml2.uml.Namespace#getOwnedMembers() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_OwnedMember(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ElementImport Element Import}'. + * + * + * @return the meta object for class 'Element Import'. + * @see org.eclipse.uml2.uml.ElementImport + * @generated + */ + EClass getElementImport(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ElementImport#getVisibility Visibility}'. + * + * + * @return the meta object for the attribute 'Visibility'. + * @see org.eclipse.uml2.uml.ElementImport#getVisibility() + * @see #getElementImport() + * @generated + */ + EAttribute getElementImport_Visibility(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ElementImport#getAlias Alias}'. + * + * + * @return the meta object for the attribute 'Alias'. + * @see org.eclipse.uml2.uml.ElementImport#getAlias() + * @see #getElementImport() + * @generated + */ + EAttribute getElementImport_Alias(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ElementImport#getImportedElement Imported Element}'. + * + * + * @return the meta object for the reference 'Imported Element'. + * @see org.eclipse.uml2.uml.ElementImport#getImportedElement() + * @see #getElementImport() + * @generated + */ + EReference getElementImport_ImportedElement(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ElementImport#getImportingNamespace Importing Namespace}'. + * + * + * @return the meta object for the container reference 'Importing Namespace'. + * @see org.eclipse.uml2.uml.ElementImport#getImportingNamespace() + * @see #getElementImport() + * @generated + */ + EReference getElementImport_ImportingNamespace(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.PackageImport Package Import}'. + * + * + * @return the meta object for class 'Package Import'. + * @see org.eclipse.uml2.uml.PackageImport + * @generated + */ + EClass getPackageImport(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.PackageImport#getVisibility Visibility}'. + * + * + * @return the meta object for the attribute 'Visibility'. + * @see org.eclipse.uml2.uml.PackageImport#getVisibility() + * @see #getPackageImport() + * @generated + */ + EAttribute getPackageImport_Visibility(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.PackageImport#getImportedPackage Imported Package}'. + * + * + * @return the meta object for the reference 'Imported Package'. + * @see org.eclipse.uml2.uml.PackageImport#getImportedPackage() + * @see #getPackageImport() + * @generated + */ + EReference getPackageImport_ImportedPackage(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.PackageImport#getImportingNamespace Importing Namespace}'. + * + * + * @return the meta object for the container reference 'Importing Namespace'. + * @see org.eclipse.uml2.uml.PackageImport#getImportingNamespace() + * @see #getPackageImport() + * @generated + */ + EReference getPackageImport_ImportingNamespace(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Package Package}'. + * + * + * @return the meta object for class 'Package'. + * @see org.eclipse.uml2.uml.Package + * @generated + */ + EClass getPackage(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Package#getPackageMerges Package Merge}'. + * + * + * @return the meta object for the containment reference list 'Package Merge'. + * @see org.eclipse.uml2.uml.Package#getPackageMerges() + * @see #getPackage() + * @generated + */ + EReference getPackage_PackageMerge(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Package#getPackagedElements Packaged Element}'. + * + * + * @return the meta object for the containment reference list 'Packaged Element'. + * @see org.eclipse.uml2.uml.Package#getPackagedElements() + * @see #getPackage() + * @generated + */ + EReference getPackage_PackagedElement(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Package#getOwnedTypes Owned Type}'. + * + * + * @return the meta object for the reference list 'Owned Type'. + * @see org.eclipse.uml2.uml.Package#getOwnedTypes() + * @see #getPackage() + * @generated + */ + EReference getPackage_OwnedType(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Package#getNestedPackages Nested Package}'. + * + * + * @return the meta object for the reference list 'Nested Package'. + * @see org.eclipse.uml2.uml.Package#getNestedPackages() + * @see #getPackage() + * @generated + */ + EReference getPackage_NestedPackage(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Package#getNestingPackage Nesting Package}'. + * + * + * @return the meta object for the reference 'Nesting Package'. + * @see org.eclipse.uml2.uml.Package#getNestingPackage() + * @see #getPackage() + * @generated + */ + EReference getPackage_NestingPackage(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Package#getAppliedProfiles Applied Profile}'. + * + * + * @return the meta object for the reference list 'Applied Profile'. + * @see org.eclipse.uml2.uml.Package#getAppliedProfiles() + * @see #getPackage() + * @generated + */ + EReference getPackage_AppliedProfile(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.PackageMerge Package Merge}'. + * + * + * @return the meta object for class 'Package Merge'. + * @see org.eclipse.uml2.uml.PackageMerge + * @generated + */ + EClass getPackageMerge(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.PackageMerge#getMergedPackage Merged Package}'. + * + * + * @return the meta object for the reference 'Merged Package'. + * @see org.eclipse.uml2.uml.PackageMerge#getMergedPackage() + * @see #getPackageMerge() + * @generated + */ + EReference getPackageMerge_MergedPackage(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.PackageMerge#getReceivingPackage Receiving Package}'. + * + * + * @return the meta object for the container reference 'Receiving Package'. + * @see org.eclipse.uml2.uml.PackageMerge#getReceivingPackage() + * @see #getPackageMerge() + * @generated + */ + EReference getPackageMerge_ReceivingPackage(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Type Type}'. + * + * + * @return the meta object for class 'Type'. + * @see org.eclipse.uml2.uml.Type + * @generated + */ + EClass getType(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Type#getPackage Package}'. + * + * + * @return the meta object for the reference 'Package'. + * @see org.eclipse.uml2.uml.Type#getPackage() + * @see #getType() + * @generated + */ + EReference getType_Package(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ProfileApplication Profile Application}'. + * + * + * @return the meta object for class 'Profile Application'. + * @see org.eclipse.uml2.uml.ProfileApplication + * @generated + */ + EClass getProfileApplication(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ProfileApplication#getImportedProfile Imported Profile}'. + * + * + * @return the meta object for the reference 'Imported Profile'. + * @see org.eclipse.uml2.uml.ProfileApplication#getImportedProfile() + * @see #getProfileApplication() + * @generated + */ + EReference getProfileApplication_ImportedProfile(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ProfileApplication#isStrict Is Strict}'. + * + * + * @return the meta object for the attribute 'Is Strict'. + * @see org.eclipse.uml2.uml.ProfileApplication#isStrict() + * @see #getProfileApplication() + * @generated + */ + EAttribute getProfileApplication_IsStrict(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Profile Profile}'. + * + * + * @return the meta object for class 'Profile'. + * @see org.eclipse.uml2.uml.Profile + * @generated + */ + EClass getProfile(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Profile#getOwnedStereotypes Owned Stereotype}'. + * + * + * @return the meta object for the reference list 'Owned Stereotype'. + * @see org.eclipse.uml2.uml.Profile#getOwnedStereotypes() + * @see #getProfile() + * @generated + */ + EReference getProfile_OwnedStereotype(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Profile#getMetaclassReferences Metaclass Reference}'. + * + * + * @return the meta object for the reference list 'Metaclass Reference'. + * @see org.eclipse.uml2.uml.Profile#getMetaclassReferences() + * @see #getProfile() + * @generated + */ + EReference getProfile_MetaclassReference(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Profile#getMetamodelReferences Metamodel Reference}'. + * + * + * @return the meta object for the reference list 'Metamodel Reference'. + * @see org.eclipse.uml2.uml.Profile#getMetamodelReferences() + * @see #getProfile() + * @generated + */ + EReference getProfile_MetamodelReference(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Stereotype Stereotype}'. + * + * + * @return the meta object for class 'Stereotype'. + * @see org.eclipse.uml2.uml.Stereotype + * @generated + */ + EClass getStereotype(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Stereotype#getIcons Icon}'. + * + * + * @return the meta object for the reference list 'Icon'. + * @see org.eclipse.uml2.uml.Stereotype#getIcons() + * @see #getStereotype() + * @generated + */ + EReference getStereotype_Icon(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Class Class}'. + * + * + * @return the meta object for class 'Class'. + * @see org.eclipse.uml2.uml.Class + * @generated + */ + EClass getClass_(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Class#getOwnedOperations Owned Operation}'. + * + * + * @return the meta object for the containment reference list 'Owned Operation'. + * @see org.eclipse.uml2.uml.Class#getOwnedOperations() + * @see #getClass_() + * @generated + */ + EReference getClass_OwnedOperation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Class#getNestedClassifiers Nested Classifier}'. + * + * + * @return the meta object for the containment reference list 'Nested Classifier'. + * @see org.eclipse.uml2.uml.Class#getNestedClassifiers() + * @see #getClass_() + * @generated + */ + EReference getClass_NestedClassifier(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Class#getSuperClasses Super Class}'. + * + * + * @return the meta object for the reference list 'Super Class'. + * @see org.eclipse.uml2.uml.Class#getSuperClasses() + * @see #getClass_() + * @generated + */ + EReference getClass_SuperClass(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Class#isActive Is Active}'. + * + * + * @return the meta object for the attribute 'Is Active'. + * @see org.eclipse.uml2.uml.Class#isActive() + * @see #getClass_() + * @generated + */ + EAttribute getClass_IsActive(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Class#getOwnedReceptions Owned Reception}'. + * + * + * @return the meta object for the containment reference list 'Owned Reception'. + * @see org.eclipse.uml2.uml.Class#getOwnedReceptions() + * @see #getClass_() + * @generated + */ + EReference getClass_OwnedReception(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Class#getExtensions Extension}'. + * + * + * @return the meta object for the reference list 'Extension'. + * @see org.eclipse.uml2.uml.Class#getExtensions() + * @see #getClass_() + * @generated + */ + EReference getClass_Extension(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.BehavioredClassifier Behaviored Classifier}'. + * + * + * @return the meta object for class 'Behaviored Classifier'. + * @see org.eclipse.uml2.uml.BehavioredClassifier + * @generated + */ + EClass getBehavioredClassifier(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.BehavioredClassifier#getOwnedBehaviors Owned Behavior}'. + * + * + * @return the meta object for the containment reference list 'Owned Behavior'. + * @see org.eclipse.uml2.uml.BehavioredClassifier#getOwnedBehaviors() + * @see #getBehavioredClassifier() + * @generated + */ + EReference getBehavioredClassifier_OwnedBehavior(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.BehavioredClassifier#getClassifierBehavior Classifier Behavior}'. + * + * + * @return the meta object for the reference 'Classifier Behavior'. + * @see org.eclipse.uml2.uml.BehavioredClassifier#getClassifierBehavior() + * @see #getBehavioredClassifier() + * @generated + */ + EReference getBehavioredClassifier_ClassifierBehavior(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.BehavioredClassifier#getInterfaceRealizations Interface Realization}'. + * + * + * @return the meta object for the containment reference list 'Interface Realization'. + * @see org.eclipse.uml2.uml.BehavioredClassifier#getInterfaceRealizations() + * @see #getBehavioredClassifier() + * @generated + */ + EReference getBehavioredClassifier_InterfaceRealization(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.BehavioredClassifier#getOwnedTriggers Owned Trigger}'. + * + * + * @return the meta object for the containment reference list 'Owned Trigger'. + * @see org.eclipse.uml2.uml.BehavioredClassifier#getOwnedTriggers() + * @see #getBehavioredClassifier() + * @generated + */ + EReference getBehavioredClassifier_OwnedTrigger(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Classifier Classifier}'. + * + * + * @return the meta object for class 'Classifier'. + * @see org.eclipse.uml2.uml.Classifier + * @generated + */ + EClass getClassifier(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Classifier#isAbstract Is Abstract}'. + * + * + * @return the meta object for the attribute 'Is Abstract'. + * @see org.eclipse.uml2.uml.Classifier#isAbstract() + * @see #getClassifier() + * @generated + */ + EAttribute getClassifier_IsAbstract(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Classifier#getGeneralizations Generalization}'. + * + * + * @return the meta object for the containment reference list 'Generalization'. + * @see org.eclipse.uml2.uml.Classifier#getGeneralizations() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_Generalization(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getPowertypeExtents Powertype Extent}'. + * + * + * @return the meta object for the reference list 'Powertype Extent'. + * @see org.eclipse.uml2.uml.Classifier#getPowertypeExtents() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_PowertypeExtent(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getFeatures Feature}'. + * + * + * @return the meta object for the reference list 'Feature'. + * @see org.eclipse.uml2.uml.Classifier#getFeatures() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_Feature(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getInheritedMembers Inherited Member}'. + * + * + * @return the meta object for the reference list 'Inherited Member'. + * @see org.eclipse.uml2.uml.Classifier#getInheritedMembers() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_InheritedMember(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getRedefinedClassifiers Redefined Classifier}'. + * + * + * @return the meta object for the reference list 'Redefined Classifier'. + * @see org.eclipse.uml2.uml.Classifier#getRedefinedClassifiers() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_RedefinedClassifier(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getGenerals General}'. + * + * + * @return the meta object for the reference list 'General'. + * @see org.eclipse.uml2.uml.Classifier#getGenerals() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_General(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Classifier#getOwnedUseCases Owned Use Case}'. + * + * + * @return the meta object for the containment reference list 'Owned Use Case'. + * @see org.eclipse.uml2.uml.Classifier#getOwnedUseCases() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_OwnedUseCase(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getUseCases Use Case}'. + * + * + * @return the meta object for the reference list 'Use Case'. + * @see org.eclipse.uml2.uml.Classifier#getUseCases() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_UseCase(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Classifier#getSubstitutions Substitution}'. + * + * + * @return the meta object for the containment reference list 'Substitution'. + * @see org.eclipse.uml2.uml.Classifier#getSubstitutions() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_Substitution(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Classifier#getAttributes Attribute}'. + * + * + * @return the meta object for the reference list 'Attribute'. + * @see org.eclipse.uml2.uml.Classifier#getAttributes() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_Attribute(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Classifier#getRepresentation Representation}'. + * + * + * @return the meta object for the reference 'Representation'. + * @see org.eclipse.uml2.uml.Classifier#getRepresentation() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_Representation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Classifier#getCollaborationUses Collaboration Use}'. + * + * + * @return the meta object for the containment reference list 'Collaboration Use'. + * @see org.eclipse.uml2.uml.Classifier#getCollaborationUses() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_CollaborationUse(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Classifier#getOwnedSignature Owned Signature}'. + * + * + * @return the meta object for the containment reference 'Owned Signature'. + * @see org.eclipse.uml2.uml.Classifier#getOwnedSignature() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_OwnedSignature(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.RedefinableElement Redefinable Element}'. + * + * + * @return the meta object for class 'Redefinable Element'. + * @see org.eclipse.uml2.uml.RedefinableElement + * @generated + */ + EClass getRedefinableElement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.RedefinableElement#isLeaf Is Leaf}'. + * + * + * @return the meta object for the attribute 'Is Leaf'. + * @see org.eclipse.uml2.uml.RedefinableElement#isLeaf() + * @see #getRedefinableElement() + * @generated + */ + EAttribute getRedefinableElement_IsLeaf(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinedElements Redefined Element}'. + * + * + * @return the meta object for the reference list 'Redefined Element'. + * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinedElements() + * @see #getRedefinableElement() + * @generated + */ + EReference getRedefinableElement_RedefinedElement(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts Redefinition Context}'. + * + * + * @return the meta object for the reference list 'Redefinition Context'. + * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() + * @see #getRedefinableElement() + * @generated + */ + EReference getRedefinableElement_RedefinitionContext(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Generalization Generalization}'. + * + * + * @return the meta object for class 'Generalization'. + * @see org.eclipse.uml2.uml.Generalization + * @generated + */ + EClass getGeneralization(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Generalization#isSubstitutable Is Substitutable}'. + * + * + * @return the meta object for the attribute 'Is Substitutable'. + * @see org.eclipse.uml2.uml.Generalization#isSubstitutable() + * @see #getGeneralization() + * @generated + */ + EAttribute getGeneralization_IsSubstitutable(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Generalization#getGeneral General}'. + * + * + * @return the meta object for the reference 'General'. + * @see org.eclipse.uml2.uml.Generalization#getGeneral() + * @see #getGeneralization() + * @generated + */ + EReference getGeneralization_General(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Generalization#getGeneralizationSets Generalization Set}'. + * + * + * @return the meta object for the reference list 'Generalization Set'. + * @see org.eclipse.uml2.uml.Generalization#getGeneralizationSets() + * @see #getGeneralization() + * @generated + */ + EReference getGeneralization_GeneralizationSet(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Generalization#getSpecific Specific}'. + * + * + * @return the meta object for the container reference 'Specific'. + * @see org.eclipse.uml2.uml.Generalization#getSpecific() + * @see #getGeneralization() + * @generated + */ + EReference getGeneralization_Specific(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.GeneralizationSet Generalization Set}'. + * + * + * @return the meta object for class 'Generalization Set'. + * @see org.eclipse.uml2.uml.GeneralizationSet + * @generated + */ + EClass getGeneralizationSet(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.GeneralizationSet#isCovering Is Covering}'. + * + * + * @return the meta object for the attribute 'Is Covering'. + * @see org.eclipse.uml2.uml.GeneralizationSet#isCovering() + * @see #getGeneralizationSet() + * @generated + */ + EAttribute getGeneralizationSet_IsCovering(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.GeneralizationSet#isDisjoint Is Disjoint}'. + * + * + * @return the meta object for the attribute 'Is Disjoint'. + * @see org.eclipse.uml2.uml.GeneralizationSet#isDisjoint() + * @see #getGeneralizationSet() + * @generated + */ + EAttribute getGeneralizationSet_IsDisjoint(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.GeneralizationSet#getPowertype Powertype}'. + * + * + * @return the meta object for the reference 'Powertype'. + * @see org.eclipse.uml2.uml.GeneralizationSet#getPowertype() + * @see #getGeneralizationSet() + * @generated + */ + EReference getGeneralizationSet_Powertype(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.GeneralizationSet#getGeneralizations Generalization}'. + * + * + * @return the meta object for the reference list 'Generalization'. + * @see org.eclipse.uml2.uml.GeneralizationSet#getGeneralizations() + * @see #getGeneralizationSet() + * @generated + */ + EReference getGeneralizationSet_Generalization(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Feature Feature}'. + * + * + * @return the meta object for class 'Feature'. + * @see org.eclipse.uml2.uml.Feature + * @generated + */ + EClass getFeature(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Feature#isStatic Is Static}'. + * + * + * @return the meta object for the attribute 'Is Static'. + * @see org.eclipse.uml2.uml.Feature#isStatic() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsStatic(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers Featuring Classifier}'. + * + * + * @return the meta object for the reference list 'Featuring Classifier'. + * @see org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() + * @see #getFeature() + * @generated + */ + EReference getFeature_FeaturingClassifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.UseCase Use Case}'. + * + * + * @return the meta object for class 'Use Case'. + * @see org.eclipse.uml2.uml.UseCase + * @generated + */ + EClass getUseCase(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.UseCase#getIncludes Include}'. + * + * + * @return the meta object for the containment reference list 'Include'. + * @see org.eclipse.uml2.uml.UseCase#getIncludes() + * @see #getUseCase() + * @generated + */ + EReference getUseCase_Include(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.UseCase#getExtends Extend}'. + * + * + * @return the meta object for the containment reference list 'Extend'. + * @see org.eclipse.uml2.uml.UseCase#getExtends() + * @see #getUseCase() + * @generated + */ + EReference getUseCase_Extend(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.UseCase#getExtensionPoints Extension Point}'. + * + * + * @return the meta object for the containment reference list 'Extension Point'. + * @see org.eclipse.uml2.uml.UseCase#getExtensionPoints() + * @see #getUseCase() + * @generated + */ + EReference getUseCase_ExtensionPoint(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.UseCase#getSubjects Subject}'. + * + * + * @return the meta object for the reference list 'Subject'. + * @see org.eclipse.uml2.uml.UseCase#getSubjects() + * @see #getUseCase() + * @generated + */ + EReference getUseCase_Subject(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Include Include}'. + * + * + * @return the meta object for class 'Include'. + * @see org.eclipse.uml2.uml.Include + * @generated + */ + EClass getInclude(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Include#getAddition Addition}'. + * + * + * @return the meta object for the reference 'Addition'. + * @see org.eclipse.uml2.uml.Include#getAddition() + * @see #getInclude() + * @generated + */ + EReference getInclude_Addition(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Include#getIncludingCase Including Case}'. + * + * + * @return the meta object for the container reference 'Including Case'. + * @see org.eclipse.uml2.uml.Include#getIncludingCase() + * @see #getInclude() + * @generated + */ + EReference getInclude_IncludingCase(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Extend Extend}'. + * + * + * @return the meta object for class 'Extend'. + * @see org.eclipse.uml2.uml.Extend + * @generated + */ + EClass getExtend(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Extend#getExtendedCase Extended Case}'. + * + * + * @return the meta object for the reference 'Extended Case'. + * @see org.eclipse.uml2.uml.Extend#getExtendedCase() + * @see #getExtend() + * @generated + */ + EReference getExtend_ExtendedCase(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Extend#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see org.eclipse.uml2.uml.Extend#getCondition() + * @see #getExtend() + * @generated + */ + EReference getExtend_Condition(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Extend#getExtensionLocations Extension Location}'. + * + * + * @return the meta object for the reference list 'Extension Location'. + * @see org.eclipse.uml2.uml.Extend#getExtensionLocations() + * @see #getExtend() + * @generated + */ + EReference getExtend_ExtensionLocation(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Extend#getExtension Extension}'. + * + * + * @return the meta object for the container reference 'Extension'. + * @see org.eclipse.uml2.uml.Extend#getExtension() + * @see #getExtend() + * @generated + */ + EReference getExtend_Extension(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Constraint Constraint}'. + * + * + * @return the meta object for class 'Constraint'. + * @see org.eclipse.uml2.uml.Constraint + * @generated + */ + EClass getConstraint(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Constraint#getConstrainedElements Constrained Element}'. + * + * + * @return the meta object for the reference list 'Constrained Element'. + * @see org.eclipse.uml2.uml.Constraint#getConstrainedElements() + * @see #getConstraint() + * @generated + */ + EReference getConstraint_ConstrainedElement(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Constraint#getSpecification Specification}'. + * + * + * @return the meta object for the containment reference 'Specification'. + * @see org.eclipse.uml2.uml.Constraint#getSpecification() + * @see #getConstraint() + * @generated + */ + EReference getConstraint_Specification(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Constraint#getContext Context}'. + * + * + * @return the meta object for the container reference 'Context'. + * @see org.eclipse.uml2.uml.Constraint#getContext() + * @see #getConstraint() + * @generated + */ + EReference getConstraint_Context(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExtensionPoint Extension Point}'. + * + * + * @return the meta object for class 'Extension Point'. + * @see org.eclipse.uml2.uml.ExtensionPoint + * @generated + */ + EClass getExtensionPoint(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ExtensionPoint#getUseCase Use Case}'. + * + * + * @return the meta object for the container reference 'Use Case'. + * @see org.eclipse.uml2.uml.ExtensionPoint#getUseCase() + * @see #getExtensionPoint() + * @generated + */ + EReference getExtensionPoint_UseCase(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Substitution Substitution}'. + * + * + * @return the meta object for class 'Substitution'. + * @see org.eclipse.uml2.uml.Substitution + * @generated + */ + EClass getSubstitution(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Substitution#getContract Contract}'. + * + * + * @return the meta object for the reference 'Contract'. + * @see org.eclipse.uml2.uml.Substitution#getContract() + * @see #getSubstitution() + * @generated + */ + EReference getSubstitution_Contract(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier Substituting Classifier}'. + * + * + * @return the meta object for the container reference 'Substituting Classifier'. + * @see org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier() + * @see #getSubstitution() + * @generated + */ + EReference getSubstitution_SubstitutingClassifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Realization Realization}'. + * + * + * @return the meta object for class 'Realization'. + * @see org.eclipse.uml2.uml.Realization + * @generated + */ + EClass getRealization(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Abstraction Abstraction}'. + * + * + * @return the meta object for class 'Abstraction'. + * @see org.eclipse.uml2.uml.Abstraction + * @generated + */ + EClass getAbstraction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Abstraction#getMapping Mapping}'. + * + * + * @return the meta object for the containment reference 'Mapping'. + * @see org.eclipse.uml2.uml.Abstraction#getMapping() + * @see #getAbstraction() + * @generated + */ + EReference getAbstraction_Mapping(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.OpaqueExpression Opaque Expression}'. + * + * + * @return the meta object for class 'Opaque Expression'. + * @see org.eclipse.uml2.uml.OpaqueExpression + * @generated + */ + EClass getOpaqueExpression(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.uml2.uml.OpaqueExpression#getBodies Body}'. + * + * + * @return the meta object for the attribute list 'Body'. + * @see org.eclipse.uml2.uml.OpaqueExpression#getBodies() + * @see #getOpaqueExpression() + * @generated + */ + EAttribute getOpaqueExpression_Body(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.uml2.uml.OpaqueExpression#getLanguages Language}'. + * + * + * @return the meta object for the attribute list 'Language'. + * @see org.eclipse.uml2.uml.OpaqueExpression#getLanguages() + * @see #getOpaqueExpression() + * @generated + */ + EAttribute getOpaqueExpression_Language(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.OpaqueExpression#getResult Result}'. + * + * + * @return the meta object for the reference 'Result'. + * @see org.eclipse.uml2.uml.OpaqueExpression#getResult() + * @see #getOpaqueExpression() + * @generated + */ + EReference getOpaqueExpression_Result(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.OpaqueExpression#getBehavior Behavior}'. + * + * + * @return the meta object for the reference 'Behavior'. + * @see org.eclipse.uml2.uml.OpaqueExpression#getBehavior() + * @see #getOpaqueExpression() + * @generated + */ + EReference getOpaqueExpression_Behavior(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Parameter Parameter}'. + * + * + * @return the meta object for class 'Parameter'. + * @see org.eclipse.uml2.uml.Parameter + * @generated + */ + EClass getParameter(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Parameter#getParameterSets Parameter Set}'. + * + * + * @return the meta object for the reference list 'Parameter Set'. + * @see org.eclipse.uml2.uml.Parameter#getParameterSets() + * @see #getParameter() + * @generated + */ + EReference getParameter_ParameterSet(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Parameter#getOperation Operation}'. + * + * + * @return the meta object for the reference 'Operation'. + * @see org.eclipse.uml2.uml.Parameter#getOperation() + * @see #getParameter() + * @generated + */ + EReference getParameter_Operation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Parameter#getDirection Direction}'. + * + * + * @return the meta object for the attribute 'Direction'. + * @see org.eclipse.uml2.uml.Parameter#getDirection() + * @see #getParameter() + * @generated + */ + EAttribute getParameter_Direction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Parameter#getDefault Default}'. + * + * + * @return the meta object for the attribute 'Default'. + * @see org.eclipse.uml2.uml.Parameter#getDefault() + * @see #getParameter() + * @generated + */ + EAttribute getParameter_Default(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Parameter#getDefaultValue Default Value}'. + * + * + * @return the meta object for the containment reference 'Default Value'. + * @see org.eclipse.uml2.uml.Parameter#getDefaultValue() + * @see #getParameter() + * @generated + */ + EReference getParameter_DefaultValue(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Parameter#isException Is Exception}'. + * + * + * @return the meta object for the attribute 'Is Exception'. + * @see org.eclipse.uml2.uml.Parameter#isException() + * @see #getParameter() + * @generated + */ + EAttribute getParameter_IsException(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Parameter#isStream Is Stream}'. + * + * + * @return the meta object for the attribute 'Is Stream'. + * @see org.eclipse.uml2.uml.Parameter#isStream() + * @see #getParameter() + * @generated + */ + EAttribute getParameter_IsStream(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Parameter#getEffect Effect}'. + * + * + * @return the meta object for the attribute 'Effect'. + * @see org.eclipse.uml2.uml.Parameter#getEffect() + * @see #getParameter() + * @generated + */ + EAttribute getParameter_Effect(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.MultiplicityElement Multiplicity Element}'. + * + * + * @return the meta object for class 'Multiplicity Element'. + * @see org.eclipse.uml2.uml.MultiplicityElement + * @generated + */ + EClass getMultiplicityElement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.MultiplicityElement#isOrdered Is Ordered}'. + * + * + * @return the meta object for the attribute 'Is Ordered'. + * @see org.eclipse.uml2.uml.MultiplicityElement#isOrdered() + * @see #getMultiplicityElement() + * @generated + */ + EAttribute getMultiplicityElement_IsOrdered(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.MultiplicityElement#isUnique Is Unique}'. + * + * + * @return the meta object for the attribute 'Is Unique'. + * @see org.eclipse.uml2.uml.MultiplicityElement#isUnique() + * @see #getMultiplicityElement() + * @generated + */ + EAttribute getMultiplicityElement_IsUnique(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.MultiplicityElement#getUpper Upper}'. + * + * + * @return the meta object for the attribute 'Upper'. + * @see org.eclipse.uml2.uml.MultiplicityElement#getUpper() + * @see #getMultiplicityElement() + * @generated + */ + EAttribute getMultiplicityElement_Upper(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.MultiplicityElement#getLower Lower}'. + * + * + * @return the meta object for the attribute 'Lower'. + * @see org.eclipse.uml2.uml.MultiplicityElement#getLower() + * @see #getMultiplicityElement() + * @generated + */ + EAttribute getMultiplicityElement_Lower(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.MultiplicityElement#getUpperValue Upper Value}'. + * + * + * @return the meta object for the containment reference 'Upper Value'. + * @see org.eclipse.uml2.uml.MultiplicityElement#getUpperValue() + * @see #getMultiplicityElement() + * @generated + */ + EReference getMultiplicityElement_UpperValue(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.MultiplicityElement#getLowerValue Lower Value}'. + * + * + * @return the meta object for the containment reference 'Lower Value'. + * @see org.eclipse.uml2.uml.MultiplicityElement#getLowerValue() + * @see #getMultiplicityElement() + * @generated + */ + EReference getMultiplicityElement_LowerValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ConnectableElement Connectable Element}'. + * + * + * @return the meta object for class 'Connectable Element'. + * @see org.eclipse.uml2.uml.ConnectableElement + * @generated + */ + EClass getConnectableElement(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ConnectableElement#getEnds End}'. + * + * + * @return the meta object for the reference list 'End'. + * @see org.eclipse.uml2.uml.ConnectableElement#getEnds() + * @see #getConnectableElement() + * @generated + */ + EReference getConnectableElement_End(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ConnectorEnd Connector End}'. + * + * + * @return the meta object for class 'Connector End'. + * @see org.eclipse.uml2.uml.ConnectorEnd + * @generated + */ + EClass getConnectorEnd(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ConnectorEnd#getDefiningEnd Defining End}'. + * + * + * @return the meta object for the reference 'Defining End'. + * @see org.eclipse.uml2.uml.ConnectorEnd#getDefiningEnd() + * @see #getConnectorEnd() + * @generated + */ + EReference getConnectorEnd_DefiningEnd(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ConnectorEnd#getPartWithPort Part With Port}'. + * + * + * @return the meta object for the reference 'Part With Port'. + * @see org.eclipse.uml2.uml.ConnectorEnd#getPartWithPort() + * @see #getConnectorEnd() + * @generated + */ + EReference getConnectorEnd_PartWithPort(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ConnectorEnd#getRole Role}'. + * + * + * @return the meta object for the reference 'Role'. + * @see org.eclipse.uml2.uml.ConnectorEnd#getRole() + * @see #getConnectorEnd() + * @generated + */ + EReference getConnectorEnd_Role(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Property Property}'. + * + * + * @return the meta object for class 'Property'. + * @see org.eclipse.uml2.uml.Property + * @generated + */ + EClass getProperty(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Property#getDatatype Datatype}'. + * + * + * @return the meta object for the container reference 'Datatype'. + * @see org.eclipse.uml2.uml.Property#getDatatype() + * @see #getProperty() + * @generated + */ + EReference getProperty_Datatype(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Property#isDerived Is Derived}'. + * + * + * @return the meta object for the attribute 'Is Derived'. + * @see org.eclipse.uml2.uml.Property#isDerived() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_IsDerived(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Property#isDerivedUnion Is Derived Union}'. + * + * + * @return the meta object for the attribute 'Is Derived Union'. + * @see org.eclipse.uml2.uml.Property#isDerivedUnion() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_IsDerivedUnion(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Property#getDefault Default}'. + * + * + * @return the meta object for the attribute 'Default'. + * @see org.eclipse.uml2.uml.Property#getDefault() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_Default(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Property#getAggregation Aggregation}'. + * + * + * @return the meta object for the attribute 'Aggregation'. + * @see org.eclipse.uml2.uml.Property#getAggregation() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_Aggregation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Property#isComposite Is Composite}'. + * + * + * @return the meta object for the attribute 'Is Composite'. + * @see org.eclipse.uml2.uml.Property#isComposite() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_IsComposite(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Property#getClass_ Class }'. + * + * + * @return the meta object for the reference 'Class '. + * @see org.eclipse.uml2.uml.Property#getClass_() + * @see #getProperty() + * @generated + */ + EReference getProperty_Class_(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Property#getRedefinedProperties Redefined Property}'. + * + * + * @return the meta object for the reference list 'Redefined Property'. + * @see org.eclipse.uml2.uml.Property#getRedefinedProperties() + * @see #getProperty() + * @generated + */ + EReference getProperty_RedefinedProperty(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Property#getOwningAssociation Owning Association}'. + * + * + * @return the meta object for the container reference 'Owning Association'. + * @see org.eclipse.uml2.uml.Property#getOwningAssociation() + * @see #getProperty() + * @generated + */ + EReference getProperty_OwningAssociation(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Property#getAssociation Association}'. + * + * + * @return the meta object for the reference 'Association'. + * @see org.eclipse.uml2.uml.Property#getAssociation() + * @see #getProperty() + * @generated + */ + EReference getProperty_Association(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Property#getDefaultValue Default Value}'. + * + * + * @return the meta object for the containment reference 'Default Value'. + * @see org.eclipse.uml2.uml.Property#getDefaultValue() + * @see #getProperty() + * @generated + */ + EReference getProperty_DefaultValue(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Property#getOpposite Opposite}'. + * + * + * @return the meta object for the reference 'Opposite'. + * @see org.eclipse.uml2.uml.Property#getOpposite() + * @see #getProperty() + * @generated + */ + EReference getProperty_Opposite(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Property#getSubsettedProperties Subsetted Property}'. + * + * + * @return the meta object for the reference list 'Subsetted Property'. + * @see org.eclipse.uml2.uml.Property#getSubsettedProperties() + * @see #getProperty() + * @generated + */ + EReference getProperty_SubsettedProperty(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Property#getQualifiers Qualifier}'. + * + * + * @return the meta object for the containment reference list 'Qualifier'. + * @see org.eclipse.uml2.uml.Property#getQualifiers() + * @see #getProperty() + * @generated + */ + EReference getProperty_Qualifier(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Property#getAssociationEnd Association End}'. + * + * + * @return the meta object for the container reference 'Association End'. + * @see org.eclipse.uml2.uml.Property#getAssociationEnd() + * @see #getProperty() + * @generated + */ + EReference getProperty_AssociationEnd(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DeploymentTarget Deployment Target}'. + * + * + * @return the meta object for class 'Deployment Target'. + * @see org.eclipse.uml2.uml.DeploymentTarget + * @generated + */ + EClass getDeploymentTarget(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.DeploymentTarget#getDeployments Deployment}'. + * + * + * @return the meta object for the containment reference list 'Deployment'. + * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployments() + * @see #getDeploymentTarget() + * @generated + */ + EReference getDeploymentTarget_Deployment(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.DeploymentTarget#getDeployedElements Deployed Element}'. + * + * + * @return the meta object for the reference list 'Deployed Element'. + * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployedElements() + * @see #getDeploymentTarget() + * @generated + */ + EReference getDeploymentTarget_DeployedElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Deployment Deployment}'. + * + * + * @return the meta object for class 'Deployment'. + * @see org.eclipse.uml2.uml.Deployment + * @generated + */ + EClass getDeployment(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Deployment#getDeployedArtifacts Deployed Artifact}'. + * + * + * @return the meta object for the reference list 'Deployed Artifact'. + * @see org.eclipse.uml2.uml.Deployment#getDeployedArtifacts() + * @see #getDeployment() + * @generated + */ + EReference getDeployment_DeployedArtifact(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Deployment#getConfigurations Configuration}'. + * + * + * @return the meta object for the containment reference list 'Configuration'. + * @see org.eclipse.uml2.uml.Deployment#getConfigurations() + * @see #getDeployment() + * @generated + */ + EReference getDeployment_Configuration(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Deployment#getLocation Location}'. + * + * + * @return the meta object for the container reference 'Location'. + * @see org.eclipse.uml2.uml.Deployment#getLocation() + * @see #getDeployment() + * @generated + */ + EReference getDeployment_Location(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DeployedArtifact Deployed Artifact}'. + * + * + * @return the meta object for class 'Deployed Artifact'. + * @see org.eclipse.uml2.uml.DeployedArtifact + * @generated + */ + EClass getDeployedArtifact(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DeploymentSpecification Deployment Specification}'. + * + * + * @return the meta object for class 'Deployment Specification'. + * @see org.eclipse.uml2.uml.DeploymentSpecification + * @generated + */ + EClass getDeploymentSpecification(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.DeploymentSpecification#getDeploymentLocation Deployment Location}'. + * + * + * @return the meta object for the attribute 'Deployment Location'. + * @see org.eclipse.uml2.uml.DeploymentSpecification#getDeploymentLocation() + * @see #getDeploymentSpecification() + * @generated + */ + EAttribute getDeploymentSpecification_DeploymentLocation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.DeploymentSpecification#getExecutionLocation Execution Location}'. + * + * + * @return the meta object for the attribute 'Execution Location'. + * @see org.eclipse.uml2.uml.DeploymentSpecification#getExecutionLocation() + * @see #getDeploymentSpecification() + * @generated + */ + EAttribute getDeploymentSpecification_ExecutionLocation(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.DeploymentSpecification#getDeployment Deployment}'. + * + * + * @return the meta object for the container reference 'Deployment'. + * @see org.eclipse.uml2.uml.DeploymentSpecification#getDeployment() + * @see #getDeploymentSpecification() + * @generated + */ + EReference getDeploymentSpecification_Deployment(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Artifact Artifact}'. + * + * + * @return the meta object for class 'Artifact'. + * @see org.eclipse.uml2.uml.Artifact + * @generated + */ + EClass getArtifact(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Artifact#getFileName File Name}'. + * + * + * @return the meta object for the attribute 'File Name'. + * @see org.eclipse.uml2.uml.Artifact#getFileName() + * @see #getArtifact() + * @generated + */ + EAttribute getArtifact_FileName(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Artifact#getNestedArtifacts Nested Artifact}'. + * + * + * @return the meta object for the containment reference list 'Nested Artifact'. + * @see org.eclipse.uml2.uml.Artifact#getNestedArtifacts() + * @see #getArtifact() + * @generated + */ + EReference getArtifact_NestedArtifact(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Artifact#getManifestations Manifestation}'. + * + * + * @return the meta object for the containment reference list 'Manifestation'. + * @see org.eclipse.uml2.uml.Artifact#getManifestations() + * @see #getArtifact() + * @generated + */ + EReference getArtifact_Manifestation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Artifact#getOwnedOperations Owned Operation}'. + * + * + * @return the meta object for the containment reference list 'Owned Operation'. + * @see org.eclipse.uml2.uml.Artifact#getOwnedOperations() + * @see #getArtifact() + * @generated + */ + EReference getArtifact_OwnedOperation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Artifact#getOwnedAttributes Owned Attribute}'. + * + * + * @return the meta object for the containment reference list 'Owned Attribute'. + * @see org.eclipse.uml2.uml.Artifact#getOwnedAttributes() + * @see #getArtifact() + * @generated + */ + EReference getArtifact_OwnedAttribute(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Manifestation Manifestation}'. + * + * + * @return the meta object for class 'Manifestation'. + * @see org.eclipse.uml2.uml.Manifestation + * @generated + */ + EClass getManifestation(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Manifestation#getUtilizedElement Utilized Element}'. + * + * + * @return the meta object for the reference 'Utilized Element'. + * @see org.eclipse.uml2.uml.Manifestation#getUtilizedElement() + * @see #getManifestation() + * @generated + */ + EReference getManifestation_UtilizedElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Operation Operation}'. + * + * + * @return the meta object for class 'Operation'. + * @see org.eclipse.uml2.uml.Operation + * @generated + */ + EClass getOperation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Operation#isQuery Is Query}'. + * + * + * @return the meta object for the attribute 'Is Query'. + * @see org.eclipse.uml2.uml.Operation#isQuery() + * @see #getOperation() + * @generated + */ + EAttribute getOperation_IsQuery(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Operation#isOrdered Is Ordered}'. + * + * + * @return the meta object for the attribute 'Is Ordered'. + * @see org.eclipse.uml2.uml.Operation#isOrdered() + * @see #getOperation() + * @generated + */ + EAttribute getOperation_IsOrdered(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Operation#isUnique Is Unique}'. + * + * + * @return the meta object for the attribute 'Is Unique'. + * @see org.eclipse.uml2.uml.Operation#isUnique() + * @see #getOperation() + * @generated + */ + EAttribute getOperation_IsUnique(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Operation#getLower Lower}'. + * + * + * @return the meta object for the attribute 'Lower'. + * @see org.eclipse.uml2.uml.Operation#getLower() + * @see #getOperation() + * @generated + */ + EAttribute getOperation_Lower(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Operation#getUpper Upper}'. + * + * + * @return the meta object for the attribute 'Upper'. + * @see org.eclipse.uml2.uml.Operation#getUpper() + * @see #getOperation() + * @generated + */ + EAttribute getOperation_Upper(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Operation#getClass_ Class }'. + * + * + * @return the meta object for the container reference 'Class '. + * @see org.eclipse.uml2.uml.Operation#getClass_() + * @see #getOperation() + * @generated + */ + EReference getOperation_Class_(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Operation#getPreconditions Precondition}'. + * + * + * @return the meta object for the reference list 'Precondition'. + * @see org.eclipse.uml2.uml.Operation#getPreconditions() + * @see #getOperation() + * @generated + */ + EReference getOperation_Precondition(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Operation#getPostconditions Postcondition}'. + * + * + * @return the meta object for the reference list 'Postcondition'. + * @see org.eclipse.uml2.uml.Operation#getPostconditions() + * @see #getOperation() + * @generated + */ + EReference getOperation_Postcondition(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Operation#getRedefinedOperations Redefined Operation}'. + * + * + * @return the meta object for the reference list 'Redefined Operation'. + * @see org.eclipse.uml2.uml.Operation#getRedefinedOperations() + * @see #getOperation() + * @generated + */ + EReference getOperation_RedefinedOperation(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Operation#getDatatype Datatype}'. + * + * + * @return the meta object for the container reference 'Datatype'. + * @see org.eclipse.uml2.uml.Operation#getDatatype() + * @see #getOperation() + * @generated + */ + EReference getOperation_Datatype(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Operation#getBodyCondition Body Condition}'. + * + * + * @return the meta object for the reference 'Body Condition'. + * @see org.eclipse.uml2.uml.Operation#getBodyCondition() + * @see #getOperation() + * @generated + */ + EReference getOperation_BodyCondition(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Operation#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.uml2.uml.Operation#getType() + * @see #getOperation() + * @generated + */ + EReference getOperation_Type(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Operation#getInterface Interface}'. + * + * + * @return the meta object for the container reference 'Interface'. + * @see org.eclipse.uml2.uml.Operation#getInterface() + * @see #getOperation() + * @generated + */ + EReference getOperation_Interface(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.BehavioralFeature Behavioral Feature}'. + * + * + * @return the meta object for class 'Behavioral Feature'. + * @see org.eclipse.uml2.uml.BehavioralFeature + * @generated + */ + EClass getBehavioralFeature(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.BehavioralFeature#getOwnedParameters Owned Parameter}'. + * + * + * @return the meta object for the containment reference list 'Owned Parameter'. + * @see org.eclipse.uml2.uml.BehavioralFeature#getOwnedParameters() + * @see #getBehavioralFeature() + * @generated + */ + EReference getBehavioralFeature_OwnedParameter(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.BehavioralFeature#isAbstract Is Abstract}'. + * + * + * @return the meta object for the attribute 'Is Abstract'. + * @see org.eclipse.uml2.uml.BehavioralFeature#isAbstract() + * @see #getBehavioralFeature() + * @generated + */ + EAttribute getBehavioralFeature_IsAbstract(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.BehavioralFeature#getMethods Method}'. + * + * + * @return the meta object for the reference list 'Method'. + * @see org.eclipse.uml2.uml.BehavioralFeature#getMethods() + * @see #getBehavioralFeature() + * @generated + */ + EReference getBehavioralFeature_Method(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.BehavioralFeature#getConcurrency Concurrency}'. + * + * + * @return the meta object for the attribute 'Concurrency'. + * @see org.eclipse.uml2.uml.BehavioralFeature#getConcurrency() + * @see #getBehavioralFeature() + * @generated + */ + EAttribute getBehavioralFeature_Concurrency(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.BehavioralFeature#getRaisedExceptions Raised Exception}'. + * + * + * @return the meta object for the reference list 'Raised Exception'. + * @see org.eclipse.uml2.uml.BehavioralFeature#getRaisedExceptions() + * @see #getBehavioralFeature() + * @generated + */ + EReference getBehavioralFeature_RaisedException(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.BehavioralFeature#getOwnedParameterSets Owned Parameter Set}'. + * + * + * @return the meta object for the containment reference list 'Owned Parameter Set'. + * @see org.eclipse.uml2.uml.BehavioralFeature#getOwnedParameterSets() + * @see #getBehavioralFeature() + * @generated + */ + EReference getBehavioralFeature_OwnedParameterSet(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Behavior Behavior}'. + * + * + * @return the meta object for class 'Behavior'. + * @see org.eclipse.uml2.uml.Behavior + * @generated + */ + EClass getBehavior(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Behavior#isReentrant Is Reentrant}'. + * + * + * @return the meta object for the attribute 'Is Reentrant'. + * @see org.eclipse.uml2.uml.Behavior#isReentrant() + * @see #getBehavior() + * @generated + */ + EAttribute getBehavior_IsReentrant(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Behavior#getRedefinedBehaviors Redefined Behavior}'. + * + * + * @return the meta object for the reference list 'Redefined Behavior'. + * @see org.eclipse.uml2.uml.Behavior#getRedefinedBehaviors() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_RedefinedBehavior(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Behavior#getOwnedParameters Owned Parameter}'. + * + * + * @return the meta object for the containment reference list 'Owned Parameter'. + * @see org.eclipse.uml2.uml.Behavior#getOwnedParameters() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_OwnedParameter(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Behavior#getContext Context}'. + * + * + * @return the meta object for the reference 'Context'. + * @see org.eclipse.uml2.uml.Behavior#getContext() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_Context(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Behavior#getOwnedParameterSets Owned Parameter Set}'. + * + * + * @return the meta object for the containment reference list 'Owned Parameter Set'. + * @see org.eclipse.uml2.uml.Behavior#getOwnedParameterSets() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_OwnedParameterSet(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Behavior#getSpecification Specification}'. + * + * + * @return the meta object for the reference 'Specification'. + * @see org.eclipse.uml2.uml.Behavior#getSpecification() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_Specification(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ParameterSet Parameter Set}'. + * + * + * @return the meta object for class 'Parameter Set'. + * @see org.eclipse.uml2.uml.ParameterSet + * @generated + */ + EClass getParameterSet(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ParameterSet#getParameters Parameter}'. + * + * + * @return the meta object for the reference list 'Parameter'. + * @see org.eclipse.uml2.uml.ParameterSet#getParameters() + * @see #getParameterSet() + * @generated + */ + EReference getParameterSet_Parameter(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ParameterSet#getConditions Condition}'. + * + * + * @return the meta object for the containment reference list 'Condition'. + * @see org.eclipse.uml2.uml.ParameterSet#getConditions() + * @see #getParameterSet() + * @generated + */ + EReference getParameterSet_Condition(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DataType Data Type}'. + * + * + * @return the meta object for class 'Data Type'. + * @see org.eclipse.uml2.uml.DataType + * @generated + */ + EClass getDataType(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.DataType#getOwnedAttributes Owned Attribute}'. + * + * + * @return the meta object for the containment reference list 'Owned Attribute'. + * @see org.eclipse.uml2.uml.DataType#getOwnedAttributes() + * @see #getDataType() + * @generated + */ + EReference getDataType_OwnedAttribute(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.DataType#getOwnedOperations Owned Operation}'. + * + * + * @return the meta object for the containment reference list 'Owned Operation'. + * @see org.eclipse.uml2.uml.DataType#getOwnedOperations() + * @see #getDataType() + * @generated + */ + EReference getDataType_OwnedOperation(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Interface Interface}'. + * + * + * @return the meta object for class 'Interface'. + * @see org.eclipse.uml2.uml.Interface + * @generated + */ + EClass getInterface(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interface#getOwnedAttributes Owned Attribute}'. + * + * + * @return the meta object for the containment reference list 'Owned Attribute'. + * @see org.eclipse.uml2.uml.Interface#getOwnedAttributes() + * @see #getInterface() + * @generated + */ + EReference getInterface_OwnedAttribute(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interface#getNestedClassifiers Nested Classifier}'. + * + * + * @return the meta object for the containment reference list 'Nested Classifier'. + * @see org.eclipse.uml2.uml.Interface#getNestedClassifiers() + * @see #getInterface() + * @generated + */ + EReference getInterface_NestedClassifier(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Interface#getRedefinedInterfaces Redefined Interface}'. + * + * + * @return the meta object for the reference list 'Redefined Interface'. + * @see org.eclipse.uml2.uml.Interface#getRedefinedInterfaces() + * @see #getInterface() + * @generated + */ + EReference getInterface_RedefinedInterface(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interface#getOwnedReceptions Owned Reception}'. + * + * + * @return the meta object for the containment reference list 'Owned Reception'. + * @see org.eclipse.uml2.uml.Interface#getOwnedReceptions() + * @see #getInterface() + * @generated + */ + EReference getInterface_OwnedReception(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Interface#getProtocol Protocol}'. + * + * + * @return the meta object for the containment reference 'Protocol'. + * @see org.eclipse.uml2.uml.Interface#getProtocol() + * @see #getInterface() + * @generated + */ + EReference getInterface_Protocol(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interface#getOwnedOperations Owned Operation}'. + * + * + * @return the meta object for the containment reference list 'Owned Operation'. + * @see org.eclipse.uml2.uml.Interface#getOwnedOperations() + * @see #getInterface() + * @generated + */ + EReference getInterface_OwnedOperation(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Reception Reception}'. + * + * + * @return the meta object for class 'Reception'. + * @see org.eclipse.uml2.uml.Reception + * @generated + */ + EClass getReception(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Reception#getSignal Signal}'. + * + * + * @return the meta object for the reference 'Signal'. + * @see org.eclipse.uml2.uml.Reception#getSignal() + * @see #getReception() + * @generated + */ + EReference getReception_Signal(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Signal Signal}'. + * + * + * @return the meta object for class 'Signal'. + * @see org.eclipse.uml2.uml.Signal + * @generated + */ + EClass getSignal(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Signal#getOwnedAttributes Owned Attribute}'. + * + * + * @return the meta object for the containment reference list 'Owned Attribute'. + * @see org.eclipse.uml2.uml.Signal#getOwnedAttributes() + * @see #getSignal() + * @generated + */ + EReference getSignal_OwnedAttribute(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ProtocolStateMachine Protocol State Machine}'. + * + * + * @return the meta object for class 'Protocol State Machine'. + * @see org.eclipse.uml2.uml.ProtocolStateMachine + * @generated + */ + EClass getProtocolStateMachine(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ProtocolStateMachine#getConformances Conformance}'. + * + * + * @return the meta object for the containment reference list 'Conformance'. + * @see org.eclipse.uml2.uml.ProtocolStateMachine#getConformances() + * @see #getProtocolStateMachine() + * @generated + */ + EReference getProtocolStateMachine_Conformance(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StateMachine State Machine}'. + * + * + * @return the meta object for class 'State Machine'. + * @see org.eclipse.uml2.uml.StateMachine + * @generated + */ + EClass getStateMachine(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StateMachine#getRegions Region}'. + * + * + * @return the meta object for the containment reference list 'Region'. + * @see org.eclipse.uml2.uml.StateMachine#getRegions() + * @see #getStateMachine() + * @generated + */ + EReference getStateMachine_Region(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StateMachine#getConnectionPoints Connection Point}'. + * + * + * @return the meta object for the containment reference list 'Connection Point'. + * @see org.eclipse.uml2.uml.StateMachine#getConnectionPoints() + * @see #getStateMachine() + * @generated + */ + EReference getStateMachine_ConnectionPoint(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.StateMachine#getExtendedStateMachine Extended State Machine}'. + * + * + * @return the meta object for the reference 'Extended State Machine'. + * @see org.eclipse.uml2.uml.StateMachine#getExtendedStateMachine() + * @see #getStateMachine() + * @generated + */ + EReference getStateMachine_ExtendedStateMachine(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Region Region}'. + * + * + * @return the meta object for class 'Region'. + * @see org.eclipse.uml2.uml.Region + * @generated + */ + EClass getRegion(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Region#getSubvertices Subvertex}'. + * + * + * @return the meta object for the containment reference list 'Subvertex'. + * @see org.eclipse.uml2.uml.Region#getSubvertices() + * @see #getRegion() + * @generated + */ + EReference getRegion_Subvertex(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Region#getTransitions Transition}'. + * + * + * @return the meta object for the containment reference list 'Transition'. + * @see org.eclipse.uml2.uml.Region#getTransitions() + * @see #getRegion() + * @generated + */ + EReference getRegion_Transition(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Region#getState State}'. + * + * + * @return the meta object for the container reference 'State'. + * @see org.eclipse.uml2.uml.Region#getState() + * @see #getRegion() + * @generated + */ + EReference getRegion_State(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Region#getExtendedRegion Extended Region}'. + * + * + * @return the meta object for the reference 'Extended Region'. + * @see org.eclipse.uml2.uml.Region#getExtendedRegion() + * @see #getRegion() + * @generated + */ + EReference getRegion_ExtendedRegion(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Region#getStateMachine State Machine}'. + * + * + * @return the meta object for the container reference 'State Machine'. + * @see org.eclipse.uml2.uml.Region#getStateMachine() + * @see #getRegion() + * @generated + */ + EReference getRegion_StateMachine(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Vertex Vertex}'. + * + * + * @return the meta object for class 'Vertex'. + * @see org.eclipse.uml2.uml.Vertex + * @generated + */ + EClass getVertex(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Vertex#getOutgoings Outgoing}'. + * + * + * @return the meta object for the reference list 'Outgoing'. + * @see org.eclipse.uml2.uml.Vertex#getOutgoings() + * @see #getVertex() + * @generated + */ + EReference getVertex_Outgoing(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Vertex#getIncomings Incoming}'. + * + * + * @return the meta object for the reference list 'Incoming'. + * @see org.eclipse.uml2.uml.Vertex#getIncomings() + * @see #getVertex() + * @generated + */ + EReference getVertex_Incoming(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Vertex#getContainer Container}'. + * + * + * @return the meta object for the container reference 'Container'. + * @see org.eclipse.uml2.uml.Vertex#getContainer() + * @see #getVertex() + * @generated + */ + EReference getVertex_Container(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Transition Transition}'. + * + * + * @return the meta object for class 'Transition'. + * @see org.eclipse.uml2.uml.Transition + * @generated + */ + EClass getTransition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Transition#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.eclipse.uml2.uml.Transition#getKind() + * @see #getTransition() + * @generated + */ + EAttribute getTransition_Kind(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Transition#getContainer Container}'. + * + * + * @return the meta object for the container reference 'Container'. + * @see org.eclipse.uml2.uml.Transition#getContainer() + * @see #getTransition() + * @generated + */ + EReference getTransition_Container(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Transition#getTarget Target}'. + * + * + * @return the meta object for the reference 'Target'. + * @see org.eclipse.uml2.uml.Transition#getTarget() + * @see #getTransition() + * @generated + */ + EReference getTransition_Target(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Transition#getRedefinedTransition Redefined Transition}'. + * + * + * @return the meta object for the reference 'Redefined Transition'. + * @see org.eclipse.uml2.uml.Transition#getRedefinedTransition() + * @see #getTransition() + * @generated + */ + EReference getTransition_RedefinedTransition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Transition#getGuard Guard}'. + * + * + * @return the meta object for the containment reference 'Guard'. + * @see org.eclipse.uml2.uml.Transition#getGuard() + * @see #getTransition() + * @generated + */ + EReference getTransition_Guard(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Transition#getEffect Effect}'. + * + * + * @return the meta object for the containment reference 'Effect'. + * @see org.eclipse.uml2.uml.Transition#getEffect() + * @see #getTransition() + * @generated + */ + EReference getTransition_Effect(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Transition#getTriggers Trigger}'. + * + * + * @return the meta object for the containment reference list 'Trigger'. + * @see org.eclipse.uml2.uml.Transition#getTriggers() + * @see #getTransition() + * @generated + */ + EReference getTransition_Trigger(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Transition#getSource Source}'. + * + * + * @return the meta object for the reference 'Source'. + * @see org.eclipse.uml2.uml.Transition#getSource() + * @see #getTransition() + * @generated + */ + EReference getTransition_Source(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Trigger Trigger}'. + * + * + * @return the meta object for class 'Trigger'. + * @see org.eclipse.uml2.uml.Trigger + * @generated + */ + EClass getTrigger(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Trigger#getEvent Event}'. + * + * + * @return the meta object for the reference 'Event'. + * @see org.eclipse.uml2.uml.Trigger#getEvent() + * @see #getTrigger() + * @generated + */ + EReference getTrigger_Event(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Trigger#getPorts Port}'. + * + * + * @return the meta object for the reference list 'Port'. + * @see org.eclipse.uml2.uml.Trigger#getPorts() + * @see #getTrigger() + * @generated + */ + EReference getTrigger_Port(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Event Event}'. + * + * + * @return the meta object for class 'Event'. + * @see org.eclipse.uml2.uml.Event + * @generated + */ + EClass getEvent(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Port Port}'. + * + * + * @return the meta object for class 'Port'. + * @see org.eclipse.uml2.uml.Port + * @generated + */ + EClass getPort(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Port#isBehavior Is Behavior}'. + * + * + * @return the meta object for the attribute 'Is Behavior'. + * @see org.eclipse.uml2.uml.Port#isBehavior() + * @see #getPort() + * @generated + */ + EAttribute getPort_IsBehavior(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Port#isService Is Service}'. + * + * + * @return the meta object for the attribute 'Is Service'. + * @see org.eclipse.uml2.uml.Port#isService() + * @see #getPort() + * @generated + */ + EAttribute getPort_IsService(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Port#getRequireds Required}'. + * + * + * @return the meta object for the reference list 'Required'. + * @see org.eclipse.uml2.uml.Port#getRequireds() + * @see #getPort() + * @generated + */ + EReference getPort_Required(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Port#getRedefinedPorts Redefined Port}'. + * + * + * @return the meta object for the reference list 'Redefined Port'. + * @see org.eclipse.uml2.uml.Port#getRedefinedPorts() + * @see #getPort() + * @generated + */ + EReference getPort_RedefinedPort(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Port#getProvideds Provided}'. + * + * + * @return the meta object for the reference list 'Provided'. + * @see org.eclipse.uml2.uml.Port#getProvideds() + * @see #getPort() + * @generated + */ + EReference getPort_Provided(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Port#getProtocol Protocol}'. + * + * + * @return the meta object for the reference 'Protocol'. + * @see org.eclipse.uml2.uml.Port#getProtocol() + * @see #getPort() + * @generated + */ + EReference getPort_Protocol(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.State State}'. + * + * + * @return the meta object for class 'State'. + * @see org.eclipse.uml2.uml.State + * @generated + */ + EClass getState(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.State#isComposite Is Composite}'. + * + * + * @return the meta object for the attribute 'Is Composite'. + * @see org.eclipse.uml2.uml.State#isComposite() + * @see #getState() + * @generated + */ + EAttribute getState_IsComposite(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.State#isOrthogonal Is Orthogonal}'. + * + * + * @return the meta object for the attribute 'Is Orthogonal'. + * @see org.eclipse.uml2.uml.State#isOrthogonal() + * @see #getState() + * @generated + */ + EAttribute getState_IsOrthogonal(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.State#isSimple Is Simple}'. + * + * + * @return the meta object for the attribute 'Is Simple'. + * @see org.eclipse.uml2.uml.State#isSimple() + * @see #getState() + * @generated + */ + EAttribute getState_IsSimple(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.State#isSubmachineState Is Submachine State}'. + * + * + * @return the meta object for the attribute 'Is Submachine State'. + * @see org.eclipse.uml2.uml.State#isSubmachineState() + * @see #getState() + * @generated + */ + EAttribute getState_IsSubmachineState(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.State#getSubmachine Submachine}'. + * + * + * @return the meta object for the reference 'Submachine'. + * @see org.eclipse.uml2.uml.State#getSubmachine() + * @see #getState() + * @generated + */ + EReference getState_Submachine(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.State#getConnections Connection}'. + * + * + * @return the meta object for the containment reference list 'Connection'. + * @see org.eclipse.uml2.uml.State#getConnections() + * @see #getState() + * @generated + */ + EReference getState_Connection(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.State#getConnectionPoints Connection Point}'. + * + * + * @return the meta object for the containment reference list 'Connection Point'. + * @see org.eclipse.uml2.uml.State#getConnectionPoints() + * @see #getState() + * @generated + */ + EReference getState_ConnectionPoint(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.State#getRedefinedState Redefined State}'. + * + * + * @return the meta object for the reference 'Redefined State'. + * @see org.eclipse.uml2.uml.State#getRedefinedState() + * @see #getState() + * @generated + */ + EReference getState_RedefinedState(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.State#getStateInvariant State Invariant}'. + * + * + * @return the meta object for the containment reference 'State Invariant'. + * @see org.eclipse.uml2.uml.State#getStateInvariant() + * @see #getState() + * @generated + */ + EReference getState_StateInvariant(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.State#getEntry Entry}'. + * + * + * @return the meta object for the containment reference 'Entry'. + * @see org.eclipse.uml2.uml.State#getEntry() + * @see #getState() + * @generated + */ + EReference getState_Entry(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.State#getExit Exit}'. + * + * + * @return the meta object for the containment reference 'Exit'. + * @see org.eclipse.uml2.uml.State#getExit() + * @see #getState() + * @generated + */ + EReference getState_Exit(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.State#getDoActivity Do Activity}'. + * + * + * @return the meta object for the containment reference 'Do Activity'. + * @see org.eclipse.uml2.uml.State#getDoActivity() + * @see #getState() + * @generated + */ + EReference getState_DoActivity(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.State#getDeferrableTriggers Deferrable Trigger}'. + * + * + * @return the meta object for the containment reference list 'Deferrable Trigger'. + * @see org.eclipse.uml2.uml.State#getDeferrableTriggers() + * @see #getState() + * @generated + */ + EReference getState_DeferrableTrigger(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.State#getRegions Region}'. + * + * + * @return the meta object for the containment reference list 'Region'. + * @see org.eclipse.uml2.uml.State#getRegions() + * @see #getState() + * @generated + */ + EReference getState_Region(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ConnectionPointReference Connection Point Reference}'. + * + * + * @return the meta object for class 'Connection Point Reference'. + * @see org.eclipse.uml2.uml.ConnectionPointReference + * @generated + */ + EClass getConnectionPointReference(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ConnectionPointReference#getEntries Entry}'. + * + * + * @return the meta object for the reference list 'Entry'. + * @see org.eclipse.uml2.uml.ConnectionPointReference#getEntries() + * @see #getConnectionPointReference() + * @generated + */ + EReference getConnectionPointReference_Entry(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ConnectionPointReference#getExits Exit}'. + * + * + * @return the meta object for the reference list 'Exit'. + * @see org.eclipse.uml2.uml.ConnectionPointReference#getExits() + * @see #getConnectionPointReference() + * @generated + */ + EReference getConnectionPointReference_Exit(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ConnectionPointReference#getState State}'. + * + * + * @return the meta object for the container reference 'State'. + * @see org.eclipse.uml2.uml.ConnectionPointReference#getState() + * @see #getConnectionPointReference() + * @generated + */ + EReference getConnectionPointReference_State(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Pseudostate Pseudostate}'. + * + * + * @return the meta object for class 'Pseudostate'. + * @see org.eclipse.uml2.uml.Pseudostate + * @generated + */ + EClass getPseudostate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Pseudostate#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.eclipse.uml2.uml.Pseudostate#getKind() + * @see #getPseudostate() + * @generated + */ + EAttribute getPseudostate_Kind(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Pseudostate#getStateMachine State Machine}'. + * + * + * @return the meta object for the container reference 'State Machine'. + * @see org.eclipse.uml2.uml.Pseudostate#getStateMachine() + * @see #getPseudostate() + * @generated + */ + EReference getPseudostate_StateMachine(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Pseudostate#getState State}'. + * + * + * @return the meta object for the container reference 'State'. + * @see org.eclipse.uml2.uml.Pseudostate#getState() + * @see #getPseudostate() + * @generated + */ + EReference getPseudostate_State(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ProtocolConformance Protocol Conformance}'. + * + * + * @return the meta object for class 'Protocol Conformance'. + * @see org.eclipse.uml2.uml.ProtocolConformance + * @generated + */ + EClass getProtocolConformance(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ProtocolConformance#getGeneralMachine General Machine}'. + * + * + * @return the meta object for the reference 'General Machine'. + * @see org.eclipse.uml2.uml.ProtocolConformance#getGeneralMachine() + * @see #getProtocolConformance() + * @generated + */ + EReference getProtocolConformance_GeneralMachine(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ProtocolConformance#getSpecificMachine Specific Machine}'. + * + * + * @return the meta object for the container reference 'Specific Machine'. + * @see org.eclipse.uml2.uml.ProtocolConformance#getSpecificMachine() + * @see #getProtocolConformance() + * @generated + */ + EReference getProtocolConformance_SpecificMachine(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.OperationTemplateParameter Operation Template Parameter}'. + * + * + * @return the meta object for class 'Operation Template Parameter'. + * @see org.eclipse.uml2.uml.OperationTemplateParameter + * @generated + */ + EClass getOperationTemplateParameter(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StructuralFeature Structural Feature}'. + * + * + * @return the meta object for class 'Structural Feature'. + * @see org.eclipse.uml2.uml.StructuralFeature + * @generated + */ + EClass getStructuralFeature(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.StructuralFeature#isReadOnly Is Read Only}'. + * + * + * @return the meta object for the attribute 'Is Read Only'. + * @see org.eclipse.uml2.uml.StructuralFeature#isReadOnly() + * @see #getStructuralFeature() + * @generated + */ + EAttribute getStructuralFeature_IsReadOnly(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Association Association}'. + * + * + * @return the meta object for class 'Association'. + * @see org.eclipse.uml2.uml.Association + * @generated + */ + EClass getAssociation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Association#isDerived Is Derived}'. + * + * + * @return the meta object for the attribute 'Is Derived'. + * @see org.eclipse.uml2.uml.Association#isDerived() + * @see #getAssociation() + * @generated + */ + EAttribute getAssociation_IsDerived(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Association#getEndTypes End Type}'. + * + * + * @return the meta object for the reference list 'End Type'. + * @see org.eclipse.uml2.uml.Association#getEndTypes() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_EndType(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Association#getMemberEnds Member End}'. + * + * + * @return the meta object for the reference list 'Member End'. + * @see org.eclipse.uml2.uml.Association#getMemberEnds() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_MemberEnd(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Association#getNavigableOwnedEnds Navigable Owned End}'. + * + * + * @return the meta object for the reference list 'Navigable Owned End'. + * @see org.eclipse.uml2.uml.Association#getNavigableOwnedEnds() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_NavigableOwnedEnd(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Association#getOwnedEnds Owned End}'. + * + * + * @return the meta object for the containment reference list 'Owned End'. + * @see org.eclipse.uml2.uml.Association#getOwnedEnds() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_OwnedEnd(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ConnectableElementTemplateParameter Connectable Element Template Parameter}'. + * + * + * @return the meta object for class 'Connectable Element Template Parameter'. + * @see org.eclipse.uml2.uml.ConnectableElementTemplateParameter + * @generated + */ + EClass getConnectableElementTemplateParameter(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CollaborationUse Collaboration Use}'. + * + * + * @return the meta object for class 'Collaboration Use'. + * @see org.eclipse.uml2.uml.CollaborationUse + * @generated + */ + EClass getCollaborationUse(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.CollaborationUse#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.uml2.uml.CollaborationUse#getType() + * @see #getCollaborationUse() + * @generated + */ + EReference getCollaborationUse_Type(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.CollaborationUse#getRoleBindings Role Binding}'. + * + * + * @return the meta object for the containment reference list 'Role Binding'. + * @see org.eclipse.uml2.uml.CollaborationUse#getRoleBindings() + * @see #getCollaborationUse() + * @generated + */ + EReference getCollaborationUse_RoleBinding(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Collaboration Collaboration}'. + * + * + * @return the meta object for class 'Collaboration'. + * @see org.eclipse.uml2.uml.Collaboration + * @generated + */ + EClass getCollaboration(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Collaboration#getCollaborationRoles Collaboration Role}'. + * + * + * @return the meta object for the reference list 'Collaboration Role'. + * @see org.eclipse.uml2.uml.Collaboration#getCollaborationRoles() + * @see #getCollaboration() + * @generated + */ + EReference getCollaboration_CollaborationRole(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StructuredClassifier Structured Classifier}'. + * + * + * @return the meta object for class 'Structured Classifier'. + * @see org.eclipse.uml2.uml.StructuredClassifier + * @generated + */ + EClass getStructuredClassifier(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StructuredClassifier#getOwnedAttributes Owned Attribute}'. + * + * + * @return the meta object for the containment reference list 'Owned Attribute'. + * @see org.eclipse.uml2.uml.StructuredClassifier#getOwnedAttributes() + * @see #getStructuredClassifier() + * @generated + */ + EReference getStructuredClassifier_OwnedAttribute(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.StructuredClassifier#getParts Part}'. + * + * + * @return the meta object for the reference list 'Part'. + * @see org.eclipse.uml2.uml.StructuredClassifier#getParts() + * @see #getStructuredClassifier() + * @generated + */ + EReference getStructuredClassifier_Part(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.StructuredClassifier#getRoles Role}'. + * + * + * @return the meta object for the reference list 'Role'. + * @see org.eclipse.uml2.uml.StructuredClassifier#getRoles() + * @see #getStructuredClassifier() + * @generated + */ + EReference getStructuredClassifier_Role(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StructuredClassifier#getOwnedConnectors Owned Connector}'. + * + * + * @return the meta object for the containment reference list 'Owned Connector'. + * @see org.eclipse.uml2.uml.StructuredClassifier#getOwnedConnectors() + * @see #getStructuredClassifier() + * @generated + */ + EReference getStructuredClassifier_OwnedConnector(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Connector Connector}'. + * + * + * @return the meta object for class 'Connector'. + * @see org.eclipse.uml2.uml.Connector + * @generated + */ + EClass getConnector(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Connector#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.uml2.uml.Connector#getType() + * @see #getConnector() + * @generated + */ + EReference getConnector_Type(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Connector#getRedefinedConnectors Redefined Connector}'. + * + * + * @return the meta object for the reference list 'Redefined Connector'. + * @see org.eclipse.uml2.uml.Connector#getRedefinedConnectors() + * @see #getConnector() + * @generated + */ + EReference getConnector_RedefinedConnector(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Connector#getEnds End}'. + * + * + * @return the meta object for the containment reference list 'End'. + * @see org.eclipse.uml2.uml.Connector#getEnds() + * @see #getConnector() + * @generated + */ + EReference getConnector_End(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Connector#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.eclipse.uml2.uml.Connector#getKind() + * @see #getConnector() + * @generated + */ + EAttribute getConnector_Kind(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Connector#getContracts Contract}'. + * + * + * @return the meta object for the reference list 'Contract'. + * @see org.eclipse.uml2.uml.Connector#getContracts() + * @see #getConnector() + * @generated + */ + EReference getConnector_Contract(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature Redefinable Template Signature}'. + * + * + * @return the meta object for class 'Redefinable Template Signature'. + * @see org.eclipse.uml2.uml.RedefinableTemplateSignature + * @generated + */ + EClass getRedefinableTemplateSignature(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getExtendedSignatures Extended Signature}'. + * + * + * @return the meta object for the reference list 'Extended Signature'. + * @see org.eclipse.uml2.uml.RedefinableTemplateSignature#getExtendedSignatures() + * @see #getRedefinableTemplateSignature() + * @generated + */ + EReference getRedefinableTemplateSignature_ExtendedSignature(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getInheritedParameters Inherited Parameter}'. + * + * + * @return the meta object for the reference list 'Inherited Parameter'. + * @see org.eclipse.uml2.uml.RedefinableTemplateSignature#getInheritedParameters() + * @see #getRedefinableTemplateSignature() + * @generated + */ + EReference getRedefinableTemplateSignature_InheritedParameter(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature#getClassifier Classifier}'. + * + * + * @return the meta object for the container reference 'Classifier'. + * @see org.eclipse.uml2.uml.RedefinableTemplateSignature#getClassifier() + * @see #getRedefinableTemplateSignature() + * @generated + */ + EReference getRedefinableTemplateSignature_Classifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter Classifier Template Parameter}'. + * + * + * @return the meta object for class 'Classifier Template Parameter'. + * @see org.eclipse.uml2.uml.ClassifierTemplateParameter + * @generated + */ + EClass getClassifierTemplateParameter(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter#isAllowSubstitutable Allow Substitutable}'. + * + * + * @return the meta object for the attribute 'Allow Substitutable'. + * @see org.eclipse.uml2.uml.ClassifierTemplateParameter#isAllowSubstitutable() + * @see #getClassifierTemplateParameter() + * @generated + */ + EAttribute getClassifierTemplateParameter_AllowSubstitutable(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter#getDefaultClassifier Default Classifier}'. + * + * + * @return the meta object for the reference 'Default Classifier'. + * @see org.eclipse.uml2.uml.ClassifierTemplateParameter#getDefaultClassifier() + * @see #getClassifierTemplateParameter() + * @generated + */ + EReference getClassifierTemplateParameter_DefaultClassifier(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter#getConstrainingClassifier Constraining Classifier}'. + * + * + * @return the meta object for the reference 'Constraining Classifier'. + * @see org.eclipse.uml2.uml.ClassifierTemplateParameter#getConstrainingClassifier() + * @see #getClassifierTemplateParameter() + * @generated + */ + EReference getClassifierTemplateParameter_ConstrainingClassifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InterfaceRealization Interface Realization}'. + * + * + * @return the meta object for class 'Interface Realization'. + * @see org.eclipse.uml2.uml.InterfaceRealization + * @generated + */ + EClass getInterfaceRealization(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.InterfaceRealization#getContract Contract}'. + * + * + * @return the meta object for the reference 'Contract'. + * @see org.eclipse.uml2.uml.InterfaceRealization#getContract() + * @see #getInterfaceRealization() + * @generated + */ + EReference getInterfaceRealization_Contract(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.InterfaceRealization#getImplementingClassifier Implementing Classifier}'. + * + * + * @return the meta object for the container reference 'Implementing Classifier'. + * @see org.eclipse.uml2.uml.InterfaceRealization#getImplementingClassifier() + * @see #getInterfaceRealization() + * @generated + */ + EReference getInterfaceRealization_ImplementingClassifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.EncapsulatedClassifier Encapsulated Classifier}'. + * + * + * @return the meta object for class 'Encapsulated Classifier'. + * @see org.eclipse.uml2.uml.EncapsulatedClassifier + * @generated + */ + EClass getEncapsulatedClassifier(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.EncapsulatedClassifier#getOwnedPorts Owned Port}'. + * + * + * @return the meta object for the reference list 'Owned Port'. + * @see org.eclipse.uml2.uml.EncapsulatedClassifier#getOwnedPorts() + * @see #getEncapsulatedClassifier() + * @generated + */ + EReference getEncapsulatedClassifier_OwnedPort(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Extension Extension}'. + * + * + * @return the meta object for class 'Extension'. + * @see org.eclipse.uml2.uml.Extension + * @generated + */ + EClass getExtension(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Extension#isRequired Is Required}'. + * + * + * @return the meta object for the attribute 'Is Required'. + * @see org.eclipse.uml2.uml.Extension#isRequired() + * @see #getExtension() + * @generated + */ + EAttribute getExtension_IsRequired(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Extension#getMetaclass Metaclass}'. + * + * + * @return the meta object for the reference 'Metaclass'. + * @see org.eclipse.uml2.uml.Extension#getMetaclass() + * @see #getExtension() + * @generated + */ + EReference getExtension_Metaclass(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExtensionEnd Extension End}'. + * + * + * @return the meta object for class 'Extension End'. + * @see org.eclipse.uml2.uml.ExtensionEnd + * @generated + */ + EClass getExtensionEnd(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Image Image}'. + * + * + * @return the meta object for class 'Image'. + * @see org.eclipse.uml2.uml.Image + * @generated + */ + EClass getImage(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StringExpression String Expression}'. + * + * + * @return the meta object for class 'String Expression'. + * @see org.eclipse.uml2.uml.StringExpression + * @generated + */ + EClass getStringExpression(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StringExpression#getSubExpressions Sub Expression}'. + * + * + * @return the meta object for the containment reference list 'Sub Expression'. + * @see org.eclipse.uml2.uml.StringExpression#getSubExpressions() + * @see #getStringExpression() + * @generated + */ + EReference getStringExpression_SubExpression(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.StringExpression#getOwningExpression Owning Expression}'. + * + * + * @return the meta object for the container reference 'Owning Expression'. + * @see org.eclipse.uml2.uml.StringExpression#getOwningExpression() + * @see #getStringExpression() + * @generated + */ + EReference getStringExpression_OwningExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Expression Expression}'. + * + * + * @return the meta object for class 'Expression'. + * @see org.eclipse.uml2.uml.Expression + * @generated + */ + EClass getExpression(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Expression#getSymbol Symbol}'. + * + * + * @return the meta object for the attribute 'Symbol'. + * @see org.eclipse.uml2.uml.Expression#getSymbol() + * @see #getExpression() + * @generated + */ + EAttribute getExpression_Symbol(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Expression#getOperands Operand}'. + * + * + * @return the meta object for the containment reference list 'Operand'. + * @see org.eclipse.uml2.uml.Expression#getOperands() + * @see #getExpression() + * @generated + */ + EReference getExpression_Operand(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LiteralInteger Literal Integer}'. + * + * + * @return the meta object for class 'Literal Integer'. + * @see org.eclipse.uml2.uml.LiteralInteger + * @generated + */ + EClass getLiteralInteger(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LiteralInteger#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.uml2.uml.LiteralInteger#getValue() + * @see #getLiteralInteger() + * @generated + */ + EAttribute getLiteralInteger_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LiteralString Literal String}'. + * + * + * @return the meta object for class 'Literal String'. + * @see org.eclipse.uml2.uml.LiteralString + * @generated + */ + EClass getLiteralString(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LiteralString#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.uml2.uml.LiteralString#getValue() + * @see #getLiteralString() + * @generated + */ + EAttribute getLiteralString_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LiteralBoolean Literal Boolean}'. + * + * + * @return the meta object for class 'Literal Boolean'. + * @see org.eclipse.uml2.uml.LiteralBoolean + * @generated + */ + EClass getLiteralBoolean(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LiteralBoolean#isValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.uml2.uml.LiteralBoolean#isValue() + * @see #getLiteralBoolean() + * @generated + */ + EAttribute getLiteralBoolean_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LiteralNull Literal Null}'. + * + * + * @return the meta object for class 'Literal Null'. + * @see org.eclipse.uml2.uml.LiteralNull + * @generated + */ + EClass getLiteralNull(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Slot Slot}'. + * + * + * @return the meta object for class 'Slot'. + * @see org.eclipse.uml2.uml.Slot + * @generated + */ + EClass getSlot(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Slot#getOwningInstance Owning Instance}'. + * + * + * @return the meta object for the container reference 'Owning Instance'. + * @see org.eclipse.uml2.uml.Slot#getOwningInstance() + * @see #getSlot() + * @generated + */ + EReference getSlot_OwningInstance(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Slot#getDefiningFeature Defining Feature}'. + * + * + * @return the meta object for the reference 'Defining Feature'. + * @see org.eclipse.uml2.uml.Slot#getDefiningFeature() + * @see #getSlot() + * @generated + */ + EReference getSlot_DefiningFeature(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Slot#getValues Value}'. + * + * + * @return the meta object for the containment reference list 'Value'. + * @see org.eclipse.uml2.uml.Slot#getValues() + * @see #getSlot() + * @generated + */ + EReference getSlot_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InstanceSpecification Instance Specification}'. + * + * + * @return the meta object for class 'Instance Specification'. + * @see org.eclipse.uml2.uml.InstanceSpecification + * @generated + */ + EClass getInstanceSpecification(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InstanceSpecification#getClassifiers Classifier}'. + * + * + * @return the meta object for the reference list 'Classifier'. + * @see org.eclipse.uml2.uml.InstanceSpecification#getClassifiers() + * @see #getInstanceSpecification() + * @generated + */ + EReference getInstanceSpecification_Classifier(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.InstanceSpecification#getSpecification Specification}'. + * + * + * @return the meta object for the containment reference 'Specification'. + * @see org.eclipse.uml2.uml.InstanceSpecification#getSpecification() + * @see #getInstanceSpecification() + * @generated + */ + EReference getInstanceSpecification_Specification(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.InstanceSpecification#getSlots Slot}'. + * + * + * @return the meta object for the containment reference list 'Slot'. + * @see org.eclipse.uml2.uml.InstanceSpecification#getSlots() + * @see #getInstanceSpecification() + * @generated + */ + EReference getInstanceSpecification_Slot(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Enumeration Enumeration}'. + * + * + * @return the meta object for class 'Enumeration'. + * @see org.eclipse.uml2.uml.Enumeration + * @generated + */ + EClass getEnumeration(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Enumeration#getOwnedLiterals Owned Literal}'. + * + * + * @return the meta object for the containment reference list 'Owned Literal'. + * @see org.eclipse.uml2.uml.Enumeration#getOwnedLiterals() + * @see #getEnumeration() + * @generated + */ + EReference getEnumeration_OwnedLiteral(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.EnumerationLiteral Enumeration Literal}'. + * + * + * @return the meta object for class 'Enumeration Literal'. + * @see org.eclipse.uml2.uml.EnumerationLiteral + * @generated + */ + EClass getEnumerationLiteral(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.EnumerationLiteral#getEnumeration Enumeration}'. + * + * + * @return the meta object for the container reference 'Enumeration'. + * @see org.eclipse.uml2.uml.EnumerationLiteral#getEnumeration() + * @see #getEnumerationLiteral() + * @generated + */ + EReference getEnumerationLiteral_Enumeration(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.PrimitiveType Primitive Type}'. + * + * + * @return the meta object for class 'Primitive Type'. + * @see org.eclipse.uml2.uml.PrimitiveType + * @generated + */ + EClass getPrimitiveType(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InstanceValue Instance Value}'. + * + * + * @return the meta object for class 'Instance Value'. + * @see org.eclipse.uml2.uml.InstanceValue + * @generated + */ + EClass getInstanceValue(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.InstanceValue#getInstance Instance}'. + * + * + * @return the meta object for the reference 'Instance'. + * @see org.eclipse.uml2.uml.InstanceValue#getInstance() + * @see #getInstanceValue() + * @generated + */ + EReference getInstanceValue_Instance(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LiteralUnlimitedNatural Literal Unlimited Natural}'. + * + * + * @return the meta object for class 'Literal Unlimited Natural'. + * @see org.eclipse.uml2.uml.LiteralUnlimitedNatural + * @generated + */ + EClass getLiteralUnlimitedNatural(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LiteralUnlimitedNatural#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.uml2.uml.LiteralUnlimitedNatural#getValue() + * @see #getLiteralUnlimitedNatural() + * @generated + */ + EAttribute getLiteralUnlimitedNatural_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.OpaqueBehavior Opaque Behavior}'. + * + * + * @return the meta object for class 'Opaque Behavior'. + * @see org.eclipse.uml2.uml.OpaqueBehavior + * @generated + */ + EClass getOpaqueBehavior(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.uml2.uml.OpaqueBehavior#getBodies Body}'. + * + * + * @return the meta object for the attribute list 'Body'. + * @see org.eclipse.uml2.uml.OpaqueBehavior#getBodies() + * @see #getOpaqueBehavior() + * @generated + */ + EAttribute getOpaqueBehavior_Body(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.uml2.uml.OpaqueBehavior#getLanguages Language}'. + * + * + * @return the meta object for the attribute list 'Language'. + * @see org.eclipse.uml2.uml.OpaqueBehavior#getLanguages() + * @see #getOpaqueBehavior() + * @generated + */ + EAttribute getOpaqueBehavior_Language(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.FunctionBehavior Function Behavior}'. + * + * + * @return the meta object for class 'Function Behavior'. + * @see org.eclipse.uml2.uml.FunctionBehavior + * @generated + */ + EClass getFunctionBehavior(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Actor Actor}'. + * + * + * @return the meta object for class 'Actor'. + * @see org.eclipse.uml2.uml.Actor + * @generated + */ + EClass getActor(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Usage Usage}'. + * + * + * @return the meta object for class 'Usage'. + * @see org.eclipse.uml2.uml.Usage + * @generated + */ + EClass getUsage(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Message Message}'. + * + * + * @return the meta object for class 'Message'. + * @see org.eclipse.uml2.uml.Message + * @generated + */ + EClass getMessage(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Message#getMessageKind Message Kind}'. + * + * + * @return the meta object for the attribute 'Message Kind'. + * @see org.eclipse.uml2.uml.Message#getMessageKind() + * @see #getMessage() + * @generated + */ + EAttribute getMessage_MessageKind(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Message#getMessageSort Message Sort}'. + * + * + * @return the meta object for the attribute 'Message Sort'. + * @see org.eclipse.uml2.uml.Message#getMessageSort() + * @see #getMessage() + * @generated + */ + EAttribute getMessage_MessageSort(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Message#getReceiveEvent Receive Event}'. + * + * + * @return the meta object for the reference 'Receive Event'. + * @see org.eclipse.uml2.uml.Message#getReceiveEvent() + * @see #getMessage() + * @generated + */ + EReference getMessage_ReceiveEvent(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Message#getSendEvent Send Event}'. + * + * + * @return the meta object for the reference 'Send Event'. + * @see org.eclipse.uml2.uml.Message#getSendEvent() + * @see #getMessage() + * @generated + */ + EReference getMessage_SendEvent(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Message#getConnector Connector}'. + * + * + * @return the meta object for the reference 'Connector'. + * @see org.eclipse.uml2.uml.Message#getConnector() + * @see #getMessage() + * @generated + */ + EReference getMessage_Connector(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Message#getInteraction Interaction}'. + * + * + * @return the meta object for the container reference 'Interaction'. + * @see org.eclipse.uml2.uml.Message#getInteraction() + * @see #getMessage() + * @generated + */ + EReference getMessage_Interaction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Message#getArguments Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.eclipse.uml2.uml.Message#getArguments() + * @see #getMessage() + * @generated + */ + EReference getMessage_Argument(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Message#getSignature Signature}'. + * + * + * @return the meta object for the reference 'Signature'. + * @see org.eclipse.uml2.uml.Message#getSignature() + * @see #getMessage() + * @generated + */ + EReference getMessage_Signature(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.MessageEnd Message End}'. + * + * + * @return the meta object for class 'Message End'. + * @see org.eclipse.uml2.uml.MessageEnd + * @generated + */ + EClass getMessageEnd(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.MessageEnd#getMessage Message}'. + * + * + * @return the meta object for the reference 'Message'. + * @see org.eclipse.uml2.uml.MessageEnd#getMessage() + * @see #getMessageEnd() + * @generated + */ + EReference getMessageEnd_Message(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Interaction Interaction}'. + * + * + * @return the meta object for class 'Interaction'. + * @see org.eclipse.uml2.uml.Interaction + * @generated + */ + EClass getInteraction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interaction#getLifelines Lifeline}'. + * + * + * @return the meta object for the containment reference list 'Lifeline'. + * @see org.eclipse.uml2.uml.Interaction#getLifelines() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_Lifeline(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interaction#getFragments Fragment}'. + * + * + * @return the meta object for the containment reference list 'Fragment'. + * @see org.eclipse.uml2.uml.Interaction#getFragments() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_Fragment(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interaction#getActions Action}'. + * + * + * @return the meta object for the containment reference list 'Action'. + * @see org.eclipse.uml2.uml.Interaction#getActions() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_Action(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interaction#getFormalGates Formal Gate}'. + * + * + * @return the meta object for the containment reference list 'Formal Gate'. + * @see org.eclipse.uml2.uml.Interaction#getFormalGates() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_FormalGate(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Interaction#getMessages Message}'. + * + * + * @return the meta object for the containment reference list 'Message'. + * @see org.eclipse.uml2.uml.Interaction#getMessages() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_Message(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InteractionFragment Interaction Fragment}'. + * + * + * @return the meta object for class 'Interaction Fragment'. + * @see org.eclipse.uml2.uml.InteractionFragment + * @generated + */ + EClass getInteractionFragment(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InteractionFragment#getCovereds Covered}'. + * + * + * @return the meta object for the reference list 'Covered'. + * @see org.eclipse.uml2.uml.InteractionFragment#getCovereds() + * @see #getInteractionFragment() + * @generated + */ + EReference getInteractionFragment_Covered(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.InteractionFragment#getGeneralOrderings General Ordering}'. + * + * + * @return the meta object for the containment reference list 'General Ordering'. + * @see org.eclipse.uml2.uml.InteractionFragment#getGeneralOrderings() + * @see #getInteractionFragment() + * @generated + */ + EReference getInteractionFragment_GeneralOrdering(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingInteraction Enclosing Interaction}'. + * + * + * @return the meta object for the container reference 'Enclosing Interaction'. + * @see org.eclipse.uml2.uml.InteractionFragment#getEnclosingInteraction() + * @see #getInteractionFragment() + * @generated + */ + EReference getInteractionFragment_EnclosingInteraction(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.InteractionFragment#getEnclosingOperand Enclosing Operand}'. + * + * + * @return the meta object for the container reference 'Enclosing Operand'. + * @see org.eclipse.uml2.uml.InteractionFragment#getEnclosingOperand() + * @see #getInteractionFragment() + * @generated + */ + EReference getInteractionFragment_EnclosingOperand(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Lifeline Lifeline}'. + * + * + * @return the meta object for class 'Lifeline'. + * @see org.eclipse.uml2.uml.Lifeline + * @generated + */ + EClass getLifeline(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Lifeline#getRepresents Represents}'. + * + * + * @return the meta object for the reference 'Represents'. + * @see org.eclipse.uml2.uml.Lifeline#getRepresents() + * @see #getLifeline() + * @generated + */ + EReference getLifeline_Represents(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Lifeline#getInteraction Interaction}'. + * + * + * @return the meta object for the container reference 'Interaction'. + * @see org.eclipse.uml2.uml.Lifeline#getInteraction() + * @see #getLifeline() + * @generated + */ + EReference getLifeline_Interaction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.Lifeline#getSelector Selector}'. + * + * + * @return the meta object for the containment reference 'Selector'. + * @see org.eclipse.uml2.uml.Lifeline#getSelector() + * @see #getLifeline() + * @generated + */ + EReference getLifeline_Selector(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Lifeline#getDecomposedAs Decomposed As}'. + * + * + * @return the meta object for the reference 'Decomposed As'. + * @see org.eclipse.uml2.uml.Lifeline#getDecomposedAs() + * @see #getLifeline() + * @generated + */ + EReference getLifeline_DecomposedAs(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Lifeline#getCoveredBys Covered By}'. + * + * + * @return the meta object for the reference list 'Covered By'. + * @see org.eclipse.uml2.uml.Lifeline#getCoveredBys() + * @see #getLifeline() + * @generated + */ + EReference getLifeline_CoveredBy(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.PartDecomposition Part Decomposition}'. + * + * + * @return the meta object for class 'Part Decomposition'. + * @see org.eclipse.uml2.uml.PartDecomposition + * @generated + */ + EClass getPartDecomposition(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InteractionUse Interaction Use}'. + * + * + * @return the meta object for class 'Interaction Use'. + * @see org.eclipse.uml2.uml.InteractionUse + * @generated + */ + EClass getInteractionUse(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.InteractionUse#getRefersTo Refers To}'. + * + * + * @return the meta object for the reference 'Refers To'. + * @see org.eclipse.uml2.uml.InteractionUse#getRefersTo() + * @see #getInteractionUse() + * @generated + */ + EReference getInteractionUse_RefersTo(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.InteractionUse#getActualGates Actual Gate}'. + * + * + * @return the meta object for the containment reference list 'Actual Gate'. + * @see org.eclipse.uml2.uml.InteractionUse#getActualGates() + * @see #getInteractionUse() + * @generated + */ + EReference getInteractionUse_ActualGate(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.InteractionUse#getArguments Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.eclipse.uml2.uml.InteractionUse#getArguments() + * @see #getInteractionUse() + * @generated + */ + EReference getInteractionUse_Argument(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Gate Gate}'. + * + * + * @return the meta object for class 'Gate'. + * @see org.eclipse.uml2.uml.Gate + * @generated + */ + EClass getGate(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Action Action}'. + * + * + * @return the meta object for class 'Action'. + * @see org.eclipse.uml2.uml.Action + * @generated + */ + EClass getAction(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Action#getOutputs Output}'. + * + * + * @return the meta object for the reference list 'Output'. + * @see org.eclipse.uml2.uml.Action#getOutputs() + * @see #getAction() + * @generated + */ + EReference getAction_Output(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Action#getInputs Input}'. + * + * + * @return the meta object for the reference list 'Input'. + * @see org.eclipse.uml2.uml.Action#getInputs() + * @see #getAction() + * @generated + */ + EReference getAction_Input(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Action#getContext Context}'. + * + * + * @return the meta object for the reference 'Context'. + * @see org.eclipse.uml2.uml.Action#getContext() + * @see #getAction() + * @generated + */ + EReference getAction_Context(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Action#getLocalPreconditions Local Precondition}'. + * + * + * @return the meta object for the containment reference list 'Local Precondition'. + * @see org.eclipse.uml2.uml.Action#getLocalPreconditions() + * @see #getAction() + * @generated + */ + EReference getAction_LocalPrecondition(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Action#getLocalPostconditions Local Postcondition}'. + * + * + * @return the meta object for the containment reference list 'Local Postcondition'. + * @see org.eclipse.uml2.uml.Action#getLocalPostconditions() + * @see #getAction() + * @generated + */ + EReference getAction_LocalPostcondition(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExecutableNode Executable Node}'. + * + * + * @return the meta object for class 'Executable Node'. + * @see org.eclipse.uml2.uml.ExecutableNode + * @generated + */ + EClass getExecutableNode(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ExecutableNode#getHandlers Handler}'. + * + * + * @return the meta object for the containment reference list 'Handler'. + * @see org.eclipse.uml2.uml.ExecutableNode#getHandlers() + * @see #getExecutableNode() + * @generated + */ + EReference getExecutableNode_Handler(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActivityNode Activity Node}'. + * + * + * @return the meta object for class 'Activity Node'. + * @see org.eclipse.uml2.uml.ActivityNode + * @generated + */ + EClass getActivityNode(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityNode#getOutgoings Outgoing}'. + * + * + * @return the meta object for the reference list 'Outgoing'. + * @see org.eclipse.uml2.uml.ActivityNode#getOutgoings() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_Outgoing(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityNode#getInGroups In Group}'. + * + * + * @return the meta object for the reference list 'In Group'. + * @see org.eclipse.uml2.uml.ActivityNode#getInGroups() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_InGroup(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityNode#getInPartitions In Partition}'. + * + * + * @return the meta object for the reference list 'In Partition'. + * @see org.eclipse.uml2.uml.ActivityNode#getInPartitions() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_InPartition(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityNode#getInStructuredNode In Structured Node}'. + * + * + * @return the meta object for the container reference 'In Structured Node'. + * @see org.eclipse.uml2.uml.ActivityNode#getInStructuredNode() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_InStructuredNode(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityNode#getActivity Activity}'. + * + * + * @return the meta object for the container reference 'Activity'. + * @see org.eclipse.uml2.uml.ActivityNode#getActivity() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_Activity(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityNode#getIncomings Incoming}'. + * + * + * @return the meta object for the reference list 'Incoming'. + * @see org.eclipse.uml2.uml.ActivityNode#getIncomings() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_Incoming(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityNode#getInInterruptibleRegions In Interruptible Region}'. + * + * + * @return the meta object for the reference list 'In Interruptible Region'. + * @see org.eclipse.uml2.uml.ActivityNode#getInInterruptibleRegions() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_InInterruptibleRegion(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityNode#getRedefinedNodes Redefined Node}'. + * + * + * @return the meta object for the reference list 'Redefined Node'. + * @see org.eclipse.uml2.uml.ActivityNode#getRedefinedNodes() + * @see #getActivityNode() + * @generated + */ + EReference getActivityNode_RedefinedNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActivityEdge Activity Edge}'. + * + * + * @return the meta object for class 'Activity Edge'. + * @see org.eclipse.uml2.uml.ActivityEdge + * @generated + */ + EClass getActivityEdge(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityEdge#getActivity Activity}'. + * + * + * @return the meta object for the container reference 'Activity'. + * @see org.eclipse.uml2.uml.ActivityEdge#getActivity() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_Activity(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityEdge#getInGroups In Group}'. + * + * + * @return the meta object for the reference list 'In Group'. + * @see org.eclipse.uml2.uml.ActivityEdge#getInGroups() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_InGroup(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityEdge#getInPartitions In Partition}'. + * + * + * @return the meta object for the reference list 'In Partition'. + * @see org.eclipse.uml2.uml.ActivityEdge#getInPartitions() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_InPartition(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode In Structured Node}'. + * + * + * @return the meta object for the container reference 'In Structured Node'. + * @see org.eclipse.uml2.uml.ActivityEdge#getInStructuredNode() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_InStructuredNode(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityEdge#getTarget Target}'. + * + * + * @return the meta object for the reference 'Target'. + * @see org.eclipse.uml2.uml.ActivityEdge#getTarget() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_Target(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityEdge#getRedefinedEdges Redefined Edge}'. + * + * + * @return the meta object for the reference list 'Redefined Edge'. + * @see org.eclipse.uml2.uml.ActivityEdge#getRedefinedEdges() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_RedefinedEdge(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ActivityEdge#getGuard Guard}'. + * + * + * @return the meta object for the containment reference 'Guard'. + * @see org.eclipse.uml2.uml.ActivityEdge#getGuard() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_Guard(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ActivityEdge#getWeight Weight}'. + * + * + * @return the meta object for the containment reference 'Weight'. + * @see org.eclipse.uml2.uml.ActivityEdge#getWeight() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_Weight(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityEdge#getInterrupts Interrupts}'. + * + * + * @return the meta object for the reference 'Interrupts'. + * @see org.eclipse.uml2.uml.ActivityEdge#getInterrupts() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_Interrupts(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityEdge#getSource Source}'. + * + * + * @return the meta object for the reference 'Source'. + * @see org.eclipse.uml2.uml.ActivityEdge#getSource() + * @see #getActivityEdge() + * @generated + */ + EReference getActivityEdge_Source(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Activity Activity}'. + * + * + * @return the meta object for class 'Activity'. + * @see org.eclipse.uml2.uml.Activity + * @generated + */ + EClass getActivity(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Activity#isReadOnly Is Read Only}'. + * + * + * @return the meta object for the attribute 'Is Read Only'. + * @see org.eclipse.uml2.uml.Activity#isReadOnly() + * @see #getActivity() + * @generated + */ + EAttribute getActivity_IsReadOnly(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Activity#getPartition Partition}'. + * + * + * @return the meta object for the reference 'Partition'. + * @see org.eclipse.uml2.uml.Activity#getPartition() + * @see #getActivity() + * @generated + */ + EReference getActivity_Partition(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getGroups Group}'. + * + * + * @return the meta object for the containment reference list 'Group'. + * @see org.eclipse.uml2.uml.Activity#getGroups() + * @see #getActivity() + * @generated + */ + EReference getActivity_Group(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Activity#isSingleExecution Is Single Execution}'. + * + * + * @return the meta object for the attribute 'Is Single Execution'. + * @see org.eclipse.uml2.uml.Activity#isSingleExecution() + * @see #getActivity() + * @generated + */ + EAttribute getActivity_IsSingleExecution(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Activity#getStructuredNodes Structured Node}'. + * + * + * @return the meta object for the reference list 'Structured Node'. + * @see org.eclipse.uml2.uml.Activity#getStructuredNodes() + * @see #getActivity() + * @generated + */ + EReference getActivity_StructuredNode(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getVariables Variable}'. + * + * + * @return the meta object for the containment reference list 'Variable'. + * @see org.eclipse.uml2.uml.Activity#getVariables() + * @see #getActivity() + * @generated + */ + EReference getActivity_Variable(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getNodes Node}'. + * + * + * @return the meta object for the containment reference list 'Node'. + * @see org.eclipse.uml2.uml.Activity#getNodes() + * @see #getActivity() + * @generated + */ + EReference getActivity_Node(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Activity#getEdges Edge}'. + * + * + * @return the meta object for the containment reference list 'Edge'. + * @see org.eclipse.uml2.uml.Activity#getEdges() + * @see #getActivity() + * @generated + */ + EReference getActivity_Edge(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActivityPartition Activity Partition}'. + * + * + * @return the meta object for class 'Activity Partition'. + * @see org.eclipse.uml2.uml.ActivityPartition + * @generated + */ + EClass getActivityPartition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ActivityPartition#isDimension Is Dimension}'. + * + * + * @return the meta object for the attribute 'Is Dimension'. + * @see org.eclipse.uml2.uml.ActivityPartition#isDimension() + * @see #getActivityPartition() + * @generated + */ + EAttribute getActivityPartition_IsDimension(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ActivityPartition#isExternal Is External}'. + * + * + * @return the meta object for the attribute 'Is External'. + * @see org.eclipse.uml2.uml.ActivityPartition#isExternal() + * @see #getActivityPartition() + * @generated + */ + EAttribute getActivityPartition_IsExternal(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityPartition#getEdges Edge}'. + * + * + * @return the meta object for the reference list 'Edge'. + * @see org.eclipse.uml2.uml.ActivityPartition#getEdges() + * @see #getActivityPartition() + * @generated + */ + EReference getActivityPartition_Edge(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityPartition#getNodes Node}'. + * + * + * @return the meta object for the reference list 'Node'. + * @see org.eclipse.uml2.uml.ActivityPartition#getNodes() + * @see #getActivityPartition() + * @generated + */ + EReference getActivityPartition_Node(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ActivityPartition#getSubpartitions Subpartition}'. + * + * + * @return the meta object for the containment reference list 'Subpartition'. + * @see org.eclipse.uml2.uml.ActivityPartition#getSubpartitions() + * @see #getActivityPartition() + * @generated + */ + EReference getActivityPartition_Subpartition(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityPartition#getSuperPartition Super Partition}'. + * + * + * @return the meta object for the container reference 'Super Partition'. + * @see org.eclipse.uml2.uml.ActivityPartition#getSuperPartition() + * @see #getActivityPartition() + * @generated + */ + EReference getActivityPartition_SuperPartition(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityPartition#getRepresents Represents}'. + * + * + * @return the meta object for the reference 'Represents'. + * @see org.eclipse.uml2.uml.ActivityPartition#getRepresents() + * @see #getActivityPartition() + * @generated + */ + EReference getActivityPartition_Represents(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActivityGroup Activity Group}'. + * + * + * @return the meta object for class 'Activity Group'. + * @see org.eclipse.uml2.uml.ActivityGroup + * @generated + */ + EClass getActivityGroup(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityGroup#getSubgroups Subgroup}'. + * + * + * @return the meta object for the reference list 'Subgroup'. + * @see org.eclipse.uml2.uml.ActivityGroup#getSubgroups() + * @see #getActivityGroup() + * @generated + */ + EReference getActivityGroup_Subgroup(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityGroup#getSuperGroup Super Group}'. + * + * + * @return the meta object for the reference 'Super Group'. + * @see org.eclipse.uml2.uml.ActivityGroup#getSuperGroup() + * @see #getActivityGroup() + * @generated + */ + EReference getActivityGroup_SuperGroup(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityGroup#getContainedNodes Contained Node}'. + * + * + * @return the meta object for the reference list 'Contained Node'. + * @see org.eclipse.uml2.uml.ActivityGroup#getContainedNodes() + * @see #getActivityGroup() + * @generated + */ + EReference getActivityGroup_ContainedNode(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ActivityGroup#getInActivity In Activity}'. + * + * + * @return the meta object for the container reference 'In Activity'. + * @see org.eclipse.uml2.uml.ActivityGroup#getInActivity() + * @see #getActivityGroup() + * @generated + */ + EReference getActivityGroup_InActivity(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ActivityGroup#getContainedEdges Contained Edge}'. + * + * + * @return the meta object for the reference list 'Contained Edge'. + * @see org.eclipse.uml2.uml.ActivityGroup#getContainedEdges() + * @see #getActivityGroup() + * @generated + */ + EReference getActivityGroup_ContainedEdge(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StructuredActivityNode Structured Activity Node}'. + * + * + * @return the meta object for class 'Structured Activity Node'. + * @see org.eclipse.uml2.uml.StructuredActivityNode + * @generated + */ + EClass getStructuredActivityNode(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StructuredActivityNode#getVariables Variable}'. + * + * + * @return the meta object for the containment reference list 'Variable'. + * @see org.eclipse.uml2.uml.StructuredActivityNode#getVariables() + * @see #getStructuredActivityNode() + * @generated + */ + EReference getStructuredActivityNode_Variable(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StructuredActivityNode#getNodes Node}'. + * + * + * @return the meta object for the containment reference list 'Node'. + * @see org.eclipse.uml2.uml.StructuredActivityNode#getNodes() + * @see #getStructuredActivityNode() + * @generated + */ + EReference getStructuredActivityNode_Node(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.StructuredActivityNode#isMustIsolate Must Isolate}'. + * + * + * @return the meta object for the attribute 'Must Isolate'. + * @see org.eclipse.uml2.uml.StructuredActivityNode#isMustIsolate() + * @see #getStructuredActivityNode() + * @generated + */ + EAttribute getStructuredActivityNode_MustIsolate(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.StructuredActivityNode#getEdges Edge}'. + * + * + * @return the meta object for the containment reference list 'Edge'. + * @see org.eclipse.uml2.uml.StructuredActivityNode#getEdges() + * @see #getStructuredActivityNode() + * @generated + */ + EReference getStructuredActivityNode_Edge(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Variable Variable}'. + * + * + * @return the meta object for class 'Variable'. + * @see org.eclipse.uml2.uml.Variable + * @generated + */ + EClass getVariable(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Variable#getActivityScope Activity Scope}'. + * + * + * @return the meta object for the container reference 'Activity Scope'. + * @see org.eclipse.uml2.uml.Variable#getActivityScope() + * @see #getVariable() + * @generated + */ + EReference getVariable_ActivityScope(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.Variable#getScope Scope}'. + * + * + * @return the meta object for the container reference 'Scope'. + * @see org.eclipse.uml2.uml.Variable#getScope() + * @see #getVariable() + * @generated + */ + EReference getVariable_Scope(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InterruptibleActivityRegion Interruptible Activity Region}'. + * + * + * @return the meta object for class 'Interruptible Activity Region'. + * @see org.eclipse.uml2.uml.InterruptibleActivityRegion + * @generated + */ + EClass getInterruptibleActivityRegion(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InterruptibleActivityRegion#getNodes Node}'. + * + * + * @return the meta object for the reference list 'Node'. + * @see org.eclipse.uml2.uml.InterruptibleActivityRegion#getNodes() + * @see #getInterruptibleActivityRegion() + * @generated + */ + EReference getInterruptibleActivityRegion_Node(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InterruptibleActivityRegion#getInterruptingEdges Interrupting Edge}'. + * + * + * @return the meta object for the reference list 'Interrupting Edge'. + * @see org.eclipse.uml2.uml.InterruptibleActivityRegion#getInterruptingEdges() + * @see #getInterruptibleActivityRegion() + * @generated + */ + EReference getInterruptibleActivityRegion_InterruptingEdge(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExceptionHandler Exception Handler}'. + * + * + * @return the meta object for class 'Exception Handler'. + * @see org.eclipse.uml2.uml.ExceptionHandler + * @generated + */ + EClass getExceptionHandler(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExceptionHandler#getHandlerBody Handler Body}'. + * + * + * @return the meta object for the reference 'Handler Body'. + * @see org.eclipse.uml2.uml.ExceptionHandler#getHandlerBody() + * @see #getExceptionHandler() + * @generated + */ + EReference getExceptionHandler_HandlerBody(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExceptionHandler#getExceptionInput Exception Input}'. + * + * + * @return the meta object for the reference 'Exception Input'. + * @see org.eclipse.uml2.uml.ExceptionHandler#getExceptionInput() + * @see #getExceptionHandler() + * @generated + */ + EReference getExceptionHandler_ExceptionInput(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ExceptionHandler#getExceptionTypes Exception Type}'. + * + * + * @return the meta object for the reference list 'Exception Type'. + * @see org.eclipse.uml2.uml.ExceptionHandler#getExceptionTypes() + * @see #getExceptionHandler() + * @generated + */ + EReference getExceptionHandler_ExceptionType(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ExceptionHandler#getProtectedNode Protected Node}'. + * + * + * @return the meta object for the container reference 'Protected Node'. + * @see org.eclipse.uml2.uml.ExceptionHandler#getProtectedNode() + * @see #getExceptionHandler() + * @generated + */ + EReference getExceptionHandler_ProtectedNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ObjectNode Object Node}'. + * + * + * @return the meta object for class 'Object Node'. + * @see org.eclipse.uml2.uml.ObjectNode + * @generated + */ + EClass getObjectNode(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ObjectNode#getOrdering Ordering}'. + * + * + * @return the meta object for the attribute 'Ordering'. + * @see org.eclipse.uml2.uml.ObjectNode#getOrdering() + * @see #getObjectNode() + * @generated + */ + EAttribute getObjectNode_Ordering(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ObjectNode#isControlType Is Control Type}'. + * + * + * @return the meta object for the attribute 'Is Control Type'. + * @see org.eclipse.uml2.uml.ObjectNode#isControlType() + * @see #getObjectNode() + * @generated + */ + EAttribute getObjectNode_IsControlType(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ObjectNode#getUpperBound Upper Bound}'. + * + * + * @return the meta object for the containment reference 'Upper Bound'. + * @see org.eclipse.uml2.uml.ObjectNode#getUpperBound() + * @see #getObjectNode() + * @generated + */ + EReference getObjectNode_UpperBound(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ObjectNode#getInStates In State}'. + * + * + * @return the meta object for the reference list 'In State'. + * @see org.eclipse.uml2.uml.ObjectNode#getInStates() + * @see #getObjectNode() + * @generated + */ + EReference getObjectNode_InState(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ObjectNode#getSelection Selection}'. + * + * + * @return the meta object for the reference 'Selection'. + * @see org.eclipse.uml2.uml.ObjectNode#getSelection() + * @see #getObjectNode() + * @generated + */ + EReference getObjectNode_Selection(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.OutputPin Output Pin}'. + * + * + * @return the meta object for class 'Output Pin'. + * @see org.eclipse.uml2.uml.OutputPin + * @generated + */ + EClass getOutputPin(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Pin Pin}'. + * + * + * @return the meta object for class 'Pin'. + * @see org.eclipse.uml2.uml.Pin + * @generated + */ + EClass getPin(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Pin#isControl Is Control}'. + * + * + * @return the meta object for the attribute 'Is Control'. + * @see org.eclipse.uml2.uml.Pin#isControl() + * @see #getPin() + * @generated + */ + EAttribute getPin_IsControl(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InputPin Input Pin}'. + * + * + * @return the meta object for class 'Input Pin'. + * @see org.eclipse.uml2.uml.InputPin + * @generated + */ + EClass getInputPin(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.GeneralOrdering General Ordering}'. + * + * + * @return the meta object for class 'General Ordering'. + * @see org.eclipse.uml2.uml.GeneralOrdering + * @generated + */ + EClass getGeneralOrdering(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.GeneralOrdering#getBefore Before}'. + * + * + * @return the meta object for the reference 'Before'. + * @see org.eclipse.uml2.uml.GeneralOrdering#getBefore() + * @see #getGeneralOrdering() + * @generated + */ + EReference getGeneralOrdering_Before(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.GeneralOrdering#getAfter After}'. + * + * + * @return the meta object for the reference 'After'. + * @see org.eclipse.uml2.uml.GeneralOrdering#getAfter() + * @see #getGeneralOrdering() + * @generated + */ + EReference getGeneralOrdering_After(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.OccurrenceSpecification Occurrence Specification}'. + * + * + * @return the meta object for class 'Occurrence Specification'. + * @see org.eclipse.uml2.uml.OccurrenceSpecification + * @generated + */ + EClass getOccurrenceSpecification(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.OccurrenceSpecification#getToBefores To Before}'. + * + * + * @return the meta object for the reference list 'To Before'. + * @see org.eclipse.uml2.uml.OccurrenceSpecification#getToBefores() + * @see #getOccurrenceSpecification() + * @generated + */ + EReference getOccurrenceSpecification_ToBefore(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.OccurrenceSpecification#getEvent Event}'. + * + * + * @return the meta object for the reference 'Event'. + * @see org.eclipse.uml2.uml.OccurrenceSpecification#getEvent() + * @see #getOccurrenceSpecification() + * @generated + */ + EReference getOccurrenceSpecification_Event(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.OccurrenceSpecification#getToAfters To After}'. + * + * + * @return the meta object for the reference list 'To After'. + * @see org.eclipse.uml2.uml.OccurrenceSpecification#getToAfters() + * @see #getOccurrenceSpecification() + * @generated + */ + EReference getOccurrenceSpecification_ToAfter(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InteractionOperand Interaction Operand}'. + * + * + * @return the meta object for class 'Interaction Operand'. + * @see org.eclipse.uml2.uml.InteractionOperand + * @generated + */ + EClass getInteractionOperand(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.InteractionOperand#getGuard Guard}'. + * + * + * @return the meta object for the containment reference 'Guard'. + * @see org.eclipse.uml2.uml.InteractionOperand#getGuard() + * @see #getInteractionOperand() + * @generated + */ + EReference getInteractionOperand_Guard(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.InteractionOperand#getFragments Fragment}'. + * + * + * @return the meta object for the containment reference list 'Fragment'. + * @see org.eclipse.uml2.uml.InteractionOperand#getFragments() + * @see #getInteractionOperand() + * @generated + */ + EReference getInteractionOperand_Fragment(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InteractionConstraint Interaction Constraint}'. + * + * + * @return the meta object for class 'Interaction Constraint'. + * @see org.eclipse.uml2.uml.InteractionConstraint + * @generated + */ + EClass getInteractionConstraint(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.InteractionConstraint#getMinint Minint}'. + * + * + * @return the meta object for the containment reference 'Minint'. + * @see org.eclipse.uml2.uml.InteractionConstraint#getMinint() + * @see #getInteractionConstraint() + * @generated + */ + EReference getInteractionConstraint_Minint(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.InteractionConstraint#getMaxint Maxint}'. + * + * + * @return the meta object for the containment reference 'Maxint'. + * @see org.eclipse.uml2.uml.InteractionConstraint#getMaxint() + * @see #getInteractionConstraint() + * @generated + */ + EReference getInteractionConstraint_Maxint(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExecutionSpecification Execution Specification}'. + * + * + * @return the meta object for class 'Execution Specification'. + * @see org.eclipse.uml2.uml.ExecutionSpecification + * @generated + */ + EClass getExecutionSpecification(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExecutionSpecification#getStart Start}'. + * + * + * @return the meta object for the reference 'Start'. + * @see org.eclipse.uml2.uml.ExecutionSpecification#getStart() + * @see #getExecutionSpecification() + * @generated + */ + EReference getExecutionSpecification_Start(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExecutionSpecification#getFinish Finish}'. + * + * + * @return the meta object for the reference 'Finish'. + * @see org.eclipse.uml2.uml.ExecutionSpecification#getFinish() + * @see #getExecutionSpecification() + * @generated + */ + EReference getExecutionSpecification_Finish(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExecutionOccurrenceSpecification Execution Occurrence Specification}'. + * + * + * @return the meta object for class 'Execution Occurrence Specification'. + * @see org.eclipse.uml2.uml.ExecutionOccurrenceSpecification + * @generated + */ + EClass getExecutionOccurrenceSpecification(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExecutionOccurrenceSpecification#getExecution Execution}'. + * + * + * @return the meta object for the reference 'Execution'. + * @see org.eclipse.uml2.uml.ExecutionOccurrenceSpecification#getExecution() + * @see #getExecutionOccurrenceSpecification() + * @generated + */ + EReference getExecutionOccurrenceSpecification_Execution(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExecutionEvent Execution Event}'. + * + * + * @return the meta object for class 'Execution Event'. + * @see org.eclipse.uml2.uml.ExecutionEvent + * @generated + */ + EClass getExecutionEvent(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StateInvariant State Invariant}'. + * + * + * @return the meta object for class 'State Invariant'. + * @see org.eclipse.uml2.uml.StateInvariant + * @generated + */ + EClass getStateInvariant(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.StateInvariant#getInvariant Invariant}'. + * + * + * @return the meta object for the containment reference 'Invariant'. + * @see org.eclipse.uml2.uml.StateInvariant#getInvariant() + * @see #getStateInvariant() + * @generated + */ + EReference getStateInvariant_Invariant(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActionExecutionSpecification Action Execution Specification}'. + * + * + * @return the meta object for class 'Action Execution Specification'. + * @see org.eclipse.uml2.uml.ActionExecutionSpecification + * @generated + */ + EClass getActionExecutionSpecification(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActionExecutionSpecification#getAction Action}'. + * + * + * @return the meta object for the reference 'Action'. + * @see org.eclipse.uml2.uml.ActionExecutionSpecification#getAction() + * @see #getActionExecutionSpecification() + * @generated + */ + EReference getActionExecutionSpecification_Action(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.BehaviorExecutionSpecification Behavior Execution Specification}'. + * + * + * @return the meta object for class 'Behavior Execution Specification'. + * @see org.eclipse.uml2.uml.BehaviorExecutionSpecification + * @generated + */ + EClass getBehaviorExecutionSpecification(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.BehaviorExecutionSpecification#getBehavior Behavior}'. + * + * + * @return the meta object for the reference 'Behavior'. + * @see org.eclipse.uml2.uml.BehaviorExecutionSpecification#getBehavior() + * @see #getBehaviorExecutionSpecification() + * @generated + */ + EReference getBehaviorExecutionSpecification_Behavior(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CreationEvent Creation Event}'. + * + * + * @return the meta object for class 'Creation Event'. + * @see org.eclipse.uml2.uml.CreationEvent + * @generated + */ + EClass getCreationEvent(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DestructionEvent Destruction Event}'. + * + * + * @return the meta object for class 'Destruction Event'. + * @see org.eclipse.uml2.uml.DestructionEvent + * @generated + */ + EClass getDestructionEvent(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.SendOperationEvent Send Operation Event}'. + * + * + * @return the meta object for class 'Send Operation Event'. + * @see org.eclipse.uml2.uml.SendOperationEvent + * @generated + */ + EClass getSendOperationEvent(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.SendOperationEvent#getOperation Operation}'. + * + * + * @return the meta object for the reference 'Operation'. + * @see org.eclipse.uml2.uml.SendOperationEvent#getOperation() + * @see #getSendOperationEvent() + * @generated + */ + EReference getSendOperationEvent_Operation(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.MessageEvent Message Event}'. + * + * + * @return the meta object for class 'Message Event'. + * @see org.eclipse.uml2.uml.MessageEvent + * @generated + */ + EClass getMessageEvent(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.SendSignalEvent Send Signal Event}'. + * + * + * @return the meta object for class 'Send Signal Event'. + * @see org.eclipse.uml2.uml.SendSignalEvent + * @generated + */ + EClass getSendSignalEvent(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.SendSignalEvent#getSignal Signal}'. + * + * + * @return the meta object for the reference 'Signal'. + * @see org.eclipse.uml2.uml.SendSignalEvent#getSignal() + * @see #getSendSignalEvent() + * @generated + */ + EReference getSendSignalEvent_Signal(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.MessageOccurrenceSpecification Message Occurrence Specification}'. + * + * + * @return the meta object for class 'Message Occurrence Specification'. + * @see org.eclipse.uml2.uml.MessageOccurrenceSpecification + * @generated + */ + EClass getMessageOccurrenceSpecification(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CombinedFragment Combined Fragment}'. + * + * + * @return the meta object for class 'Combined Fragment'. + * @see org.eclipse.uml2.uml.CombinedFragment + * @generated + */ + EClass getCombinedFragment(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.CombinedFragment#getInteractionOperator Interaction Operator}'. + * + * + * @return the meta object for the attribute 'Interaction Operator'. + * @see org.eclipse.uml2.uml.CombinedFragment#getInteractionOperator() + * @see #getCombinedFragment() + * @generated + */ + EAttribute getCombinedFragment_InteractionOperator(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.CombinedFragment#getOperands Operand}'. + * + * + * @return the meta object for the containment reference list 'Operand'. + * @see org.eclipse.uml2.uml.CombinedFragment#getOperands() + * @see #getCombinedFragment() + * @generated + */ + EReference getCombinedFragment_Operand(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.CombinedFragment#getCfragmentGates Cfragment Gate}'. + * + * + * @return the meta object for the containment reference list 'Cfragment Gate'. + * @see org.eclipse.uml2.uml.CombinedFragment#getCfragmentGates() + * @see #getCombinedFragment() + * @generated + */ + EReference getCombinedFragment_CfragmentGate(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Continuation Continuation}'. + * + * + * @return the meta object for class 'Continuation'. + * @see org.eclipse.uml2.uml.Continuation + * @generated + */ + EClass getContinuation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Continuation#isSetting Setting}'. + * + * + * @return the meta object for the attribute 'Setting'. + * @see org.eclipse.uml2.uml.Continuation#isSetting() + * @see #getContinuation() + * @generated + */ + EAttribute getContinuation_Setting(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment Consider Ignore Fragment}'. + * + * + * @return the meta object for class 'Consider Ignore Fragment'. + * @see org.eclipse.uml2.uml.ConsiderIgnoreFragment + * @generated + */ + EClass getConsiderIgnoreFragment(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#getMessages Message}'. + * + * + * @return the meta object for the reference list 'Message'. + * @see org.eclipse.uml2.uml.ConsiderIgnoreFragment#getMessages() + * @see #getConsiderIgnoreFragment() + * @generated + */ + EReference getConsiderIgnoreFragment_Message(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CallEvent Call Event}'. + * + * + * @return the meta object for class 'Call Event'. + * @see org.eclipse.uml2.uml.CallEvent + * @generated + */ + EClass getCallEvent(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.CallEvent#getOperation Operation}'. + * + * + * @return the meta object for the reference 'Operation'. + * @see org.eclipse.uml2.uml.CallEvent#getOperation() + * @see #getCallEvent() + * @generated + */ + EReference getCallEvent_Operation(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ChangeEvent Change Event}'. + * + * + * @return the meta object for class 'Change Event'. + * @see org.eclipse.uml2.uml.ChangeEvent + * @generated + */ + EClass getChangeEvent(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ChangeEvent#getChangeExpression Change Expression}'. + * + * + * @return the meta object for the containment reference 'Change Expression'. + * @see org.eclipse.uml2.uml.ChangeEvent#getChangeExpression() + * @see #getChangeEvent() + * @generated + */ + EReference getChangeEvent_ChangeExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.SignalEvent Signal Event}'. + * + * + * @return the meta object for class 'Signal Event'. + * @see org.eclipse.uml2.uml.SignalEvent + * @generated + */ + EClass getSignalEvent(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.SignalEvent#getSignal Signal}'. + * + * + * @return the meta object for the reference 'Signal'. + * @see org.eclipse.uml2.uml.SignalEvent#getSignal() + * @see #getSignalEvent() + * @generated + */ + EReference getSignalEvent_Signal(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.AnyReceiveEvent Any Receive Event}'. + * + * + * @return the meta object for class 'Any Receive Event'. + * @see org.eclipse.uml2.uml.AnyReceiveEvent + * @generated + */ + EClass getAnyReceiveEvent(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CreateObjectAction Create Object Action}'. + * + * + * @return the meta object for class 'Create Object Action'. + * @see org.eclipse.uml2.uml.CreateObjectAction + * @generated + */ + EClass getCreateObjectAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.CreateObjectAction#getClassifier Classifier}'. + * + * + * @return the meta object for the reference 'Classifier'. + * @see org.eclipse.uml2.uml.CreateObjectAction#getClassifier() + * @see #getCreateObjectAction() + * @generated + */ + EReference getCreateObjectAction_Classifier(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.CreateObjectAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.CreateObjectAction#getResult() + * @see #getCreateObjectAction() + * @generated + */ + EReference getCreateObjectAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DestroyObjectAction Destroy Object Action}'. + * + * + * @return the meta object for class 'Destroy Object Action'. + * @see org.eclipse.uml2.uml.DestroyObjectAction + * @generated + */ + EClass getDestroyObjectAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.DestroyObjectAction#isDestroyLinks Is Destroy Links}'. + * + * + * @return the meta object for the attribute 'Is Destroy Links'. + * @see org.eclipse.uml2.uml.DestroyObjectAction#isDestroyLinks() + * @see #getDestroyObjectAction() + * @generated + */ + EAttribute getDestroyObjectAction_IsDestroyLinks(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.DestroyObjectAction#isDestroyOwnedObjects Is Destroy Owned Objects}'. + * + * + * @return the meta object for the attribute 'Is Destroy Owned Objects'. + * @see org.eclipse.uml2.uml.DestroyObjectAction#isDestroyOwnedObjects() + * @see #getDestroyObjectAction() + * @generated + */ + EAttribute getDestroyObjectAction_IsDestroyOwnedObjects(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.DestroyObjectAction#getTarget Target}'. + * + * + * @return the meta object for the containment reference 'Target'. + * @see org.eclipse.uml2.uml.DestroyObjectAction#getTarget() + * @see #getDestroyObjectAction() + * @generated + */ + EReference getDestroyObjectAction_Target(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TestIdentityAction Test Identity Action}'. + * + * + * @return the meta object for class 'Test Identity Action'. + * @see org.eclipse.uml2.uml.TestIdentityAction + * @generated + */ + EClass getTestIdentityAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TestIdentityAction#getFirst First}'. + * + * + * @return the meta object for the containment reference 'First'. + * @see org.eclipse.uml2.uml.TestIdentityAction#getFirst() + * @see #getTestIdentityAction() + * @generated + */ + EReference getTestIdentityAction_First(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TestIdentityAction#getSecond Second}'. + * + * + * @return the meta object for the containment reference 'Second'. + * @see org.eclipse.uml2.uml.TestIdentityAction#getSecond() + * @see #getTestIdentityAction() + * @generated + */ + EReference getTestIdentityAction_Second(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TestIdentityAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.TestIdentityAction#getResult() + * @see #getTestIdentityAction() + * @generated + */ + EReference getTestIdentityAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadSelfAction Read Self Action}'. + * + * + * @return the meta object for class 'Read Self Action'. + * @see org.eclipse.uml2.uml.ReadSelfAction + * @generated + */ + EClass getReadSelfAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadSelfAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadSelfAction#getResult() + * @see #getReadSelfAction() + * @generated + */ + EReference getReadSelfAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StructuralFeatureAction Structural Feature Action}'. + * + * + * @return the meta object for class 'Structural Feature Action'. + * @see org.eclipse.uml2.uml.StructuralFeatureAction + * @generated + */ + EClass getStructuralFeatureAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.StructuralFeatureAction#getStructuralFeature Structural Feature}'. + * + * + * @return the meta object for the reference 'Structural Feature'. + * @see org.eclipse.uml2.uml.StructuralFeatureAction#getStructuralFeature() + * @see #getStructuralFeatureAction() + * @generated + */ + EReference getStructuralFeatureAction_StructuralFeature(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.StructuralFeatureAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.StructuralFeatureAction#getObject() + * @see #getStructuralFeatureAction() + * @generated + */ + EReference getStructuralFeatureAction_Object(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadStructuralFeatureAction Read Structural Feature Action}'. + * + * + * @return the meta object for class 'Read Structural Feature Action'. + * @see org.eclipse.uml2.uml.ReadStructuralFeatureAction + * @generated + */ + EClass getReadStructuralFeatureAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadStructuralFeatureAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadStructuralFeatureAction#getResult() + * @see #getReadStructuralFeatureAction() + * @generated + */ + EReference getReadStructuralFeatureAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction Write Structural Feature Action}'. + * + * + * @return the meta object for class 'Write Structural Feature Action'. + * @see org.eclipse.uml2.uml.WriteStructuralFeatureAction + * @generated + */ + EClass getWriteStructuralFeatureAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.eclipse.uml2.uml.WriteStructuralFeatureAction#getValue() + * @see #getWriteStructuralFeatureAction() + * @generated + */ + EReference getWriteStructuralFeatureAction_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction Clear Structural Feature Action}'. + * + * + * @return the meta object for class 'Clear Structural Feature Action'. + * @see org.eclipse.uml2.uml.ClearStructuralFeatureAction + * @generated + */ + EClass getClearStructuralFeatureAction(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction Remove Structural Feature Value Action}'. + * + * + * @return the meta object for class 'Remove Structural Feature Value Action'. + * @see org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction + * @generated + */ + EClass getRemoveStructuralFeatureValueAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#isRemoveDuplicates Is Remove Duplicates}'. + * + * + * @return the meta object for the attribute 'Is Remove Duplicates'. + * @see org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#isRemoveDuplicates() + * @see #getRemoveStructuralFeatureValueAction() + * @generated + */ + EAttribute getRemoveStructuralFeatureValueAction_IsRemoveDuplicates(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#getRemoveAt Remove At}'. + * + * + * @return the meta object for the containment reference 'Remove At'. + * @see org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#getRemoveAt() + * @see #getRemoveStructuralFeatureValueAction() + * @generated + */ + EReference getRemoveStructuralFeatureValueAction_RemoveAt(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction Add Structural Feature Value Action}'. + * + * + * @return the meta object for class 'Add Structural Feature Value Action'. + * @see org.eclipse.uml2.uml.AddStructuralFeatureValueAction + * @generated + */ + EClass getAddStructuralFeatureValueAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#isReplaceAll Is Replace All}'. + * + * + * @return the meta object for the attribute 'Is Replace All'. + * @see org.eclipse.uml2.uml.AddStructuralFeatureValueAction#isReplaceAll() + * @see #getAddStructuralFeatureValueAction() + * @generated + */ + EAttribute getAddStructuralFeatureValueAction_IsReplaceAll(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#getInsertAt Insert At}'. + * + * + * @return the meta object for the containment reference 'Insert At'. + * @see org.eclipse.uml2.uml.AddStructuralFeatureValueAction#getInsertAt() + * @see #getAddStructuralFeatureValueAction() + * @generated + */ + EReference getAddStructuralFeatureValueAction_InsertAt(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LinkAction Link Action}'. + * + * + * @return the meta object for class 'Link Action'. + * @see org.eclipse.uml2.uml.LinkAction + * @generated + */ + EClass getLinkAction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.LinkAction#getEndData End Data}'. + * + * + * @return the meta object for the containment reference list 'End Data'. + * @see org.eclipse.uml2.uml.LinkAction#getEndData() + * @see #getLinkAction() + * @generated + */ + EReference getLinkAction_EndData(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.LinkAction#getInputValues Input Value}'. + * + * + * @return the meta object for the containment reference list 'Input Value'. + * @see org.eclipse.uml2.uml.LinkAction#getInputValues() + * @see #getLinkAction() + * @generated + */ + EReference getLinkAction_InputValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LinkEndData Link End Data}'. + * + * + * @return the meta object for class 'Link End Data'. + * @see org.eclipse.uml2.uml.LinkEndData + * @generated + */ + EClass getLinkEndData(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.LinkEndData#getValue Value}'. + * + * + * @return the meta object for the reference 'Value'. + * @see org.eclipse.uml2.uml.LinkEndData#getValue() + * @see #getLinkEndData() + * @generated + */ + EReference getLinkEndData_Value(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.LinkEndData#getEnd End}'. + * + * + * @return the meta object for the reference 'End'. + * @see org.eclipse.uml2.uml.LinkEndData#getEnd() + * @see #getLinkEndData() + * @generated + */ + EReference getLinkEndData_End(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.LinkEndData#getQualifiers Qualifier}'. + * + * + * @return the meta object for the containment reference list 'Qualifier'. + * @see org.eclipse.uml2.uml.LinkEndData#getQualifiers() + * @see #getLinkEndData() + * @generated + */ + EReference getLinkEndData_Qualifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.QualifierValue Qualifier Value}'. + * + * + * @return the meta object for class 'Qualifier Value'. + * @see org.eclipse.uml2.uml.QualifierValue + * @generated + */ + EClass getQualifierValue(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.QualifierValue#getQualifier Qualifier}'. + * + * + * @return the meta object for the reference 'Qualifier'. + * @see org.eclipse.uml2.uml.QualifierValue#getQualifier() + * @see #getQualifierValue() + * @generated + */ + EReference getQualifierValue_Qualifier(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.QualifierValue#getValue Value}'. + * + * + * @return the meta object for the reference 'Value'. + * @see org.eclipse.uml2.uml.QualifierValue#getValue() + * @see #getQualifierValue() + * @generated + */ + EReference getQualifierValue_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadLinkAction Read Link Action}'. + * + * + * @return the meta object for class 'Read Link Action'. + * @see org.eclipse.uml2.uml.ReadLinkAction + * @generated + */ + EClass getReadLinkAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadLinkAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadLinkAction#getResult() + * @see #getReadLinkAction() + * @generated + */ + EReference getReadLinkAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LinkEndCreationData Link End Creation Data}'. + * + * + * @return the meta object for class 'Link End Creation Data'. + * @see org.eclipse.uml2.uml.LinkEndCreationData + * @generated + */ + EClass getLinkEndCreationData(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LinkEndCreationData#isReplaceAll Is Replace All}'. + * + * + * @return the meta object for the attribute 'Is Replace All'. + * @see org.eclipse.uml2.uml.LinkEndCreationData#isReplaceAll() + * @see #getLinkEndCreationData() + * @generated + */ + EAttribute getLinkEndCreationData_IsReplaceAll(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.LinkEndCreationData#getInsertAt Insert At}'. + * + * + * @return the meta object for the reference 'Insert At'. + * @see org.eclipse.uml2.uml.LinkEndCreationData#getInsertAt() + * @see #getLinkEndCreationData() + * @generated + */ + EReference getLinkEndCreationData_InsertAt(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CreateLinkAction Create Link Action}'. + * + * + * @return the meta object for class 'Create Link Action'. + * @see org.eclipse.uml2.uml.CreateLinkAction + * @generated + */ + EClass getCreateLinkAction(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.WriteLinkAction Write Link Action}'. + * + * + * @return the meta object for class 'Write Link Action'. + * @see org.eclipse.uml2.uml.WriteLinkAction + * @generated + */ + EClass getWriteLinkAction(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DestroyLinkAction Destroy Link Action}'. + * + * + * @return the meta object for class 'Destroy Link Action'. + * @see org.eclipse.uml2.uml.DestroyLinkAction + * @generated + */ + EClass getDestroyLinkAction(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LinkEndDestructionData Link End Destruction Data}'. + * + * + * @return the meta object for class 'Link End Destruction Data'. + * @see org.eclipse.uml2.uml.LinkEndDestructionData + * @generated + */ + EClass getLinkEndDestructionData(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LinkEndDestructionData#isDestroyDuplicates Is Destroy Duplicates}'. + * + * + * @return the meta object for the attribute 'Is Destroy Duplicates'. + * @see org.eclipse.uml2.uml.LinkEndDestructionData#isDestroyDuplicates() + * @see #getLinkEndDestructionData() + * @generated + */ + EAttribute getLinkEndDestructionData_IsDestroyDuplicates(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.LinkEndDestructionData#getDestroyAt Destroy At}'. + * + * + * @return the meta object for the reference 'Destroy At'. + * @see org.eclipse.uml2.uml.LinkEndDestructionData#getDestroyAt() + * @see #getLinkEndDestructionData() + * @generated + */ + EReference getLinkEndDestructionData_DestroyAt(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ClearAssociationAction Clear Association Action}'. + * + * + * @return the meta object for class 'Clear Association Action'. + * @see org.eclipse.uml2.uml.ClearAssociationAction + * @generated + */ + EClass getClearAssociationAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ClearAssociationAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.ClearAssociationAction#getObject() + * @see #getClearAssociationAction() + * @generated + */ + EReference getClearAssociationAction_Object(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ClearAssociationAction#getAssociation Association}'. + * + * + * @return the meta object for the reference 'Association'. + * @see org.eclipse.uml2.uml.ClearAssociationAction#getAssociation() + * @see #getClearAssociationAction() + * @generated + */ + EReference getClearAssociationAction_Association(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.BroadcastSignalAction Broadcast Signal Action}'. + * + * + * @return the meta object for class 'Broadcast Signal Action'. + * @see org.eclipse.uml2.uml.BroadcastSignalAction + * @generated + */ + EClass getBroadcastSignalAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.BroadcastSignalAction#getSignal Signal}'. + * + * + * @return the meta object for the reference 'Signal'. + * @see org.eclipse.uml2.uml.BroadcastSignalAction#getSignal() + * @see #getBroadcastSignalAction() + * @generated + */ + EReference getBroadcastSignalAction_Signal(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InvocationAction Invocation Action}'. + * + * + * @return the meta object for class 'Invocation Action'. + * @see org.eclipse.uml2.uml.InvocationAction + * @generated + */ + EClass getInvocationAction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.InvocationAction#getArguments Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.eclipse.uml2.uml.InvocationAction#getArguments() + * @see #getInvocationAction() + * @generated + */ + EReference getInvocationAction_Argument(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.InvocationAction#getOnPort On Port}'. + * + * + * @return the meta object for the reference 'On Port'. + * @see org.eclipse.uml2.uml.InvocationAction#getOnPort() + * @see #getInvocationAction() + * @generated + */ + EReference getInvocationAction_OnPort(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.SendObjectAction Send Object Action}'. + * + * + * @return the meta object for class 'Send Object Action'. + * @see org.eclipse.uml2.uml.SendObjectAction + * @generated + */ + EClass getSendObjectAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.SendObjectAction#getTarget Target}'. + * + * + * @return the meta object for the containment reference 'Target'. + * @see org.eclipse.uml2.uml.SendObjectAction#getTarget() + * @see #getSendObjectAction() + * @generated + */ + EReference getSendObjectAction_Target(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.SendObjectAction#getRequest Request}'. + * + * + * @return the meta object for the containment reference 'Request'. + * @see org.eclipse.uml2.uml.SendObjectAction#getRequest() + * @see #getSendObjectAction() + * @generated + */ + EReference getSendObjectAction_Request(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ValueSpecificationAction Value Specification Action}'. + * + * + * @return the meta object for class 'Value Specification Action'. + * @see org.eclipse.uml2.uml.ValueSpecificationAction + * @generated + */ + EClass getValueSpecificationAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ValueSpecificationAction#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.eclipse.uml2.uml.ValueSpecificationAction#getValue() + * @see #getValueSpecificationAction() + * @generated + */ + EReference getValueSpecificationAction_Value(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ValueSpecificationAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ValueSpecificationAction#getResult() + * @see #getValueSpecificationAction() + * @generated + */ + EReference getValueSpecificationAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TimeExpression Time Expression}'. + * + * + * @return the meta object for class 'Time Expression'. + * @see org.eclipse.uml2.uml.TimeExpression + * @generated + */ + EClass getTimeExpression(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.TimeExpression#isFirstTime First Time}'. + * + * + * @return the meta object for the attribute 'First Time'. + * @see org.eclipse.uml2.uml.TimeExpression#isFirstTime() + * @see #getTimeExpression() + * @generated + */ + EAttribute getTimeExpression_FirstTime(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TimeExpression#getEvent Event}'. + * + * + * @return the meta object for the reference 'Event'. + * @see org.eclipse.uml2.uml.TimeExpression#getEvent() + * @see #getTimeExpression() + * @generated + */ + EReference getTimeExpression_Event(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Duration Duration}'. + * + * + * @return the meta object for class 'Duration'. + * @see org.eclipse.uml2.uml.Duration + * @generated + */ + EClass getDuration(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Duration#isFirstTime First Time}'. + * + * + * @return the meta object for the attribute 'First Time'. + * @see org.eclipse.uml2.uml.Duration#isFirstTime() + * @see #getDuration() + * @generated + */ + EAttribute getDuration_FirstTime(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Duration#getEvents Event}'. + * + * + * @return the meta object for the reference list 'Event'. + * @see org.eclipse.uml2.uml.Duration#getEvents() + * @see #getDuration() + * @generated + */ + EReference getDuration_Event(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TimeObservationAction Time Observation Action}'. + * + * + * @return the meta object for class 'Time Observation Action'. + * @see org.eclipse.uml2.uml.TimeObservationAction + * @generated + */ + EClass getTimeObservationAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.TimeObservationAction#getNow Now}'. + * + * + * @return the meta object for the reference 'Now'. + * @see org.eclipse.uml2.uml.TimeObservationAction#getNow() + * @see #getTimeObservationAction() + * @generated + */ + EReference getTimeObservationAction_Now(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ValuePin Value Pin}'. + * + * + * @return the meta object for class 'Value Pin'. + * @see org.eclipse.uml2.uml.ValuePin + * @generated + */ + EClass getValuePin(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ValuePin#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.eclipse.uml2.uml.ValuePin#getValue() + * @see #getValuePin() + * @generated + */ + EReference getValuePin_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DurationInterval Duration Interval}'. + * + * + * @return the meta object for class 'Duration Interval'. + * @see org.eclipse.uml2.uml.DurationInterval + * @generated + */ + EClass getDurationInterval(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Interval Interval}'. + * + * + * @return the meta object for class 'Interval'. + * @see org.eclipse.uml2.uml.Interval + * @generated + */ + EClass getInterval(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Interval#getMin Min}'. + * + * + * @return the meta object for the reference 'Min'. + * @see org.eclipse.uml2.uml.Interval#getMin() + * @see #getInterval() + * @generated + */ + EReference getInterval_Min(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Interval#getMax Max}'. + * + * + * @return the meta object for the reference 'Max'. + * @see org.eclipse.uml2.uml.Interval#getMax() + * @see #getInterval() + * @generated + */ + EReference getInterval_Max(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TimeConstraint Time Constraint}'. + * + * + * @return the meta object for class 'Time Constraint'. + * @see org.eclipse.uml2.uml.TimeConstraint + * @generated + */ + EClass getTimeConstraint(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.IntervalConstraint Interval Constraint}'. + * + * + * @return the meta object for class 'Interval Constraint'. + * @see org.eclipse.uml2.uml.IntervalConstraint + * @generated + */ + EClass getIntervalConstraint(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TimeInterval Time Interval}'. + * + * + * @return the meta object for class 'Time Interval'. + * @see org.eclipse.uml2.uml.TimeInterval + * @generated + */ + EClass getTimeInterval(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DurationObservationAction Duration Observation Action}'. + * + * + * @return the meta object for class 'Duration Observation Action'. + * @see org.eclipse.uml2.uml.DurationObservationAction + * @generated + */ + EClass getDurationObservationAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.DurationObservationAction#getDuration Duration}'. + * + * + * @return the meta object for the reference 'Duration'. + * @see org.eclipse.uml2.uml.DurationObservationAction#getDuration() + * @see #getDurationObservationAction() + * @generated + */ + EReference getDurationObservationAction_Duration(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DurationConstraint Duration Constraint}'. + * + * + * @return the meta object for class 'Duration Constraint'. + * @see org.eclipse.uml2.uml.DurationConstraint + * @generated + */ + EClass getDurationConstraint(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.OpaqueAction Opaque Action}'. + * + * + * @return the meta object for class 'Opaque Action'. + * @see org.eclipse.uml2.uml.OpaqueAction + * @generated + */ + EClass getOpaqueAction(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.uml2.uml.OpaqueAction#getBodies Body}'. + * + * + * @return the meta object for the attribute list 'Body'. + * @see org.eclipse.uml2.uml.OpaqueAction#getBodies() + * @see #getOpaqueAction() + * @generated + */ + EAttribute getOpaqueAction_Body(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.uml2.uml.OpaqueAction#getLanguages Language}'. + * + * + * @return the meta object for the attribute list 'Language'. + * @see org.eclipse.uml2.uml.OpaqueAction#getLanguages() + * @see #getOpaqueAction() + * @generated + */ + EAttribute getOpaqueAction_Language(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.OpaqueAction#getInputValues Input Value}'. + * + * + * @return the meta object for the reference list 'Input Value'. + * @see org.eclipse.uml2.uml.OpaqueAction#getInputValues() + * @see #getOpaqueAction() + * @generated + */ + EReference getOpaqueAction_InputValue(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.OpaqueAction#getOutputValues Output Value}'. + * + * + * @return the meta object for the reference list 'Output Value'. + * @see org.eclipse.uml2.uml.OpaqueAction#getOutputValues() + * @see #getOpaqueAction() + * @generated + */ + EReference getOpaqueAction_OutputValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CallAction Call Action}'. + * + * + * @return the meta object for class 'Call Action'. + * @see org.eclipse.uml2.uml.CallAction + * @generated + */ + EClass getCallAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.CallAction#isSynchronous Is Synchronous}'. + * + * + * @return the meta object for the attribute 'Is Synchronous'. + * @see org.eclipse.uml2.uml.CallAction#isSynchronous() + * @see #getCallAction() + * @generated + */ + EAttribute getCallAction_IsSynchronous(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.CallAction#getResults Result}'. + * + * + * @return the meta object for the containment reference list 'Result'. + * @see org.eclipse.uml2.uml.CallAction#getResults() + * @see #getCallAction() + * @generated + */ + EReference getCallAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.SendSignalAction Send Signal Action}'. + * + * + * @return the meta object for class 'Send Signal Action'. + * @see org.eclipse.uml2.uml.SendSignalAction + * @generated + */ + EClass getSendSignalAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.SendSignalAction#getTarget Target}'. + * + * + * @return the meta object for the containment reference 'Target'. + * @see org.eclipse.uml2.uml.SendSignalAction#getTarget() + * @see #getSendSignalAction() + * @generated + */ + EReference getSendSignalAction_Target(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.SendSignalAction#getSignal Signal}'. + * + * + * @return the meta object for the reference 'Signal'. + * @see org.eclipse.uml2.uml.SendSignalAction#getSignal() + * @see #getSendSignalAction() + * @generated + */ + EReference getSendSignalAction_Signal(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CallOperationAction Call Operation Action}'. + * + * + * @return the meta object for class 'Call Operation Action'. + * @see org.eclipse.uml2.uml.CallOperationAction + * @generated + */ + EClass getCallOperationAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.CallOperationAction#getOperation Operation}'. + * + * + * @return the meta object for the reference 'Operation'. + * @see org.eclipse.uml2.uml.CallOperationAction#getOperation() + * @see #getCallOperationAction() + * @generated + */ + EReference getCallOperationAction_Operation(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.CallOperationAction#getTarget Target}'. + * + * + * @return the meta object for the containment reference 'Target'. + * @see org.eclipse.uml2.uml.CallOperationAction#getTarget() + * @see #getCallOperationAction() + * @generated + */ + EReference getCallOperationAction_Target(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CallBehaviorAction Call Behavior Action}'. + * + * + * @return the meta object for class 'Call Behavior Action'. + * @see org.eclipse.uml2.uml.CallBehaviorAction + * @generated + */ + EClass getCallBehaviorAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.CallBehaviorAction#getBehavior Behavior}'. + * + * + * @return the meta object for the reference 'Behavior'. + * @see org.eclipse.uml2.uml.CallBehaviorAction#getBehavior() + * @see #getCallBehaviorAction() + * @generated + */ + EReference getCallBehaviorAction_Behavior(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InformationItem Information Item}'. + * + * + * @return the meta object for class 'Information Item'. + * @see org.eclipse.uml2.uml.InformationItem + * @generated + */ + EClass getInformationItem(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationItem#getRepresenteds Represented}'. + * + * + * @return the meta object for the reference list 'Represented'. + * @see org.eclipse.uml2.uml.InformationItem#getRepresenteds() + * @see #getInformationItem() + * @generated + */ + EReference getInformationItem_Represented(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InformationFlow Information Flow}'. + * + * + * @return the meta object for class 'Information Flow'. + * @see org.eclipse.uml2.uml.InformationFlow + * @generated + */ + EClass getInformationFlow(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getRealizations Realization}'. + * + * + * @return the meta object for the reference list 'Realization'. + * @see org.eclipse.uml2.uml.InformationFlow#getRealizations() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_Realization(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getConveyeds Conveyed}'. + * + * + * @return the meta object for the reference list 'Conveyed'. + * @see org.eclipse.uml2.uml.InformationFlow#getConveyeds() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_Conveyed(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getInformationSources Information Source}'. + * + * + * @return the meta object for the reference list 'Information Source'. + * @see org.eclipse.uml2.uml.InformationFlow#getInformationSources() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_InformationSource(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getInformationTargets Information Target}'. + * + * + * @return the meta object for the reference list 'Information Target'. + * @see org.eclipse.uml2.uml.InformationFlow#getInformationTargets() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_InformationTarget(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getRealizingActivityEdges Realizing Activity Edge}'. + * + * + * @return the meta object for the reference list 'Realizing Activity Edge'. + * @see org.eclipse.uml2.uml.InformationFlow#getRealizingActivityEdges() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_RealizingActivityEdge(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getRealizingConnectors Realizing Connector}'. + * + * + * @return the meta object for the reference list 'Realizing Connector'. + * @see org.eclipse.uml2.uml.InformationFlow#getRealizingConnectors() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_RealizingConnector(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.InformationFlow#getRealizingMessages Realizing Message}'. + * + * + * @return the meta object for the reference list 'Realizing Message'. + * @see org.eclipse.uml2.uml.InformationFlow#getRealizingMessages() + * @see #getInformationFlow() + * @generated + */ + EReference getInformationFlow_RealizingMessage(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Model Model}'. + * + * + * @return the meta object for class 'Model'. + * @see org.eclipse.uml2.uml.Model + * @generated + */ + EClass getModel(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Model#getViewpoint Viewpoint}'. + * + * + * @return the meta object for the attribute 'Viewpoint'. + * @see org.eclipse.uml2.uml.Model#getViewpoint() + * @see #getModel() + * @generated + */ + EAttribute getModel_Viewpoint(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.VariableAction Variable Action}'. + * + * + * @return the meta object for class 'Variable Action'. + * @see org.eclipse.uml2.uml.VariableAction + * @generated + */ + EClass getVariableAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.VariableAction#getVariable Variable}'. + * + * + * @return the meta object for the reference 'Variable'. + * @see org.eclipse.uml2.uml.VariableAction#getVariable() + * @see #getVariableAction() + * @generated + */ + EReference getVariableAction_Variable(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadVariableAction Read Variable Action}'. + * + * + * @return the meta object for class 'Read Variable Action'. + * @see org.eclipse.uml2.uml.ReadVariableAction + * @generated + */ + EClass getReadVariableAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadVariableAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadVariableAction#getResult() + * @see #getReadVariableAction() + * @generated + */ + EReference getReadVariableAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.WriteVariableAction Write Variable Action}'. + * + * + * @return the meta object for class 'Write Variable Action'. + * @see org.eclipse.uml2.uml.WriteVariableAction + * @generated + */ + EClass getWriteVariableAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.WriteVariableAction#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.eclipse.uml2.uml.WriteVariableAction#getValue() + * @see #getWriteVariableAction() + * @generated + */ + EReference getWriteVariableAction_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ClearVariableAction Clear Variable Action}'. + * + * + * @return the meta object for class 'Clear Variable Action'. + * @see org.eclipse.uml2.uml.ClearVariableAction + * @generated + */ + EClass getClearVariableAction(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.AddVariableValueAction Add Variable Value Action}'. + * + * + * @return the meta object for class 'Add Variable Value Action'. + * @see org.eclipse.uml2.uml.AddVariableValueAction + * @generated + */ + EClass getAddVariableValueAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.AddVariableValueAction#isReplaceAll Is Replace All}'. + * + * + * @return the meta object for the attribute 'Is Replace All'. + * @see org.eclipse.uml2.uml.AddVariableValueAction#isReplaceAll() + * @see #getAddVariableValueAction() + * @generated + */ + EAttribute getAddVariableValueAction_IsReplaceAll(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.AddVariableValueAction#getInsertAt Insert At}'. + * + * + * @return the meta object for the containment reference 'Insert At'. + * @see org.eclipse.uml2.uml.AddVariableValueAction#getInsertAt() + * @see #getAddVariableValueAction() + * @generated + */ + EReference getAddVariableValueAction_InsertAt(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.RemoveVariableValueAction Remove Variable Value Action}'. + * + * + * @return the meta object for class 'Remove Variable Value Action'. + * @see org.eclipse.uml2.uml.RemoveVariableValueAction + * @generated + */ + EClass getRemoveVariableValueAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.RemoveVariableValueAction#isRemoveDuplicates Is Remove Duplicates}'. + * + * + * @return the meta object for the attribute 'Is Remove Duplicates'. + * @see org.eclipse.uml2.uml.RemoveVariableValueAction#isRemoveDuplicates() + * @see #getRemoveVariableValueAction() + * @generated + */ + EAttribute getRemoveVariableValueAction_IsRemoveDuplicates(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.RemoveVariableValueAction#getRemoveAt Remove At}'. + * + * + * @return the meta object for the containment reference 'Remove At'. + * @see org.eclipse.uml2.uml.RemoveVariableValueAction#getRemoveAt() + * @see #getRemoveVariableValueAction() + * @generated + */ + EReference getRemoveVariableValueAction_RemoveAt(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.RaiseExceptionAction Raise Exception Action}'. + * + * + * @return the meta object for class 'Raise Exception Action'. + * @see org.eclipse.uml2.uml.RaiseExceptionAction + * @generated + */ + EClass getRaiseExceptionAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.RaiseExceptionAction#getException Exception}'. + * + * + * @return the meta object for the containment reference 'Exception'. + * @see org.eclipse.uml2.uml.RaiseExceptionAction#getException() + * @see #getRaiseExceptionAction() + * @generated + */ + EReference getRaiseExceptionAction_Exception(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActionInputPin Action Input Pin}'. + * + * + * @return the meta object for class 'Action Input Pin'. + * @see org.eclipse.uml2.uml.ActionInputPin + * @generated + */ + EClass getActionInputPin(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ActionInputPin#getFromAction From Action}'. + * + * + * @return the meta object for the containment reference 'From Action'. + * @see org.eclipse.uml2.uml.ActionInputPin#getFromAction() + * @see #getActionInputPin() + * @generated + */ + EReference getActionInputPin_FromAction(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadExtentAction Read Extent Action}'. + * + * + * @return the meta object for class 'Read Extent Action'. + * @see org.eclipse.uml2.uml.ReadExtentAction + * @generated + */ + EClass getReadExtentAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadExtentAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadExtentAction#getResult() + * @see #getReadExtentAction() + * @generated + */ + EReference getReadExtentAction_Result(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ReadExtentAction#getClassifier Classifier}'. + * + * + * @return the meta object for the reference 'Classifier'. + * @see org.eclipse.uml2.uml.ReadExtentAction#getClassifier() + * @see #getReadExtentAction() + * @generated + */ + EReference getReadExtentAction_Classifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReclassifyObjectAction Reclassify Object Action}'. + * + * + * @return the meta object for class 'Reclassify Object Action'. + * @see org.eclipse.uml2.uml.ReclassifyObjectAction + * @generated + */ + EClass getReclassifyObjectAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ReclassifyObjectAction#isReplaceAll Is Replace All}'. + * + * + * @return the meta object for the attribute 'Is Replace All'. + * @see org.eclipse.uml2.uml.ReclassifyObjectAction#isReplaceAll() + * @see #getReclassifyObjectAction() + * @generated + */ + EAttribute getReclassifyObjectAction_IsReplaceAll(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ReclassifyObjectAction#getOldClassifiers Old Classifier}'. + * + * + * @return the meta object for the reference list 'Old Classifier'. + * @see org.eclipse.uml2.uml.ReclassifyObjectAction#getOldClassifiers() + * @see #getReclassifyObjectAction() + * @generated + */ + EReference getReclassifyObjectAction_OldClassifier(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ReclassifyObjectAction#getNewClassifiers New Classifier}'. + * + * + * @return the meta object for the reference list 'New Classifier'. + * @see org.eclipse.uml2.uml.ReclassifyObjectAction#getNewClassifiers() + * @see #getReclassifyObjectAction() + * @generated + */ + EReference getReclassifyObjectAction_NewClassifier(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReclassifyObjectAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.ReclassifyObjectAction#getObject() + * @see #getReclassifyObjectAction() + * @generated + */ + EReference getReclassifyObjectAction_Object(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction Read Is Classified Object Action}'. + * + * + * @return the meta object for class 'Read Is Classified Object Action'. + * @see org.eclipse.uml2.uml.ReadIsClassifiedObjectAction + * @generated + */ + EClass getReadIsClassifiedObjectAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#isDirect Is Direct}'. + * + * + * @return the meta object for the attribute 'Is Direct'. + * @see org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#isDirect() + * @see #getReadIsClassifiedObjectAction() + * @generated + */ + EAttribute getReadIsClassifiedObjectAction_IsDirect(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getClassifier Classifier}'. + * + * + * @return the meta object for the reference 'Classifier'. + * @see org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getClassifier() + * @see #getReadIsClassifiedObjectAction() + * @generated + */ + EReference getReadIsClassifiedObjectAction_Classifier(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getResult() + * @see #getReadIsClassifiedObjectAction() + * @generated + */ + EReference getReadIsClassifiedObjectAction_Result(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#getObject() + * @see #getReadIsClassifiedObjectAction() + * @generated + */ + EReference getReadIsClassifiedObjectAction_Object(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction Start Classifier Behavior Action}'. + * + * + * @return the meta object for class 'Start Classifier Behavior Action'. + * @see org.eclipse.uml2.uml.StartClassifierBehaviorAction + * @generated + */ + EClass getStartClassifierBehaviorAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.StartClassifierBehaviorAction#getObject() + * @see #getStartClassifierBehaviorAction() + * @generated + */ + EReference getStartClassifierBehaviorAction_Object(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction Read Link Object End Action}'. + * + * + * @return the meta object for class 'Read Link Object End Action'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndAction + * @generated + */ + EClass getReadLinkObjectEndAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndAction#getObject() + * @see #getReadLinkObjectEndAction() + * @generated + */ + EReference getReadLinkObjectEndAction_Object(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getEnd End}'. + * + * + * @return the meta object for the reference 'End'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndAction#getEnd() + * @see #getReadLinkObjectEndAction() + * @generated + */ + EReference getReadLinkObjectEndAction_End(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndAction#getResult() + * @see #getReadLinkObjectEndAction() + * @generated + */ + EReference getReadLinkObjectEndAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction Read Link Object End Qualifier Action}'. + * + * + * @return the meta object for class 'Read Link Object End Qualifier Action'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction + * @generated + */ + EClass getReadLinkObjectEndQualifierAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getObject() + * @see #getReadLinkObjectEndQualifierAction() + * @generated + */ + EReference getReadLinkObjectEndQualifierAction_Object(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getResult() + * @see #getReadLinkObjectEndQualifierAction() + * @generated + */ + EReference getReadLinkObjectEndQualifierAction_Result(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getQualifier Qualifier}'. + * + * + * @return the meta object for the reference 'Qualifier'. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#getQualifier() + * @see #getReadLinkObjectEndQualifierAction() + * @generated + */ + EReference getReadLinkObjectEndQualifierAction_Qualifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CreateLinkObjectAction Create Link Object Action}'. + * + * + * @return the meta object for class 'Create Link Object Action'. + * @see org.eclipse.uml2.uml.CreateLinkObjectAction + * @generated + */ + EClass getCreateLinkObjectAction(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.CreateLinkObjectAction#getResult Result}'. + * + * + * @return the meta object for the containment reference 'Result'. + * @see org.eclipse.uml2.uml.CreateLinkObjectAction#getResult() + * @see #getCreateLinkObjectAction() + * @generated + */ + EReference getCreateLinkObjectAction_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.AcceptEventAction Accept Event Action}'. + * + * + * @return the meta object for class 'Accept Event Action'. + * @see org.eclipse.uml2.uml.AcceptEventAction + * @generated + */ + EClass getAcceptEventAction(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.AcceptEventAction#isUnmarshall Is Unmarshall}'. + * + * + * @return the meta object for the attribute 'Is Unmarshall'. + * @see org.eclipse.uml2.uml.AcceptEventAction#isUnmarshall() + * @see #getAcceptEventAction() + * @generated + */ + EAttribute getAcceptEventAction_IsUnmarshall(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.AcceptEventAction#getResults Result}'. + * + * + * @return the meta object for the reference list 'Result'. + * @see org.eclipse.uml2.uml.AcceptEventAction#getResults() + * @see #getAcceptEventAction() + * @generated + */ + EReference getAcceptEventAction_Result(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.AcceptEventAction#getTriggers Trigger}'. + * + * + * @return the meta object for the containment reference list 'Trigger'. + * @see org.eclipse.uml2.uml.AcceptEventAction#getTriggers() + * @see #getAcceptEventAction() + * @generated + */ + EReference getAcceptEventAction_Trigger(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.AcceptCallAction Accept Call Action}'. + * + * + * @return the meta object for class 'Accept Call Action'. + * @see org.eclipse.uml2.uml.AcceptCallAction + * @generated + */ + EClass getAcceptCallAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.AcceptCallAction#getReturnInformation Return Information}'. + * + * + * @return the meta object for the reference 'Return Information'. + * @see org.eclipse.uml2.uml.AcceptCallAction#getReturnInformation() + * @see #getAcceptCallAction() + * @generated + */ + EReference getAcceptCallAction_ReturnInformation(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ReplyAction Reply Action}'. + * + * + * @return the meta object for class 'Reply Action'. + * @see org.eclipse.uml2.uml.ReplyAction + * @generated + */ + EClass getReplyAction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ReplyAction#getReplyToCall Reply To Call}'. + * + * + * @return the meta object for the reference 'Reply To Call'. + * @see org.eclipse.uml2.uml.ReplyAction#getReplyToCall() + * @see #getReplyAction() + * @generated + */ + EReference getReplyAction_ReplyToCall(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ReplyAction#getReturnInformation Return Information}'. + * + * + * @return the meta object for the containment reference 'Return Information'. + * @see org.eclipse.uml2.uml.ReplyAction#getReturnInformation() + * @see #getReplyAction() + * @generated + */ + EReference getReplyAction_ReturnInformation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ReplyAction#getReplyValues Reply Value}'. + * + * + * @return the meta object for the containment reference list 'Reply Value'. + * @see org.eclipse.uml2.uml.ReplyAction#getReplyValues() + * @see #getReplyAction() + * @generated + */ + EReference getReplyAction_ReplyValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.UnmarshallAction Unmarshall Action}'. + * + * + * @return the meta object for class 'Unmarshall Action'. + * @see org.eclipse.uml2.uml.UnmarshallAction + * @generated + */ + EClass getUnmarshallAction(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.UnmarshallAction#getResults Result}'. + * + * + * @return the meta object for the reference list 'Result'. + * @see org.eclipse.uml2.uml.UnmarshallAction#getResults() + * @see #getUnmarshallAction() + * @generated + */ + EReference getUnmarshallAction_Result(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.UnmarshallAction#getUnmarshallType Unmarshall Type}'. + * + * + * @return the meta object for the reference 'Unmarshall Type'. + * @see org.eclipse.uml2.uml.UnmarshallAction#getUnmarshallType() + * @see #getUnmarshallAction() + * @generated + */ + EReference getUnmarshallAction_UnmarshallType(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.UnmarshallAction#getObject Object}'. + * + * + * @return the meta object for the containment reference 'Object'. + * @see org.eclipse.uml2.uml.UnmarshallAction#getObject() + * @see #getUnmarshallAction() + * @generated + */ + EReference getUnmarshallAction_Object(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ControlNode Control Node}'. + * + * + * @return the meta object for class 'Control Node'. + * @see org.eclipse.uml2.uml.ControlNode + * @generated + */ + EClass getControlNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ControlFlow Control Flow}'. + * + * + * @return the meta object for class 'Control Flow'. + * @see org.eclipse.uml2.uml.ControlFlow + * @generated + */ + EClass getControlFlow(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.InitialNode Initial Node}'. + * + * + * @return the meta object for class 'Initial Node'. + * @see org.eclipse.uml2.uml.InitialNode + * @generated + */ + EClass getInitialNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActivityParameterNode Activity Parameter Node}'. + * + * + * @return the meta object for class 'Activity Parameter Node'. + * @see org.eclipse.uml2.uml.ActivityParameterNode + * @generated + */ + EClass getActivityParameterNode(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ActivityParameterNode#getParameter Parameter}'. + * + * + * @return the meta object for the reference 'Parameter'. + * @see org.eclipse.uml2.uml.ActivityParameterNode#getParameter() + * @see #getActivityParameterNode() + * @generated + */ + EReference getActivityParameterNode_Parameter(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ForkNode Fork Node}'. + * + * + * @return the meta object for class 'Fork Node'. + * @see org.eclipse.uml2.uml.ForkNode + * @generated + */ + EClass getForkNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.FlowFinalNode Flow Final Node}'. + * + * + * @return the meta object for class 'Flow Final Node'. + * @see org.eclipse.uml2.uml.FlowFinalNode + * @generated + */ + EClass getFlowFinalNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.FinalNode Final Node}'. + * + * + * @return the meta object for class 'Final Node'. + * @see org.eclipse.uml2.uml.FinalNode + * @generated + */ + EClass getFinalNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CentralBufferNode Central Buffer Node}'. + * + * + * @return the meta object for class 'Central Buffer Node'. + * @see org.eclipse.uml2.uml.CentralBufferNode + * @generated + */ + EClass getCentralBufferNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.MergeNode Merge Node}'. + * + * + * @return the meta object for class 'Merge Node'. + * @see org.eclipse.uml2.uml.MergeNode + * @generated + */ + EClass getMergeNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DecisionNode Decision Node}'. + * + * + * @return the meta object for class 'Decision Node'. + * @see org.eclipse.uml2.uml.DecisionNode + * @generated + */ + EClass getDecisionNode(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.DecisionNode#getDecisionInput Decision Input}'. + * + * + * @return the meta object for the reference 'Decision Input'. + * @see org.eclipse.uml2.uml.DecisionNode#getDecisionInput() + * @see #getDecisionNode() + * @generated + */ + EReference getDecisionNode_DecisionInput(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ActivityFinalNode Activity Final Node}'. + * + * + * @return the meta object for class 'Activity Final Node'. + * @see org.eclipse.uml2.uml.ActivityFinalNode + * @generated + */ + EClass getActivityFinalNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.JoinNode Join Node}'. + * + * + * @return the meta object for class 'Join Node'. + * @see org.eclipse.uml2.uml.JoinNode + * @generated + */ + EClass getJoinNode(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.JoinNode#isCombineDuplicate Is Combine Duplicate}'. + * + * + * @return the meta object for the attribute 'Is Combine Duplicate'. + * @see org.eclipse.uml2.uml.JoinNode#isCombineDuplicate() + * @see #getJoinNode() + * @generated + */ + EAttribute getJoinNode_IsCombineDuplicate(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.JoinNode#getJoinSpec Join Spec}'. + * + * + * @return the meta object for the containment reference 'Join Spec'. + * @see org.eclipse.uml2.uml.JoinNode#getJoinSpec() + * @see #getJoinNode() + * @generated + */ + EReference getJoinNode_JoinSpec(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.DataStoreNode Data Store Node}'. + * + * + * @return the meta object for class 'Data Store Node'. + * @see org.eclipse.uml2.uml.DataStoreNode + * @generated + */ + EClass getDataStoreNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ObjectFlow Object Flow}'. + * + * + * @return the meta object for class 'Object Flow'. + * @see org.eclipse.uml2.uml.ObjectFlow + * @generated + */ + EClass getObjectFlow(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ObjectFlow#isMulticast Is Multicast}'. + * + * + * @return the meta object for the attribute 'Is Multicast'. + * @see org.eclipse.uml2.uml.ObjectFlow#isMulticast() + * @see #getObjectFlow() + * @generated + */ + EAttribute getObjectFlow_IsMulticast(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ObjectFlow#isMultireceive Is Multireceive}'. + * + * + * @return the meta object for the attribute 'Is Multireceive'. + * @see org.eclipse.uml2.uml.ObjectFlow#isMultireceive() + * @see #getObjectFlow() + * @generated + */ + EAttribute getObjectFlow_IsMultireceive(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ObjectFlow#getTransformation Transformation}'. + * + * + * @return the meta object for the reference 'Transformation'. + * @see org.eclipse.uml2.uml.ObjectFlow#getTransformation() + * @see #getObjectFlow() + * @generated + */ + EReference getObjectFlow_Transformation(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ObjectFlow#getSelection Selection}'. + * + * + * @return the meta object for the reference 'Selection'. + * @see org.eclipse.uml2.uml.ObjectFlow#getSelection() + * @see #getObjectFlow() + * @generated + */ + EReference getObjectFlow_Selection(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.SequenceNode Sequence Node}'. + * + * + * @return the meta object for class 'Sequence Node'. + * @see org.eclipse.uml2.uml.SequenceNode + * @generated + */ + EClass getSequenceNode(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.SequenceNode#getExecutableNodes Executable Node}'. + * + * + * @return the meta object for the containment reference list 'Executable Node'. + * @see org.eclipse.uml2.uml.SequenceNode#getExecutableNodes() + * @see #getSequenceNode() + * @generated + */ + EReference getSequenceNode_ExecutableNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ConditionalNode Conditional Node}'. + * + * + * @return the meta object for class 'Conditional Node'. + * @see org.eclipse.uml2.uml.ConditionalNode + * @generated + */ + EClass getConditionalNode(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ConditionalNode#isDeterminate Is Determinate}'. + * + * + * @return the meta object for the attribute 'Is Determinate'. + * @see org.eclipse.uml2.uml.ConditionalNode#isDeterminate() + * @see #getConditionalNode() + * @generated + */ + EAttribute getConditionalNode_IsDeterminate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ConditionalNode#isAssured Is Assured}'. + * + * + * @return the meta object for the attribute 'Is Assured'. + * @see org.eclipse.uml2.uml.ConditionalNode#isAssured() + * @see #getConditionalNode() + * @generated + */ + EAttribute getConditionalNode_IsAssured(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ConditionalNode#getClauses Clause}'. + * + * + * @return the meta object for the containment reference list 'Clause'. + * @see org.eclipse.uml2.uml.ConditionalNode#getClauses() + * @see #getConditionalNode() + * @generated + */ + EReference getConditionalNode_Clause(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.ConditionalNode#getResults Result}'. + * + * + * @return the meta object for the containment reference list 'Result'. + * @see org.eclipse.uml2.uml.ConditionalNode#getResults() + * @see #getConditionalNode() + * @generated + */ + EReference getConditionalNode_Result(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Clause Clause}'. + * + * + * @return the meta object for class 'Clause'. + * @see org.eclipse.uml2.uml.Clause + * @generated + */ + EClass getClause(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Clause#getTests Test}'. + * + * + * @return the meta object for the reference list 'Test'. + * @see org.eclipse.uml2.uml.Clause#getTests() + * @see #getClause() + * @generated + */ + EReference getClause_Test(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Clause#getBodies Body}'. + * + * + * @return the meta object for the reference list 'Body'. + * @see org.eclipse.uml2.uml.Clause#getBodies() + * @see #getClause() + * @generated + */ + EReference getClause_Body(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Clause#getPredecessorClauses Predecessor Clause}'. + * + * + * @return the meta object for the reference list 'Predecessor Clause'. + * @see org.eclipse.uml2.uml.Clause#getPredecessorClauses() + * @see #getClause() + * @generated + */ + EReference getClause_PredecessorClause(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Clause#getSuccessorClauses Successor Clause}'. + * + * + * @return the meta object for the reference list 'Successor Clause'. + * @see org.eclipse.uml2.uml.Clause#getSuccessorClauses() + * @see #getClause() + * @generated + */ + EReference getClause_SuccessorClause(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.Clause#getDecider Decider}'. + * + * + * @return the meta object for the reference 'Decider'. + * @see org.eclipse.uml2.uml.Clause#getDecider() + * @see #getClause() + * @generated + */ + EReference getClause_Decider(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Clause#getBodyOutputs Body Output}'. + * + * + * @return the meta object for the reference list 'Body Output'. + * @see org.eclipse.uml2.uml.Clause#getBodyOutputs() + * @see #getClause() + * @generated + */ + EReference getClause_BodyOutput(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.LoopNode Loop Node}'. + * + * + * @return the meta object for class 'Loop Node'. + * @see org.eclipse.uml2.uml.LoopNode + * @generated + */ + EClass getLoopNode(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.LoopNode#isTestedFirst Is Tested First}'. + * + * + * @return the meta object for the attribute 'Is Tested First'. + * @see org.eclipse.uml2.uml.LoopNode#isTestedFirst() + * @see #getLoopNode() + * @generated + */ + EAttribute getLoopNode_IsTestedFirst(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.LoopNode#getBodyParts Body Part}'. + * + * + * @return the meta object for the reference list 'Body Part'. + * @see org.eclipse.uml2.uml.LoopNode#getBodyParts() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_BodyPart(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.LoopNode#getSetupParts Setup Part}'. + * + * + * @return the meta object for the reference list 'Setup Part'. + * @see org.eclipse.uml2.uml.LoopNode#getSetupParts() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_SetupPart(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.LoopNode#getDecider Decider}'. + * + * + * @return the meta object for the reference 'Decider'. + * @see org.eclipse.uml2.uml.LoopNode#getDecider() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_Decider(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.LoopNode#getTests Test}'. + * + * + * @return the meta object for the reference list 'Test'. + * @see org.eclipse.uml2.uml.LoopNode#getTests() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_Test(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.LoopNode#getResults Result}'. + * + * + * @return the meta object for the containment reference list 'Result'. + * @see org.eclipse.uml2.uml.LoopNode#getResults() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_Result(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.LoopNode#getLoopVariables Loop Variable}'. + * + * + * @return the meta object for the containment reference list 'Loop Variable'. + * @see org.eclipse.uml2.uml.LoopNode#getLoopVariables() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_LoopVariable(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.LoopNode#getBodyOutputs Body Output}'. + * + * + * @return the meta object for the reference list 'Body Output'. + * @see org.eclipse.uml2.uml.LoopNode#getBodyOutputs() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_BodyOutput(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.LoopNode#getLoopVariableInputs Loop Variable Input}'. + * + * + * @return the meta object for the containment reference list 'Loop Variable Input'. + * @see org.eclipse.uml2.uml.LoopNode#getLoopVariableInputs() + * @see #getLoopNode() + * @generated + */ + EReference getLoopNode_LoopVariableInput(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExpansionNode Expansion Node}'. + * + * + * @return the meta object for class 'Expansion Node'. + * @see org.eclipse.uml2.uml.ExpansionNode + * @generated + */ + EClass getExpansionNode(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsOutput Region As Output}'. + * + * + * @return the meta object for the reference 'Region As Output'. + * @see org.eclipse.uml2.uml.ExpansionNode#getRegionAsOutput() + * @see #getExpansionNode() + * @generated + */ + EReference getExpansionNode_RegionAsOutput(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ExpansionNode#getRegionAsInput Region As Input}'. + * + * + * @return the meta object for the reference 'Region As Input'. + * @see org.eclipse.uml2.uml.ExpansionNode#getRegionAsInput() + * @see #getExpansionNode() + * @generated + */ + EReference getExpansionNode_RegionAsInput(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExpansionRegion Expansion Region}'. + * + * + * @return the meta object for class 'Expansion Region'. + * @see org.eclipse.uml2.uml.ExpansionRegion + * @generated + */ + EClass getExpansionRegion(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.ExpansionRegion#getMode Mode}'. + * + * + * @return the meta object for the attribute 'Mode'. + * @see org.eclipse.uml2.uml.ExpansionRegion#getMode() + * @see #getExpansionRegion() + * @generated + */ + EAttribute getExpansionRegion_Mode(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ExpansionRegion#getInputElements Input Element}'. + * + * + * @return the meta object for the reference list 'Input Element'. + * @see org.eclipse.uml2.uml.ExpansionRegion#getInputElements() + * @see #getExpansionRegion() + * @generated + */ + EReference getExpansionRegion_InputElement(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ExpansionRegion#getOutputElements Output Element}'. + * + * + * @return the meta object for the reference list 'Output Element'. + * @see org.eclipse.uml2.uml.ExpansionRegion#getOutputElements() + * @see #getExpansionRegion() + * @generated + */ + EReference getExpansionRegion_OutputElement(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ComponentRealization Component Realization}'. + * + * + * @return the meta object for class 'Component Realization'. + * @see org.eclipse.uml2.uml.ComponentRealization + * @generated + */ + EClass getComponentRealization(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.uml2.uml.ComponentRealization#getAbstraction Abstraction}'. + * + * + * @return the meta object for the container reference 'Abstraction'. + * @see org.eclipse.uml2.uml.ComponentRealization#getAbstraction() + * @see #getComponentRealization() + * @generated + */ + EReference getComponentRealization_Abstraction(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ComponentRealization#getRealizingClassifier Realizing Classifier}'. + * + * + * @return the meta object for the reference 'Realizing Classifier'. + * @see org.eclipse.uml2.uml.ComponentRealization#getRealizingClassifier() + * @see #getComponentRealization() + * @generated + */ + EReference getComponentRealization_RealizingClassifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Component Component}'. + * + * + * @return the meta object for class 'Component'. + * @see org.eclipse.uml2.uml.Component + * @generated + */ + EClass getComponent(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.Component#isIndirectlyInstantiated Is Indirectly Instantiated}'. + * + * + * @return the meta object for the attribute 'Is Indirectly Instantiated'. + * @see org.eclipse.uml2.uml.Component#isIndirectlyInstantiated() + * @see #getComponent() + * @generated + */ + EAttribute getComponent_IsIndirectlyInstantiated(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Component#getRequireds Required}'. + * + * + * @return the meta object for the reference list 'Required'. + * @see org.eclipse.uml2.uml.Component#getRequireds() + * @see #getComponent() + * @generated + */ + EReference getComponent_Required(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.Component#getProvideds Provided}'. + * + * + * @return the meta object for the reference list 'Provided'. + * @see org.eclipse.uml2.uml.Component#getProvideds() + * @see #getComponent() + * @generated + */ + EReference getComponent_Provided(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Component#getPackagedElements Packaged Element}'. + * + * + * @return the meta object for the containment reference list 'Packaged Element'. + * @see org.eclipse.uml2.uml.Component#getPackagedElements() + * @see #getComponent() + * @generated + */ + EReference getComponent_PackagedElement(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Component#getRealizations Realization}'. + * + * + * @return the meta object for the containment reference list 'Realization'. + * @see org.eclipse.uml2.uml.Component#getRealizations() + * @see #getComponent() + * @generated + */ + EReference getComponent_Realization(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Node Node}'. + * + * + * @return the meta object for class 'Node'. + * @see org.eclipse.uml2.uml.Node + * @generated + */ + EClass getNode(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.uml2.uml.Node#getNestedNodes Nested Node}'. + * + * + * @return the meta object for the containment reference list 'Nested Node'. + * @see org.eclipse.uml2.uml.Node#getNestedNodes() + * @see #getNode() + * @generated + */ + EReference getNode_NestedNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.Device Device}'. + * + * + * @return the meta object for class 'Device'. + * @see org.eclipse.uml2.uml.Device + * @generated + */ + EClass getDevice(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ExecutionEnvironment Execution Environment}'. + * + * + * @return the meta object for class 'Execution Environment'. + * @see org.eclipse.uml2.uml.ExecutionEnvironment + * @generated + */ + EClass getExecutionEnvironment(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.CommunicationPath Communication Path}'. + * + * + * @return the meta object for class 'Communication Path'. + * @see org.eclipse.uml2.uml.CommunicationPath + * @generated + */ + EClass getCommunicationPath(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.FinalState Final State}'. + * + * + * @return the meta object for class 'Final State'. + * @see org.eclipse.uml2.uml.FinalState + * @generated + */ + EClass getFinalState(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.TimeEvent Time Event}'. + * + * + * @return the meta object for class 'Time Event'. + * @see org.eclipse.uml2.uml.TimeEvent + * @generated + */ + EClass getTimeEvent(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.uml2.uml.TimeEvent#isRelative Is Relative}'. + * + * + * @return the meta object for the attribute 'Is Relative'. + * @see org.eclipse.uml2.uml.TimeEvent#isRelative() + * @see #getTimeEvent() + * @generated + */ + EAttribute getTimeEvent_IsRelative(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.TimeEvent#getWhen When}'. + * + * + * @return the meta object for the containment reference 'When'. + * @see org.eclipse.uml2.uml.TimeEvent#getWhen() + * @see #getTimeEvent() + * @generated + */ + EReference getTimeEvent_When(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.ProtocolTransition Protocol Transition}'. + * + * + * @return the meta object for class 'Protocol Transition'. + * @see org.eclipse.uml2.uml.ProtocolTransition + * @generated + */ + EClass getProtocolTransition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.uml2.uml.ProtocolTransition#getPostCondition Post Condition}'. + * + * + * @return the meta object for the containment reference 'Post Condition'. + * @see org.eclipse.uml2.uml.ProtocolTransition#getPostCondition() + * @see #getProtocolTransition() + * @generated + */ + EReference getProtocolTransition_PostCondition(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.uml2.uml.ProtocolTransition#getReferreds Referred}'. + * + * + * @return the meta object for the reference list 'Referred'. + * @see org.eclipse.uml2.uml.ProtocolTransition#getReferreds() + * @see #getProtocolTransition() + * @generated + */ + EReference getProtocolTransition_Referred(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.uml2.uml.ProtocolTransition#getPreCondition Pre Condition}'. + * + * + * @return the meta object for the reference 'Pre Condition'. + * @see org.eclipse.uml2.uml.ProtocolTransition#getPreCondition() + * @see #getProtocolTransition() + * @generated + */ + EReference getProtocolTransition_PreCondition(); + + /** + * Returns the meta object for class '{@link org.eclipse.uml2.uml.AssociationClass Association Class}'. + * + * + * @return the meta object for class 'Association Class'. + * @see org.eclipse.uml2.uml.AssociationClass + * @generated + */ + EClass getAssociationClass(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.VisibilityKind Visibility Kind}'. + * + * + * @return the meta object for enum 'Visibility Kind'. + * @see org.eclipse.uml2.uml.VisibilityKind + * @generated + */ + EEnum getVisibilityKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.CallConcurrencyKind Call Concurrency Kind}'. + * + * + * @return the meta object for enum 'Call Concurrency Kind'. + * @see org.eclipse.uml2.uml.CallConcurrencyKind + * @generated + */ + EEnum getCallConcurrencyKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.TransitionKind Transition Kind}'. + * + * + * @return the meta object for enum 'Transition Kind'. + * @see org.eclipse.uml2.uml.TransitionKind + * @generated + */ + EEnum getTransitionKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.PseudostateKind Pseudostate Kind}'. + * + * + * @return the meta object for enum 'Pseudostate Kind'. + * @see org.eclipse.uml2.uml.PseudostateKind + * @generated + */ + EEnum getPseudostateKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.AggregationKind Aggregation Kind}'. + * + * + * @return the meta object for enum 'Aggregation Kind'. + * @see org.eclipse.uml2.uml.AggregationKind + * @generated + */ + EEnum getAggregationKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.ParameterDirectionKind Parameter Direction Kind}'. + * + * + * @return the meta object for enum 'Parameter Direction Kind'. + * @see org.eclipse.uml2.uml.ParameterDirectionKind + * @generated + */ + EEnum getParameterDirectionKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.ParameterEffectKind Parameter Effect Kind}'. + * + * + * @return the meta object for enum 'Parameter Effect Kind'. + * @see org.eclipse.uml2.uml.ParameterEffectKind + * @generated + */ + EEnum getParameterEffectKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.ConnectorKind Connector Kind}'. + * + * + * @return the meta object for enum 'Connector Kind'. + * @see org.eclipse.uml2.uml.ConnectorKind + * @generated + */ + EEnum getConnectorKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.MessageKind Message Kind}'. + * + * + * @return the meta object for enum 'Message Kind'. + * @see org.eclipse.uml2.uml.MessageKind + * @generated + */ + EEnum getMessageKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.MessageSort Message Sort}'. + * + * + * @return the meta object for enum 'Message Sort'. + * @see org.eclipse.uml2.uml.MessageSort + * @generated + */ + EEnum getMessageSort(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.ObjectNodeOrderingKind Object Node Ordering Kind}'. + * + * + * @return the meta object for enum 'Object Node Ordering Kind'. + * @see org.eclipse.uml2.uml.ObjectNodeOrderingKind + * @generated + */ + EEnum getObjectNodeOrderingKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.InteractionOperatorKind Interaction Operator Kind}'. + * + * + * @return the meta object for enum 'Interaction Operator Kind'. + * @see org.eclipse.uml2.uml.InteractionOperatorKind + * @generated + */ + EEnum getInteractionOperatorKind(); + + /** + * Returns the meta object for enum '{@link org.eclipse.uml2.uml.ExpansionKind Expansion Kind}'. + * + * + * @return the meta object for enum 'Expansion Kind'. + * @see org.eclipse.uml2.uml.ExpansionKind + * @generated + */ + EEnum getExpansionKind(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + UMLFactory getUMLFactory(); + +} //UMLPackage diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPlugin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPlugin.java new file mode 100644 index 00000000..19e7cce4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UMLPlugin.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLPlugin.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the UML model plugin. + * + * + * @generated + */ +public final class UMLPlugin + extends EMFPlugin { + + /** + * Keep track of the singleton. + * + * + * @generated + */ + public static final UMLPlugin INSTANCE = new UMLPlugin(); + + /** + * Keep track of the singleton. + * + * + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * + * + * @generated + */ + public UMLPlugin() { + super(new ResourceLocator[]{}); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * + * @return the singleton instance. + * @generated + */ + public ResourceLocator getPluginResourceLocator() { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * + * + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() { + return plugin; + } + + /** + * The actual implementation of the Eclipse Plugin. + * + * + * @generated + */ + public static class Implementation + extends EclipsePlugin { + + /** + * Creates an instance. + * + * + * @generated + */ + public Implementation() { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UnmarshallAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UnmarshallAction.java new file mode 100644 index 00000000..a055547a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UnmarshallAction.java @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UnmarshallAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Unmarshall Action'. + * + * + * + * The outputs of this action correspond to the structural features of the specified type. The input must be of this type. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#getResults Result}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#getUnmarshallType Unmarshall Type}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#getObject Object}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getUnmarshallAction() + * @model + * @generated + */ +public interface UnmarshallAction + extends Action { + + /** + * Returns the value of the 'Result' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.OutputPin}. + * + * + * + * The values of the structural features of the input object. + * + * @return the value of the 'Result' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getUnmarshallAction_Result() + * @model type="org.eclipse.uml2.uml.OutputPin" required="true" ordered="false" + * @generated + */ + List getResults(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name' from the 'Result' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.OutputPin} to retrieve. + * @return The {@link org.eclipse.uml2.uml.OutputPin} with the specified 'Name', or null. + * @see #getResults() + * @generated + */ + OutputPin getResult(String name); + + /** + * Returns the value of the 'Unmarshall Type' reference. + * + * + * + * The type of the object to be unmarshalled. + * + * @return the value of the 'Unmarshall Type' reference. + * @see #setUnmarshallType(Classifier) + * @see org.eclipse.uml2.uml.UMLPackage#getUnmarshallAction_UnmarshallType() + * @model required="true" ordered="false" + * @generated + */ + Classifier getUnmarshallType(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.UnmarshallAction#getUnmarshallType Unmarshall Type}' reference. + * + * + * @param value the new value of the 'Unmarshall Type' reference. + * @see #getUnmarshallType() + * @generated + */ + void setUnmarshallType(Classifier value); + + /** + * Returns the value of the 'Object' containment reference. + * + * + * + * The object to be unmarshalled. + * + * @return the value of the 'Object' containment reference. + * @see #setObject(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getUnmarshallAction_Object() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getObject(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.UnmarshallAction#getObject Object}' containment reference. + * + * + * @param value the new value of the 'Object' containment reference. + * @see #getObject() + * @generated + */ + void setObject(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Object' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getObject() + * @generated + */ + InputPin createObject(); + + /** + * + * + * + * The type of the object input pin must be the same as the unmarshall classifier. + * true + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the object input pin is 1..1 + * true + * + * @model + * @generated + */ + boolean validateMultiplicityOfObject(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The number of result output pins must be the same as the number of structural features of the unmarshall classifier. + * true + * + * @model + * @generated + */ + boolean validateNumberOfResult(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier. + * true + * + * @model + * @generated + */ + boolean validateTypeAndOrdering(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier. + * + * + * true + * + * @model + * @generated + */ + boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * The unmarshall classifier must have at least one structural feature. + * true + * + * @model + * @generated + */ + boolean validateStructuralFeature(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * unmarshallType must be a Classifier with ordered attributes + * true + * + * @model + * @generated + */ + boolean validateUnmarshallTypeIsClassifier(DiagnosticChain diagnostics, + Map context); + +} // UnmarshallAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Usage.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Usage.java new file mode 100644 index 00000000..25d57dea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Usage.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Usage.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Usage'. + * + * + * + * A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a Usage is a Dependency in which the client requires the presence of the supplier. + * + * + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getUsage() + * @model + * @generated + */ +public interface Usage + extends Dependency { +} // Usage diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UseCase.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UseCase.java new file mode 100644 index 00000000..febbbcf5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/UseCase.java @@ -0,0 +1,266 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UseCase.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Use Case'. + * + * + * + * A UseCase is a kind of behaviored classifier that represents a declaration of an offered behavior. Each use case specifies some behavior, possibly including variants, that the subject can perform in collaboration with one or more actors. Use cases define the offered behavior of the subject without reference to its internal structure. These behaviors, involving + * + * interactions between the actor and the subject, may result in changes to the state of the subject and communications with its environment. A use case can include possible variations of its basic behavior, including exceptional behavior and error handling. + * + * + * + * The subject of a use case could be a physical system or any other element that may have behavior, such as a component, subsystem or class. Each use case specifies a unit of useful functionality that the subject provides to its users, i.e., a specific way of interacting with the subject. This functionality, which is initiated by an actor, must always be completed for the use case to complete. It is deemed complete if, after its execution, the subject will be in a state in which no further inputs or actions are expected and the use case can be initiated again or in an error state. + * + * + * + * Use cases can be used both for specification of the (external) requirements on a subject and for the specification of the functionality offered by a subject. Moreover, the use cases also state the requirements the specified subject poses on its environment by defining how they should interact with the subject so that it will be able to perform its services. + * + * + * + * The behavior of a use case can be described by a specification that is some kind of Behavior (through its ownedBehavior relationship), such as interactions, activities, and state machines, or by pre-conditions and post-conditions as well as by natural language text where appropriate. It may also be described indirectly through a Collaboration that uses the use case and its actors as the classifiers that type its parts. Which of these techniques to use depends on the nature of the use case behavior as well as on the intended reader. These descriptions can be combined. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.UseCase#getIncludes Include}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#getExtends Extend}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#getExtensionPoints Extension Point}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#getSubjects Subject}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getUseCase() + * @model + * @generated + */ +public interface UseCase + extends BehavioredClassifier { + + /** + * Returns the value of the 'Include' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Include}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Include#getIncludingCase Including Case}'. + * + * + * + * References the Include relationships owned by this use case. + * + * @return the value of the 'Include' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getUseCase_Include() + * @see org.eclipse.uml2.uml.Include#getIncludingCase + * @model type="org.eclipse.uml2.uml.Include" opposite="includingCase" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getIncludes(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Include} and appends it to the 'Include' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Include}. + * @see #getIncludes() + * @generated + */ + Include createInclude(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Include} with the specified 'Name' from the 'Include' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Include} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Include} with the specified 'Name', or null. + * @see #getIncludes() + * @generated + */ + Include getInclude(String name); + + /** + * Returns the value of the 'Extend' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Extend}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Extend#getExtension Extension}'. + * + * + * + * References the Extend relationships owned by this use case. + * + * @return the value of the 'Extend' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getUseCase_Extend() + * @see org.eclipse.uml2.uml.Extend#getExtension + * @model type="org.eclipse.uml2.uml.Extend" opposite="extension" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getExtends(); + + /** + * Creates a {@link org.eclipse.uml2.uml.Extend} and appends it to the 'Extend' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.Extend}. + * @see #getExtends() + * @generated + */ + Extend createExtend(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Extend} with the specified 'Name' from the 'Extend' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Extend} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Extend} with the specified 'Name', or null. + * @see #getExtends() + * @generated + */ + Extend getExtend(String name); + + /** + * Returns the value of the 'Extension Point' containment reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.ExtensionPoint}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ExtensionPoint#getUseCase Use Case}'. + * + * + * + * References the ExtensionPoints owned by the use case. + * + * @return the value of the 'Extension Point' containment reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getUseCase_ExtensionPoint() + * @see org.eclipse.uml2.uml.ExtensionPoint#getUseCase + * @model type="org.eclipse.uml2.uml.ExtensionPoint" opposite="useCase" containment="true" resolveProxies="false" ordered="false" + * @generated + */ + List getExtensionPoints(); + + /** + * Creates a {@link org.eclipse.uml2.uml.ExtensionPoint} and appends it to the 'Extension Point' containment reference list. + * + * + * @return The new {@link org.eclipse.uml2.uml.ExtensionPoint}. + * @see #getExtensionPoints() + * @generated + */ + ExtensionPoint createExtensionPoint(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.ExtensionPoint} with the specified 'Name' from the 'Extension Point' containment reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.ExtensionPoint} to retrieve. + * @return The {@link org.eclipse.uml2.uml.ExtensionPoint} with the specified 'Name', or null. + * @see #getExtensionPoints() + * @generated + */ + ExtensionPoint getExtensionPoint(String name); + + /** + * Returns the value of the 'Subject' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Classifier#getUseCases Use Case}'. + * + * + * + * References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it. + * + * @return the value of the 'Subject' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getUseCase_Subject() + * @see org.eclipse.uml2.uml.Classifier#getUseCases + * @model type="org.eclipse.uml2.uml.Classifier" opposite="useCase" ordered="false" + * @generated + */ + List getSubjects(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Subject' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. + * @see #getSubjects() + * @generated + */ + Classifier getSubject(String name); + + /** + * + * + * + * A UseCase must have a name. + * self.name -> notEmpty () + * + * @model + * @generated + */ + boolean validateMustHaveName(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * UseCases can only be involved in binary Associations. + * true + * + * @model + * @generated + */ + boolean validateBinaryAssociations(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * UseCases can not have Associations to UseCases specifying the same subject. + * true + * + * @model + * @generated + */ + boolean validateNoAssociationToUseCase(DiagnosticChain diagnostics, + Map context); + + /** + * + * + * + * A use case cannot include use cases that directly or indirectly include it. + * not self.allIncludedUseCases()->includes(self) + * + * @model + * @generated + */ + boolean validateCannotIncludeSelf(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case. + * result = self.include->union(self.include->collect(in | in.allIncludedUseCases())) + * + * @model type="org.eclipse.uml2.uml.UseCase" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + List allIncludedUseCases(); + +} // UseCase diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValuePin.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValuePin.java new file mode 100644 index 00000000..030b20d4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValuePin.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValuePin.java,v 1.1 2005/11/14 22:25:59 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Value Pin'. + * + * + * + * A value pin is an input pin that provides a value by evaluating a value specification. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ValuePin#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getValuePin() + * @model + * @generated + */ +public interface ValuePin + extends InputPin { + + /** + * Returns the value of the 'Value' containment reference. + * + * + * + * Value that the pin will provide. + * + * @return the value of the 'Value' containment reference. + * @see #setValue(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getValuePin_Value() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ValuePin#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getValue() + * @generated + */ + ValueSpecification createValue(EClass eClass); + + /** + * + * + * + * The type of value specification must be compatible with the type of the value pin. + * true + * + * @model + * @generated + */ + boolean validateCompatibleType(DiagnosticChain diagnostics, Map context); + +} // ValuePin diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecification.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecification.java new file mode 100644 index 00000000..15313504 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecification.java @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValueSpecification.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +/** + * + * A representation of the model object 'Value Specification'. + * + * + * + * ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. It adds a specialization to Constructs::TypedElement. + * ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. + * ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getValueSpecification() + * @model abstract="true" + * @generated + */ +public interface ValueSpecification + extends PackageableElement, TypedElement { + + /** + * + * + * + * The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals. + * result = false + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isComputable(); + + /** + * + * + * + * The query integerValue() gives a single Integer value when one can be computed. + * result = Set{} + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int integerValue(); + + /** + * + * + * + * The query booleanValue() gives a single Boolean value when one can be computed. + * result = Set{} + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean booleanValue(); + + /** + * + * + * + * The query stringValue() gives a single String value when one can be computed. + * result = Set{} + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + String stringValue(); + + /** + * + * + * + * The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed. + * result = Set{} + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + int unlimitedValue(); + + /** + * + * + * + * The query isNull() returns true when it can be computed that the value is null. + * result = false + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isNull(); + +} // ValueSpecification diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecificationAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecificationAction.java new file mode 100644 index 00000000..031ffe0d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/ValueSpecificationAction.java @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValueSpecificationAction.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Value Specification Action'. + * + * + * + * The action returns the result of evaluating a value specification. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ValueSpecificationAction#getValue Value}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecificationAction#getResult Result}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getValueSpecificationAction() + * @model + * @generated + */ +public interface ValueSpecificationAction + extends Action { + + /** + * Returns the value of the 'Value' containment reference. + * + * + * + * Value specification to be evaluated. + * + * @return the value of the 'Value' containment reference. + * @see #setValue(ValueSpecification) + * @see org.eclipse.uml2.uml.UMLPackage#getValueSpecificationAction_Value() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + ValueSpecification getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ValueSpecificationAction#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(ValueSpecification value); + + /** + * Creates a {@link org.eclipse.uml2.uml.ValueSpecification} and sets the 'Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. + * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. + * @see #getValue() + * @generated + */ + ValueSpecification createValue(EClass eClass); + + /** + * Returns the value of the 'Result' containment reference. + * + * + * + * Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. + * + * @return the value of the 'Result' containment reference. + * @see #setResult(OutputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getValueSpecificationAction_Result() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + OutputPin getResult(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.ValueSpecificationAction#getResult Result}' containment reference. + * + * + * @param value the new value of the 'Result' containment reference. + * @see #getResult() + * @generated + */ + void setResult(OutputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.OutputPin} and sets the 'Result' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.OutputPin}. + * @see #getResult() + * @generated + */ + OutputPin createResult(); + + /** + * + * + * + * The type of value specification must be compatible with the type of the result pin. + * true + * + * @model + * @generated + */ + boolean validateCompatibleType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the result pin is 1..1 + * true + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + +} // ValueSpecificationAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Variable.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Variable.java new file mode 100644 index 00000000..76b42571 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Variable.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Variable.java,v 1.1 2005/11/14 22:26:01 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Variable'. + * + * + * + * A variable specifies data storage shared by the actions within a group. There are actions to write and read variables. These actions are treated as side effecting actions, similar to the actions to write and read object attributes and associations. There are no sequencing constraints among actions that access the same variable. Such actions must be explicitly coordinated by control flows or other constraints. + * + * + * + * Any values contained by a variable must conform to the type of the variable and have cardinalities allowed by the multiplicity of the variable. + * + * + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Variable#getActivityScope Activity Scope}
  • + *
  • {@link org.eclipse.uml2.uml.Variable#getScope Scope}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getVariable() + * @model + * @generated + */ +public interface Variable + extends TypedElement, MultiplicityElement { + + /** + * Returns the value of the 'Activity Scope' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Activity#getVariables Variable}'. + * + * + * + * An activity that owns the variable. + * + * @return the value of the 'Activity Scope' container reference. + * @see #setActivityScope(Activity) + * @see org.eclipse.uml2.uml.UMLPackage#getVariable_ActivityScope() + * @see org.eclipse.uml2.uml.Activity#getVariables + * @model opposite="variable" ordered="false" + * @generated + */ + Activity getActivityScope(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Variable#getActivityScope Activity Scope}' container reference. + * + * + * @param value the new value of the 'Activity Scope' container reference. + * @see #getActivityScope() + * @generated + */ + void setActivityScope(Activity value); + + /** + * Returns the value of the 'Scope' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.StructuredActivityNode#getVariables Variable}'. + * + * + * + * A structured activity node that owns the variable. + * + * @return the value of the 'Scope' container reference. + * @see #setScope(StructuredActivityNode) + * @see org.eclipse.uml2.uml.UMLPackage#getVariable_Scope() + * @see org.eclipse.uml2.uml.StructuredActivityNode#getVariables + * @model opposite="variable" ordered="false" + * @generated + */ + StructuredActivityNode getScope(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Variable#getScope Scope}' container reference. + * + * + * @param value the new value of the 'Scope' container reference. + * @see #getScope() + * @generated + */ + void setScope(StructuredActivityNode value); + + /** + * + * + * + * A variable is owned by a StructuredNode or Activity, but not both. + * true + * + * @model + * @generated + */ + boolean validateOwned(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable. + * + * + * result = true + * + * @model required="true" ordered="false" aRequired="true" aOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + boolean isAccessibleBy(Action a); + +} // Variable diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VariableAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VariableAction.java new file mode 100644 index 00000000..331e9c1d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VariableAction.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VariableAction.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Variable Action'. + * + * + * + * VariableAction is an abstract class for actions that operate on a statically specified variable. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.VariableAction#getVariable Variable}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getVariableAction() + * @model abstract="true" + * @generated + */ +public interface VariableAction + extends Action { + + /** + * Returns the value of the 'Variable' reference. + * + * + * + * Variable to be read. + * + * @return the value of the 'Variable' reference. + * @see #setVariable(Variable) + * @see org.eclipse.uml2.uml.UMLPackage#getVariableAction_Variable() + * @model required="true" ordered="false" + * @generated + */ + Variable getVariable(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.VariableAction#getVariable Variable}' reference. + * + * + * @param value the new value of the 'Variable' reference. + * @see #getVariable() + * @generated + */ + void setVariable(Variable value); + + /** + * + * + * + * The action must be in the scope of the variable. + * self.variable.isAccessibleBy(self) + * + * @model + * @generated + */ + boolean validateScopeOfVariable(DiagnosticChain diagnostics, Map context); + +} // VariableAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Vertex.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Vertex.java new file mode 100644 index 00000000..2e64ece6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/Vertex.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: Vertex.java,v 1.1 2005/11/14 22:26:00 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.List; + +/** + * + * A representation of the model object 'Vertex'. + * + * + * + * A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Vertex#getOutgoings Outgoing}
  • + *
  • {@link org.eclipse.uml2.uml.Vertex#getIncomings Incoming}
  • + *
  • {@link org.eclipse.uml2.uml.Vertex#getContainer Container}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getVertex() + * @model abstract="true" + * @generated + */ +public interface Vertex + extends NamedElement { + + /** + * Returns the value of the 'Outgoing' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Transition}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Transition#getSource Source}'. + * + * + * + * Specifies the transitions departing from this vertex. + * + * @return the value of the 'Outgoing' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getVertex_Outgoing() + * @see org.eclipse.uml2.uml.Transition#getSource + * @model type="org.eclipse.uml2.uml.Transition" opposite="source" ordered="false" + * @generated + */ + List getOutgoings(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Transition} with the specified 'Name' from the 'Outgoing' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Transition} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Transition} with the specified 'Name', or null. + * @see #getOutgoings() + * @generated + */ + Transition getOutgoing(String name); + + /** + * Returns the value of the 'Incoming' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.Transition}. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Transition#getTarget Target}'. + * + * + * + * Specifies the transitions entering this vertex. + * + * @return the value of the 'Incoming' reference list. + * @see org.eclipse.uml2.uml.UMLPackage#getVertex_Incoming() + * @see org.eclipse.uml2.uml.Transition#getTarget + * @model type="org.eclipse.uml2.uml.Transition" opposite="target" ordered="false" + * @generated + */ + List getIncomings(); + + /** + * Retrieves the {@link org.eclipse.uml2.uml.Transition} with the specified 'Name' from the 'Incoming' reference list. + * + * + * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Transition} to retrieve. + * @return The {@link org.eclipse.uml2.uml.Transition} with the specified 'Name', or null. + * @see #getIncomings() + * @generated + */ + Transition getIncoming(String name); + + /** + * Returns the value of the 'Container' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Region#getSubvertices Subvertex}'. + * + * + * + * The region that contains this vertex. + * + * @return the value of the 'Container' container reference. + * @see #setContainer(Region) + * @see org.eclipse.uml2.uml.UMLPackage#getVertex_Container() + * @see org.eclipse.uml2.uml.Region#getSubvertices + * @model opposite="subvertex" ordered="false" + * @generated + */ + Region getContainer(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.Vertex#getContainer Container}' container reference. + * + * + * @param value the new value of the 'Container' container reference. + * @see #getContainer() + * @generated + */ + void setContainer(Region value); + + /** + * + * + * + * The operation containingStatemachine() returns the state machine in which this Vertex is defined + * result = if not container->isEmpty() + * then + * -- the container is a region + * container.containingStateMachine() + * else if (oclIsKindOf(Pseudostate)) then + * -- entry or exit point? + * if (kind = #entryPoint) or (kind = #exitPoint) then + * stateMachine + * else if (oclIsKindOf(ConnectionPointReference)) then + * state.containingStateMachine() -- no other valid cases possible + * endif + * + * + * @model required="true" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='spec'" + * @generated + */ + StateMachine containingStatemachine(); + +} // Vertex diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VisibilityKind.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VisibilityKind.java new file mode 100644 index 00000000..21a0f193 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/VisibilityKind.java @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VisibilityKind.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * + * A representation of the literals of the enumeration 'Visibility Kind', + * and utility methods for working with them. + * + * + * VisibilityKind is an enumeration of the following literal values: + * + * - public + * + * - private + * + * - protected + * + * - package + * + * @see org.eclipse.uml2.uml.UMLPackage#getVisibilityKind() + * @model + * @generated + */ +public final class VisibilityKind + extends AbstractEnumerator { + + /** + * The 'Public' literal value. + * + * + * + * A public element is visible to all elements that can access the contents of the namespace that owns it. + * + * @see #PUBLIC_LITERAL + * @model name="public" + * @generated + * @ordered + */ + public static final int PUBLIC = 0; + + /** + * The 'Private' literal value. + * + * + * + * A private element is only visible inside the namespace that owns it. + * + * @see #PRIVATE_LITERAL + * @model name="private" + * @generated + * @ordered + */ + public static final int PRIVATE = 1; + + /** + * The 'Protected' literal value. + * + * + * + * A protected element is visible to elements that have a generalization relationship to the namespace that owns it. + * + * @see #PROTECTED_LITERAL + * @model name="protected" + * @generated + * @ordered + */ + public static final int PROTECTED = 2; + + /** + * The 'Package' literal value. + * + * + * + * A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible. + * + * @see #PACKAGE_LITERAL + * @model name="package" + * @generated + * @ordered + */ + public static final int PACKAGE = 3; + + /** + * The 'Public' literal object. + * + * + * @see #PUBLIC + * @generated + * @ordered + */ + public static final VisibilityKind PUBLIC_LITERAL = new VisibilityKind( + PUBLIC, "public", "public"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Private' literal object. + * + * + * @see #PRIVATE + * @generated + * @ordered + */ + public static final VisibilityKind PRIVATE_LITERAL = new VisibilityKind( + PRIVATE, "private", "private"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Protected' literal object. + * + * + * @see #PROTECTED + * @generated + * @ordered + */ + public static final VisibilityKind PROTECTED_LITERAL = new VisibilityKind( + PROTECTED, "protected", "protected"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The 'Package' literal object. + * + * + * @see #PACKAGE + * @generated + * @ordered + */ + public static final VisibilityKind PACKAGE_LITERAL = new VisibilityKind( + PACKAGE, "package", "package"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * An array of all the 'Visibility Kind' enumerators. + * + * + * @generated + */ + private static final VisibilityKind[] VALUES_ARRAY = new VisibilityKind[]{ + PUBLIC_LITERAL, PRIVATE_LITERAL, PROTECTED_LITERAL, PACKAGE_LITERAL,}; + + /** + * A public read-only list of all the 'Visibility Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays + .asList(VALUES_ARRAY)); + + /** + * Returns the 'Visibility Kind' literal with the specified literal value. + * + * + * @generated + */ + public static VisibilityKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + VisibilityKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Visibility Kind' literal with the specified name. + * + * + * @generated + */ + public static VisibilityKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + VisibilityKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Visibility Kind' literal with the specified integer value. + * + * + * @generated + */ + public static VisibilityKind get(int value) { + switch (value) { + case PUBLIC : + return PUBLIC_LITERAL; + case PRIVATE : + return PRIVATE_LITERAL; + case PROTECTED : + return PROTECTED_LITERAL; + case PACKAGE : + return PACKAGE_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private VisibilityKind(int value, String name, String literal) { + super(value, name, literal); + } + +} //VisibilityKind diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteLinkAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteLinkAction.java new file mode 100644 index 00000000..83471a80 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteLinkAction.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteLinkAction.java,v 1.1 2005/11/14 22:25:58 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +/** + * + * A representation of the model object 'Write Link Action'. + * + * + * + * A write link action takes a complete identification of a link and creates or destroys it. + * + * + * + * @see org.eclipse.uml2.uml.UMLPackage#getWriteLinkAction() + * @model abstract="true" + * @generated + */ +public interface WriteLinkAction + extends LinkAction { + + /** + * + * + * + * The visibility of at least one end must allow access to the class using the action. + * true + * + * @model + * @generated + */ + boolean validateAllowAccess(DiagnosticChain diagnostics, Map context); + +} // WriteLinkAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteStructuralFeatureAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteStructuralFeatureAction.java new file mode 100644 index 00000000..cbc773c9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteStructuralFeatureAction.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteStructuralFeatureAction.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Write Structural Feature Action'. + * + * + * + * A write structural feature action operates on a structural feature of an object to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write structural feature actions are inherited from StructuralFeatureAction. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getWriteStructuralFeatureAction() + * @model abstract="true" + * @generated + */ +public interface WriteStructuralFeatureAction + extends StructuralFeatureAction { + + /** + * Returns the value of the 'Value' containment reference. + * + * + * + * Value to be added or removed from the structural feature. + * + * @return the value of the 'Value' containment reference. + * @see #setValue(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getWriteStructuralFeatureAction_Value() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getValue() + * @generated + */ + InputPin createValue(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Value' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getValue() + * @generated + */ + InputPin createValue(); + + /** + * + * + * + * The type input pin is the same as the classifier of the structural feature. + * self.value.type = self.structuralFeature.featuringClassifier + * + * @model + * @generated + */ + boolean validateInputPin(DiagnosticChain diagnostics, Map context); + +} // WriteStructuralFeatureAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteVariableAction.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteVariableAction.java new file mode 100644 index 00000000..cae5f735 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/WriteVariableAction.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteVariableAction.java,v 1.1 2005/11/14 22:25:57 khussey Exp $ + */ +package org.eclipse.uml2.uml; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * A representation of the model object 'Write Variable Action'. + * + * + * + * A write variable action operates on a variable to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write variable actions are inherited from VariableAction. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.WriteVariableAction#getValue Value}
  • + *
+ *

+ * + * @see org.eclipse.uml2.uml.UMLPackage#getWriteVariableAction() + * @model abstract="true" + * @generated + */ +public interface WriteVariableAction + extends VariableAction { + + /** + * Returns the value of the 'Value' containment reference. + * + * + * + * Value to be added or removed from the variable. + * + * @return the value of the 'Value' containment reference. + * @see #setValue(InputPin) + * @see org.eclipse.uml2.uml.UMLPackage#getWriteVariableAction_Value() + * @model containment="true" resolveProxies="false" required="true" ordered="false" + * @generated + */ + InputPin getValue(); + + /** + * Sets the value of the '{@link org.eclipse.uml2.uml.WriteVariableAction#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(InputPin value); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Value' containment reference. + * + * + * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create. + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getValue() + * @generated + */ + InputPin createValue(EClass eClass); + + /** + * Creates a {@link org.eclipse.uml2.uml.InputPin} and sets the 'Value' containment reference. + * + * + * @return The new {@link org.eclipse.uml2.uml.InputPin}. + * @see #getValue() + * @generated + */ + InputPin createValue(); + + /** + * + * + * + * The type input pin is the same as the type of the variable. + * self.value.type = self.variable.type + * + * @model + * @generated + */ + boolean validateSameType(DiagnosticChain diagnostics, Map context); + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.value.multiplicity.is(1,1) + * + * @model + * @generated + */ + boolean validateMultiplicity(DiagnosticChain diagnostics, Map context); + +} // WriteVariableAction diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AbstractionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AbstractionImpl.java new file mode 100644 index 00000000..59b79be0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AbstractionImpl.java @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AbstractionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Abstraction; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Abstraction'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AbstractionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AbstractionImpl#getMapping Mapping}
  • + *
+ *

+ * + * @generated + */ +public class AbstractionImpl + extends DependencyImpl + implements Abstraction { + + /** + * + * + * @generated + */ + protected AbstractionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAbstraction(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ABSTRACTION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ABSTRACTION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ABSTRACTION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getAbstraction_Mapping()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public OpaqueExpression getMapping() { + OpaqueExpression mapping = (OpaqueExpression) eVirtualGet(UMLPackage.ABSTRACTION__MAPPING); + return mapping; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMapping(OpaqueExpression newMapping, + NotificationChain msgs) { + Object oldMapping = eVirtualSet(UMLPackage.ABSTRACTION__MAPPING, + newMapping); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ABSTRACTION__MAPPING, + oldMapping == EVIRTUAL_NO_VALUE + ? null + : oldMapping, newMapping); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setMapping(OpaqueExpression newMapping) { + OpaqueExpression mapping = (OpaqueExpression) eVirtualGet(UMLPackage.ABSTRACTION__MAPPING); + if (newMapping != mapping) { + NotificationChain msgs = null; + if (mapping != null) + msgs = ((InternalEObject) mapping).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.ABSTRACTION__MAPPING, + null, msgs); + if (newMapping != null) + msgs = ((InternalEObject) newMapping).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.ABSTRACTION__MAPPING, + null, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ABSTRACTION__MAPPING, newMapping, newMapping)); + + } + + /** + * + * + * @generated + */ + public OpaqueExpression createMapping() { + OpaqueExpression newMapping = UMLFactory.eINSTANCE + .createOpaqueExpression(); + setMapping(newMapping); + return newMapping; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ABSTRACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ABSTRACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ABSTRACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ABSTRACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ABSTRACTION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ABSTRACTION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.ABSTRACTION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ABSTRACTION__CLIENT : + return ((InternalEList) getClients()).basicRemove(otherEnd, + msgs); + case UMLPackage.ABSTRACTION__MAPPING : + return basicSetMapping(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ABSTRACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ABSTRACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ABSTRACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ABSTRACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ABSTRACTION__NAME : + return getName(); + case UMLPackage.ABSTRACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.ABSTRACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ABSTRACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ABSTRACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ABSTRACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ABSTRACTION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ABSTRACTION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ABSTRACTION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.ABSTRACTION__SOURCE : + return getSources(); + case UMLPackage.ABSTRACTION__TARGET : + return getTargets(); + case UMLPackage.ABSTRACTION__SUPPLIER : + return getSuppliers(); + case UMLPackage.ABSTRACTION__CLIENT : + return getClients(); + case UMLPackage.ABSTRACTION__MAPPING : + return getMapping(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ABSTRACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ABSTRACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ABSTRACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.ABSTRACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ABSTRACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ABSTRACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ABSTRACTION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ABSTRACTION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ABSTRACTION__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.ABSTRACTION__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + case UMLPackage.ABSTRACTION__MAPPING : + setMapping((OpaqueExpression) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ABSTRACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ABSTRACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ABSTRACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ABSTRACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ABSTRACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ABSTRACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ABSTRACTION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ABSTRACTION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ABSTRACTION__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.ABSTRACTION__CLIENT : + getClients().clear(); + return; + case UMLPackage.ABSTRACTION__MAPPING : + setMapping((OpaqueExpression) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ABSTRACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ABSTRACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ABSTRACTION__OWNER : + return isSetOwner(); + case UMLPackage.ABSTRACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ABSTRACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ABSTRACTION__NAME : + String name = eVirtualIsSet(UMLPackage.ABSTRACTION__NAME) + ? (String) eVirtualGet(UMLPackage.ABSTRACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ABSTRACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ABSTRACTION__VISIBILITY) + && eVirtualGet(UMLPackage.ABSTRACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ABSTRACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ABSTRACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ABSTRACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ABSTRACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ABSTRACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ABSTRACTION__NAME_EXPRESSION) != null; + case UMLPackage.ABSTRACTION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ABSTRACTION__TEMPLATE_PARAMETER) != null; + case UMLPackage.ABSTRACTION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ABSTRACTION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.ABSTRACTION__SOURCE : + return isSetSources(); + case UMLPackage.ABSTRACTION__TARGET : + return isSetTargets(); + case UMLPackage.ABSTRACTION__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.ABSTRACTION__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.ABSTRACTION__CLIENT : + List client = (List) eVirtualGet(UMLPackage.ABSTRACTION__CLIENT); + return client != null && !client.isEmpty(); + case UMLPackage.ABSTRACTION__MAPPING : + return eVirtualGet(UMLPackage.ABSTRACTION__MAPPING) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getAbstraction_Mapping()); + } + +} //AbstractionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java new file mode 100644 index 00000000..503b0de4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java @@ -0,0 +1,528 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AcceptCallActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.AcceptCallAction; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.AcceptCallActionOperations; + +/** + * + * An implementation of the model object 'Accept Call Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AcceptCallActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AcceptCallActionImpl#getReturnInformation Return Information}
  • + *
+ *

+ * + * @generated + */ +public class AcceptCallActionImpl + extends AcceptEventActionImpl + implements AcceptCallAction { + + /** + * + * + * @generated + */ + protected AcceptCallActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAcceptCallAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.ACCEPT_CALL_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.ACCEPT_CALL_ACTION__OUTPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getAcceptEventAction_Result(), + UMLPackage.eINSTANCE + .getAcceptCallAction_ReturnInformation()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getReturnInformation() { + OutputPin returnInformation = (OutputPin) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION); + if (returnInformation != null && returnInformation.eIsProxy()) { + OutputPin oldReturnInformation = returnInformation; + returnInformation = (OutputPin) eResolveProxy((InternalEObject) returnInformation); + if (returnInformation != oldReturnInformation) { + eVirtualSet(UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION, + returnInformation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION, + oldReturnInformation, returnInformation)); + } + } + return returnInformation; + } + + /** + * + * + * @generated + */ + public OutputPin basicGetReturnInformation() { + return (OutputPin) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION); + } + + /** + * + * + * @generated + */ + public void setReturnInformation(OutputPin newReturnInformation) { + OutputPin returnInformation = newReturnInformation; + Object oldReturnInformation = eVirtualSet( + UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION, + returnInformation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION, + oldReturnInformation == EVIRTUAL_NO_VALUE + ? null + : oldReturnInformation, returnInformation)); + + } + + /** + * + * + * @generated + */ + public boolean validateResultPins(DiagnosticChain diagnostics, Map context) { + return AcceptCallActionOperations.validateResultPins(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTriggerCallEvent(DiagnosticChain diagnostics, + Map context) { + return AcceptCallActionOperations.validateTriggerCallEvent(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateIsUnmarshall(DiagnosticChain diagnostics, Map context) { + return AcceptCallActionOperations.validateIsUnmarshall(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_CALL_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACCEPT_CALL_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACCEPT_CALL_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACCEPT_CALL_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACCEPT_CALL_ACTION__NAME : + return getName(); + case UMLPackage.ACCEPT_CALL_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.ACCEPT_CALL_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACCEPT_CALL_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACCEPT_CALL_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACCEPT_CALL_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACCEPT_CALL_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACCEPT_CALL_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACCEPT_CALL_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.ACCEPT_CALL_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ACCEPT_CALL_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.ACCEPT_CALL_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.ACCEPT_CALL_ACTION__INPUT : + return getInputs(); + case UMLPackage.ACCEPT_CALL_ACTION__CONTEXT : + return getContext(); + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.ACCEPT_CALL_ACTION__IS_UNMARSHALL : + return isUnmarshall() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACCEPT_CALL_ACTION__RESULT : + return getResults(); + case UMLPackage.ACCEPT_CALL_ACTION__TRIGGER : + return getTriggers(); + case UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION : + if (resolve) + return getReturnInformation(); + return basicGetReturnInformation(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_CALL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACCEPT_CALL_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IS_UNMARSHALL : + setIsUnmarshall(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACCEPT_CALL_ACTION__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__TRIGGER : + getTriggers().clear(); + getTriggers().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION : + setReturnInformation((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_CALL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACCEPT_CALL_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACCEPT_CALL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACCEPT_CALL_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACCEPT_CALL_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACCEPT_CALL_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__IS_UNMARSHALL : + setIsUnmarshall(IS_UNMARSHALL_EDEFAULT); + return; + case UMLPackage.ACCEPT_CALL_ACTION__RESULT : + getResults().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__TRIGGER : + getTriggers().clear(); + return; + case UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION : + setReturnInformation((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_CALL_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACCEPT_CALL_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.ACCEPT_CALL_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.ACCEPT_CALL_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACCEPT_CALL_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACCEPT_CALL_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACCEPT_CALL_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACCEPT_CALL_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACCEPT_CALL_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.ACCEPT_CALL_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACCEPT_CALL_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACCEPT_CALL_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACCEPT_CALL_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.ACCEPT_CALL_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.ACCEPT_CALL_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__IS_UNMARSHALL : + return ((eFlags & IS_UNMARSHALL_EFLAG) != 0) != IS_UNMARSHALL_EDEFAULT; + case UMLPackage.ACCEPT_CALL_ACTION__RESULT : + List result = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__RESULT); + return result != null && !result.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__TRIGGER : + List trigger = (List) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__TRIGGER); + return trigger != null && !trigger.isEmpty(); + case UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION : + return eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE + .getAcceptCallAction_ReturnInformation()); + } + +} //AcceptCallActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java new file mode 100644 index 00000000..9805d39b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java @@ -0,0 +1,676 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AcceptEventActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.AcceptEventAction; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.AcceptEventActionOperations; + +/** + * + * An implementation of the model object 'Accept Event Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#isUnmarshall Is Unmarshall}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#getResults Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#getTriggers Trigger}
  • + *
+ *

+ * + * @generated + */ +public class AcceptEventActionImpl + extends ActionImpl + implements AcceptEventAction { + + /** + * The default value of the '{@link #isUnmarshall() Is Unmarshall}' attribute. + * + * + * @see #isUnmarshall() + * @generated + * @ordered + */ + protected static final boolean IS_UNMARSHALL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isUnmarshall() Is Unmarshall}' attribute. + * + * + * @see #isUnmarshall() + * @generated + * @ordered + */ + protected static final int IS_UNMARSHALL_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected AcceptEventActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAcceptEventAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.ACCEPT_EVENT_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.ACCEPT_EVENT_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getAcceptEventAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public boolean isUnmarshall() { + return (eFlags & IS_UNMARSHALL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsUnmarshall(boolean newIsUnmarshall) { + boolean oldIsUnmarshall = (eFlags & IS_UNMARSHALL_EFLAG) != 0; + if (newIsUnmarshall) + eFlags |= IS_UNMARSHALL_EFLAG; + else + eFlags &= ~IS_UNMARSHALL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACCEPT_EVENT_ACTION__IS_UNMARSHALL, oldIsUnmarshall, + newIsUnmarshall)); + + } + + /** + * + * + * @generated + */ + public List getResults() { + List result = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__RESULT); + if (result == null) { + eVirtualSet(UMLPackage.ACCEPT_EVENT_ACTION__RESULT, + result = new EObjectResolvingEList(OutputPin.class, this, + UMLPackage.ACCEPT_EVENT_ACTION__RESULT)); + } + return result; + } + + /** + * + * + * @generated + */ + public OutputPin getResult(String name) { + for (Iterator i = getResults().iterator(); i.hasNext();) { + OutputPin result = (OutputPin) i.next(); + if (name.equals(result.getName())) { + return result; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getTriggers() { + List trigger = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER); + if (trigger == null) { + eVirtualSet(UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER, + trigger = new EObjectContainmentEList(Trigger.class, this, + UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER)); + } + return trigger; + } + + /** + * + * + * @generated + */ + public Trigger createTrigger() { + Trigger newTrigger = UMLFactory.eINSTANCE.createTrigger(); + getTriggers().add(newTrigger); + return newTrigger; + } + + /** + * + * + * @generated + */ + public Trigger getTrigger(String name) { + for (Iterator i = getTriggers().iterator(); i.hasNext();) { + Trigger trigger = (Trigger) i.next(); + if (name.equals(trigger.getName())) { + return trigger; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateNoInputPins(DiagnosticChain diagnostics, Map context) { + return AcceptEventActionOperations.validateNoInputPins(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoOutputPins(DiagnosticChain diagnostics, Map context) { + return AcceptEventActionOperations.validateNoOutputPins(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTriggerEvents(DiagnosticChain diagnostics, + Map context) { + return AcceptEventActionOperations.validateTriggerEvents(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateIsUnmarshall(DiagnosticChain diagnostics, Map context) { + return AcceptEventActionOperations.validateIsUnmarshall(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACCEPT_EVENT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER : + return ((InternalEList) getTriggers()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_EVENT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACCEPT_EVENT_ACTION__NAME : + return getName(); + case UMLPackage.ACCEPT_EVENT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.ACCEPT_EVENT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACCEPT_EVENT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACCEPT_EVENT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACCEPT_EVENT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.ACCEPT_EVENT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.ACCEPT_EVENT_ACTION__INPUT : + return getInputs(); + case UMLPackage.ACCEPT_EVENT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.ACCEPT_EVENT_ACTION__IS_UNMARSHALL : + return isUnmarshall() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACCEPT_EVENT_ACTION__RESULT : + return getResults(); + case UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER : + return getTriggers(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_EVENT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IS_UNMARSHALL : + setIsUnmarshall(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER : + getTriggers().clear(); + getTriggers().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_EVENT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__IS_UNMARSHALL : + setIsUnmarshall(IS_UNMARSHALL_EDEFAULT); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__RESULT : + getResults().clear(); + return; + case UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER : + getTriggers().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACCEPT_EVENT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.ACCEPT_EVENT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.ACCEPT_EVENT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACCEPT_EVENT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACCEPT_EVENT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACCEPT_EVENT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.ACCEPT_EVENT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACCEPT_EVENT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACCEPT_EVENT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACCEPT_EVENT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.ACCEPT_EVENT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.ACCEPT_EVENT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__IS_UNMARSHALL : + return ((eFlags & IS_UNMARSHALL_EFLAG) != 0) != IS_UNMARSHALL_EDEFAULT; + case UMLPackage.ACCEPT_EVENT_ACTION__RESULT : + List result = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__RESULT); + return result != null && !result.isEmpty(); + case UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER : + List trigger = (List) eVirtualGet(UMLPackage.ACCEPT_EVENT_ACTION__TRIGGER); + return trigger != null && !trigger.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isUnmarshall: "); //$NON-NLS-1$ + result.append((eFlags & IS_UNMARSHALL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getAcceptEventAction_Result()); + } + +} //AcceptEventActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java new file mode 100644 index 00000000..dd51d966 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java @@ -0,0 +1,352 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionExecutionSpecificationImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.ActionExecutionSpecification; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActionExecutionSpecificationOperations; + +/** + * + * An implementation of the model object 'Action Execution Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl#getAction Action}
  • + *
+ *

+ * + * @generated + */ +public class ActionExecutionSpecificationImpl + extends ExecutionSpecificationImpl + implements ActionExecutionSpecification { + + /** + * + * + * @generated + */ + protected ActionExecutionSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActionExecutionSpecification(); + } + + /** + * + * + * @generated + */ + public Action getAction() { + Action action = (Action) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION); + if (action != null && action.eIsProxy()) { + Action oldAction = action; + action = (Action) eResolveProxy((InternalEObject) action); + if (action != oldAction) { + eVirtualSet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION, + action); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION, + oldAction, action)); + } + } + return action; + } + + /** + * + * + * @generated + */ + public Action basicGetAction() { + return (Action) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION); + } + + /** + * + * + * @generated + */ + public void setAction(Action newAction) { + Action action = newAction; + Object oldAction = eVirtualSet( + UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION, action); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION, + oldAction == EVIRTUAL_NO_VALUE + ? null + : oldAction, action)); + + } + + /** + * + * + * @generated + */ + public boolean validateActionReferenced(DiagnosticChain diagnostics, + Map context) { + return ActionExecutionSpecificationOperations.validateActionReferenced( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME : + return getName(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__COVERED : + return getCovereds(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__START : + if (resolve) + return getStart(); + return basicGetStart(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__FINISH : + if (resolve) + return getFinish(); + return basicGetFinish(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION : + if (resolve) + return getAction(); + return basicGetAction(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__START : + setStart((ExecutionOccurrenceSpecification) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__FINISH : + setFinish((ExecutionOccurrenceSpecification) newValue); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION : + setAction((Action) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__START : + setStart((ExecutionOccurrenceSpecification) null); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__FINISH : + setFinish((ExecutionOccurrenceSpecification) null); + return; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION : + setAction((Action) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__START : + return eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__START) != null; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__FINISH : + return eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__FINISH) != null; + case UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION : + return eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ActionExecutionSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java new file mode 100644 index 00000000..c63366bd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java @@ -0,0 +1,663 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getContext Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getLocalPreconditions Local Precondition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getLocalPostconditions Local Postcondition}
  • + *
+ *

+ * + * @generated + */ +public class ActionImpl + extends ExecutableNodeImpl + implements Action { + + /** + * + * + * @generated + */ + protected ActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.ACTION__OUTPUT, new EStructuralFeature[]{})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getOutput(String name) { + for (Iterator i = getOutputs().iterator(); i.hasNext();) { + OutputPin output = (OutputPin) i.next(); + if (name.equals(output.getName())) { + return output; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ACTION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ACTION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ACTION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExecutableNode_Handler(), + UMLPackage.eINSTANCE.getAction_Output(), + UMLPackage.eINSTANCE.getAction_Input(), + UMLPackage.eINSTANCE.getAction_LocalPrecondition(), + UMLPackage.eINSTANCE.getAction_LocalPostcondition()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.ACTION__INPUT, new EStructuralFeature[]{})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getInput(String name) { + for (Iterator i = getInputs().iterator(); i.hasNext();) { + InputPin input = (InputPin) i.next(); + if (name.equals(input.getName())) { + return input; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Classifier getContext() { + // TODO: implement this method to return the 'Context' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getLocalPreconditions() { + List localPrecondition = (List) eVirtualGet(UMLPackage.ACTION__LOCAL_PRECONDITION); + if (localPrecondition == null) { + eVirtualSet(UMLPackage.ACTION__LOCAL_PRECONDITION, + localPrecondition = new EObjectContainmentEList( + Constraint.class, this, + UMLPackage.ACTION__LOCAL_PRECONDITION)); + } + return localPrecondition; + } + + /** + * + * + * @generated + */ + public Constraint createLocalPrecondition(EClass eClass) { + Constraint newLocalPrecondition = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getLocalPreconditions().add(newLocalPrecondition); + return newLocalPrecondition; + } + + /** + * + * + * @generated + */ + public Constraint createLocalPrecondition() { + Constraint newLocalPrecondition = UMLFactory.eINSTANCE + .createConstraint(); + getLocalPreconditions().add(newLocalPrecondition); + return newLocalPrecondition; + } + + /** + * + * + * @generated + */ + public Constraint getLocalPrecondition(String name) { + for (Iterator i = getLocalPreconditions().iterator(); i.hasNext();) { + Constraint localPrecondition = (Constraint) i.next(); + if (name.equals(localPrecondition.getName())) { + return localPrecondition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getLocalPostconditions() { + List localPostcondition = (List) eVirtualGet(UMLPackage.ACTION__LOCAL_POSTCONDITION); + if (localPostcondition == null) { + eVirtualSet(UMLPackage.ACTION__LOCAL_POSTCONDITION, + localPostcondition = new EObjectContainmentEList( + Constraint.class, this, + UMLPackage.ACTION__LOCAL_POSTCONDITION)); + } + return localPostcondition; + } + + /** + * + * + * @generated + */ + public Constraint createLocalPostcondition(EClass eClass) { + Constraint newLocalPostcondition = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getLocalPostconditions().add(newLocalPostcondition); + return newLocalPostcondition; + } + + /** + * + * + * @generated + */ + public Constraint createLocalPostcondition() { + Constraint newLocalPostcondition = UMLFactory.eINSTANCE + .createConstraint(); + getLocalPostconditions().add(newLocalPostcondition); + return newLocalPostcondition; + } + + /** + * + * + * @generated + */ + public Constraint getLocalPostcondition(String name) { + for (Iterator i = getLocalPostconditions().iterator(); i.hasNext();) { + Constraint localPostcondition = (Constraint) i.next(); + if (name.equals(localPostcondition.getName())) { + return localPostcondition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACTION__ACTIVITY, msgs); + case UMLPackage.ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTION__NAME : + return getName(); + case UMLPackage.ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.ACTION__INCOMING : + return getIncomings(); + case UMLPackage.ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ACTION__HANDLER : + return getHandlers(); + case UMLPackage.ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.ACTION__INPUT : + return getInputs(); + case UMLPackage.ACTION__CONTEXT : + return getContext(); + case UMLPackage.ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTION__OWNER : + return isSetOwner(); + case UMLPackage.ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTION__NAME_EXPRESSION) != null; + case UMLPackage.ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.ACTION__INPUT : + return isSetInputs(); + case UMLPackage.ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() || isSetOutputs() || isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getAction_LocalPrecondition()) + || eIsSet(UMLPackage.eINSTANCE.getAction_LocalPostcondition()); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return false; + } + +} //ActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java new file mode 100644 index 00000000..082a39db --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java @@ -0,0 +1,614 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionInputPinImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.ActionInputPin; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActionInputPinOperations; + +/** + * + * An implementation of the model object 'Action Input Pin'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionInputPinImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActionInputPinImpl#getFromAction From Action}
  • + *
+ *

+ * + * @generated + */ +public class ActionInputPinImpl + extends InputPinImpl + implements ActionInputPin { + + /** + * + * + * @generated + */ + protected ActionInputPinImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActionInputPin(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ACTION_INPUT_PIN__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ACTION_INPUT_PIN__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getObjectNode_UpperBound(), + UMLPackage.eINSTANCE.getActionInputPin_FromAction()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Action getFromAction() { + Action fromAction = (Action) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__FROM_ACTION); + return fromAction; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFromAction(Action newFromAction, + NotificationChain msgs) { + Object oldFromAction = eVirtualSet( + UMLPackage.ACTION_INPUT_PIN__FROM_ACTION, newFromAction); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ACTION_INPUT_PIN__FROM_ACTION, + oldFromAction == EVIRTUAL_NO_VALUE + ? null + : oldFromAction, newFromAction); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setFromAction(Action newFromAction) { + Action fromAction = (Action) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__FROM_ACTION); + if (newFromAction != fromAction) { + NotificationChain msgs = null; + if (fromAction != null) + msgs = ((InternalEObject) fromAction).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ACTION_INPUT_PIN__FROM_ACTION, null, msgs); + if (newFromAction != null) + msgs = ((InternalEObject) newFromAction).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ACTION_INPUT_PIN__FROM_ACTION, null, msgs); + msgs = basicSetFromAction(newFromAction, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTION_INPUT_PIN__FROM_ACTION, newFromAction, + newFromAction)); + + } + + /** + * + * + * @generated + */ + public Action createFromAction(EClass eClass) { + Action newFromAction = (Action) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setFromAction(newFromAction); + return newFromAction; + } + + /** + * + * + * @generated + */ + public Action createFromAction() { + Action newFromAction = UMLFactory.eINSTANCE.createAction(); + setFromAction(newFromAction); + return newFromAction; + } + + /** + * + * + * @generated + */ + public boolean validateOneOutputPin(DiagnosticChain diagnostics, Map context) { + return ActionInputPinOperations.validateOneOutputPin(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateInputPin(DiagnosticChain diagnostics, Map context) { + return ActionInputPinOperations.validateInputPin(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNoControlOrDataFlow(DiagnosticChain diagnostics, + Map context) { + return ActionInputPinOperations.validateNoControlOrDataFlow(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTION_INPUT_PIN__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACTION_INPUT_PIN__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE, msgs); + case UMLPackage.ACTION_INPUT_PIN__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACTION_INPUT_PIN__ACTIVITY, msgs); + case UMLPackage.ACTION_INPUT_PIN__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTION_INPUT_PIN__UPPER_BOUND : + return basicSetUpperBound(null, msgs); + case UMLPackage.ACTION_INPUT_PIN__FROM_ACTION : + return basicSetFromAction(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_INPUT_PIN__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTION_INPUT_PIN__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTION_INPUT_PIN__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTION_INPUT_PIN__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTION_INPUT_PIN__NAME : + return getName(); + case UMLPackage.ACTION_INPUT_PIN__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTION_INPUT_PIN__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTION_INPUT_PIN__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTION_INPUT_PIN__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTION_INPUT_PIN__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTION_INPUT_PIN__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACTION_INPUT_PIN__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACTION_INPUT_PIN__OUTGOING : + return getOutgoings(); + case UMLPackage.ACTION_INPUT_PIN__IN_GROUP : + return getInGroups(); + case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACTION_INPUT_PIN__ACTIVITY : + return getActivity(); + case UMLPackage.ACTION_INPUT_PIN__INCOMING : + return getIncomings(); + case UMLPackage.ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ACTION_INPUT_PIN__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.ACTION_INPUT_PIN__ORDERING : + return getOrdering(); + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL_TYPE : + return isControlType() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTION_INPUT_PIN__UPPER_BOUND : + return getUpperBound(); + case UMLPackage.ACTION_INPUT_PIN__IN_STATE : + return getInStates(); + case UMLPackage.ACTION_INPUT_PIN__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL : + return isControl() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTION_INPUT_PIN__FROM_ACTION : + return getFromAction(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_INPUT_PIN__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTION_INPUT_PIN__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__TYPE : + setType((Type) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__ORDERING : + setOrdering((ObjectNodeOrderingKind) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL_TYPE : + setIsControlType(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTION_INPUT_PIN__UPPER_BOUND : + setUpperBound((ValueSpecification) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_STATE : + getInStates().clear(); + getInStates().addAll((Collection) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__SELECTION : + setSelection((Behavior) newValue); + return; + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL : + setIsControl(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTION_INPUT_PIN__FROM_ACTION : + setFromAction((Action) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_INPUT_PIN__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTION_INPUT_PIN__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTION_INPUT_PIN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTION_INPUT_PIN__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACTION_INPUT_PIN__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACTION_INPUT_PIN__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACTION_INPUT_PIN__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__TYPE : + setType((Type) null); + return; + case UMLPackage.ACTION_INPUT_PIN__ORDERING : + setOrdering(ORDERING_EDEFAULT); + return; + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL_TYPE : + setIsControlType(IS_CONTROL_TYPE_EDEFAULT); + return; + case UMLPackage.ACTION_INPUT_PIN__UPPER_BOUND : + setUpperBound((ValueSpecification) null); + return; + case UMLPackage.ACTION_INPUT_PIN__IN_STATE : + getInStates().clear(); + return; + case UMLPackage.ACTION_INPUT_PIN__SELECTION : + setSelection((Behavior) null); + return; + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL : + setIsControl(IS_CONTROL_EDEFAULT); + return; + case UMLPackage.ACTION_INPUT_PIN__FROM_ACTION : + setFromAction((Action) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTION_INPUT_PIN__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTION_INPUT_PIN__OWNER : + return isSetOwner(); + case UMLPackage.ACTION_INPUT_PIN__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__NAME : + String name = eVirtualIsSet(UMLPackage.ACTION_INPUT_PIN__NAME) + ? (String) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTION_INPUT_PIN__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTION_INPUT_PIN__VISIBILITY) + && eVirtualGet(UMLPackage.ACTION_INPUT_PIN__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTION_INPUT_PIN__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTION_INPUT_PIN__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTION_INPUT_PIN__NAME_EXPRESSION) != null; + case UMLPackage.ACTION_INPUT_PIN__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACTION_INPUT_PIN__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACTION_INPUT_PIN__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACTION_INPUT_PIN__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACTION_INPUT_PIN__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACTION_INPUT_PIN__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACTION_INPUT_PIN__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__TYPE : + return eVirtualGet(UMLPackage.ACTION_INPUT_PIN__TYPE) != null; + case UMLPackage.ACTION_INPUT_PIN__ORDERING : + return eVirtualIsSet(UMLPackage.ACTION_INPUT_PIN__ORDERING) + && eVirtualGet(UMLPackage.ACTION_INPUT_PIN__ORDERING) != ORDERING_EDEFAULT; + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL_TYPE : + return ((eFlags & IS_CONTROL_TYPE_EFLAG) != 0) != IS_CONTROL_TYPE_EDEFAULT; + case UMLPackage.ACTION_INPUT_PIN__UPPER_BOUND : + return eVirtualGet(UMLPackage.ACTION_INPUT_PIN__UPPER_BOUND) != null; + case UMLPackage.ACTION_INPUT_PIN__IN_STATE : + List inState = (List) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__IN_STATE); + return inState != null && !inState.isEmpty(); + case UMLPackage.ACTION_INPUT_PIN__SELECTION : + return eVirtualGet(UMLPackage.ACTION_INPUT_PIN__SELECTION) != null; + case UMLPackage.ACTION_INPUT_PIN__IS_CONTROL : + return ((eFlags & IS_CONTROL_EFLAG) != 0) != IS_CONTROL_EDEFAULT; + case UMLPackage.ACTION_INPUT_PIN__FROM_ACTION : + return eVirtualGet(UMLPackage.ACTION_INPUT_PIN__FROM_ACTION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getActionInputPin_FromAction()); + } + +} //ActionInputPinImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java new file mode 100644 index 00000000..bb871e5b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java @@ -0,0 +1,1164 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityEdgeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActivityEdgeOperations; + +/** + * + * An implementation of the model object 'Activity Edge'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInGroups In Group}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getActivity Activity}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInPartitions In Partition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInStructuredNode In Structured Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getRedefinedEdges Redefined Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getWeight Weight}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInterrupts Interrupts}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getSource Source}
  • + *
+ *

+ * + * @generated + */ +public class ActivityEdgeImpl + extends RedefinableElementImpl + implements ActivityEdge { + + /** + * + * + * @generated + */ + protected ActivityEdgeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivityEdge(); + } + + /** + * + * + * @generated + */ + public List getInGroups() { + List inGroup = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__IN_GROUP); + if (inGroup == null) { + eVirtualSet( + UMLPackage.ACTIVITY_EDGE__IN_GROUP, + inGroup = new DerivedUnionEObjectEList( + ActivityGroup.class, + this, + UMLPackage.ACTIVITY_EDGE__IN_GROUP, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getActivityEdge_InPartition(), + UMLPackage.eINSTANCE.getActivityEdge_InStructuredNode()})); + } + return inGroup; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.ACTIVITY_EDGE__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getActivityEdge_RedefinedEdge()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ACTIVITY_EDGE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getActivityEdge_Guard(), + UMLPackage.eINSTANCE.getActivityEdge_Weight()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Activity getActivity() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_EDGE__ACTIVITY) + return null; + return (Activity) eContainer; + } + + /** + * + * + * @generated + */ + public void setActivity(Activity newActivity) { + if (newActivity != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_EDGE__ACTIVITY && newActivity != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newActivity)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newActivity != null) + msgs = ((InternalEObject) newActivity).eInverseAdd(this, + UMLPackage.ACTIVITY__EDGE, Activity.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newActivity, + UMLPackage.ACTIVITY_EDGE__ACTIVITY, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__ACTIVITY, newActivity, newActivity)); + + } + + /** + * + * + * @generated + */ + public List getInPartitions() { + List inPartition = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__IN_PARTITION); + if (inPartition == null) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__IN_PARTITION, + inPartition = new EObjectWithInverseResolvingEList.ManyInverse( + ActivityPartition.class, this, + UMLPackage.ACTIVITY_EDGE__IN_PARTITION, + UMLPackage.ACTIVITY_PARTITION__EDGE)); + } + return inPartition; + } + + /** + * + * + * @generated + */ + public ActivityPartition getInPartition(String name) { + for (Iterator i = getInPartitions().iterator(); i.hasNext();) { + ActivityPartition inPartition = (ActivityPartition) i.next(); + if (name.equals(inPartition.getName())) { + return inPartition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public StructuredActivityNode getInStructuredNode() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE) + return null; + return (StructuredActivityNode) eContainer; + } + + /** + * + * + * @generated + */ + public void setInStructuredNode(StructuredActivityNode newInStructuredNode) { + if (newInStructuredNode != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE && newInStructuredNode != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInStructuredNode)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInStructuredNode != null) + msgs = ((InternalEObject) newInStructuredNode).eInverseAdd( + this, UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE, + StructuredActivityNode.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newInStructuredNode, + UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE, + newInStructuredNode, newInStructuredNode)); + + } + + /** + * + * + * @generated + */ + public ActivityNode getTarget() { + ActivityNode target = (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__TARGET); + if (target != null && target.eIsProxy()) { + ActivityNode oldTarget = target; + target = (ActivityNode) eResolveProxy((InternalEObject) target); + if (target != oldTarget) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__TARGET, target); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACTIVITY_EDGE__TARGET, oldTarget, target)); + } + } + return target; + } + + /** + * + * + * @generated + */ + public ActivityNode basicGetTarget() { + return (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__TARGET); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(ActivityNode newTarget, + NotificationChain msgs) { + Object oldTarget = eVirtualSet(UMLPackage.ACTIVITY_EDGE__TARGET, + newTarget); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ACTIVITY_EDGE__TARGET, + oldTarget == EVIRTUAL_NO_VALUE + ? null + : oldTarget, newTarget); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTarget(ActivityNode newTarget) { + ActivityNode target = (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__TARGET); + if (newTarget != target) { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + UMLPackage.ACTIVITY_NODE__INCOMING, ActivityNode.class, + msgs); + if (newTarget != null) + msgs = ((InternalEObject) newTarget).eInverseAdd(this, + UMLPackage.ACTIVITY_NODE__INCOMING, ActivityNode.class, + msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__TARGET, newTarget, newTarget)); + + } + + /** + * + * + * @generated + */ + public List getRedefinedEdges() { + List redefinedEdge = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE); + if (redefinedEdge == null) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE, + redefinedEdge = new EObjectResolvingEList(ActivityEdge.class, + this, UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE)); + } + return redefinedEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getRedefinedEdge(String name) { + for (Iterator i = getRedefinedEdges().iterator(); i.hasNext();) { + ActivityEdge redefinedEdge = (ActivityEdge) i.next(); + if (name.equals(redefinedEdge.getName())) { + return redefinedEdge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public ValueSpecification getGuard() { + ValueSpecification guard = (ValueSpecification) eVirtualGet(UMLPackage.ACTIVITY_EDGE__GUARD); + return guard; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetGuard(ValueSpecification newGuard, + NotificationChain msgs) { + Object oldGuard = eVirtualSet(UMLPackage.ACTIVITY_EDGE__GUARD, newGuard); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ACTIVITY_EDGE__GUARD, + oldGuard == EVIRTUAL_NO_VALUE + ? null + : oldGuard, newGuard); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setGuard(ValueSpecification newGuard) { + ValueSpecification guard = (ValueSpecification) eVirtualGet(UMLPackage.ACTIVITY_EDGE__GUARD); + if (newGuard != guard) { + NotificationChain msgs = null; + if (guard != null) + msgs = ((InternalEObject) guard).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.ACTIVITY_EDGE__GUARD, + null, msgs); + if (newGuard != null) + msgs = ((InternalEObject) newGuard).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.ACTIVITY_EDGE__GUARD, + null, msgs); + msgs = basicSetGuard(newGuard, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__GUARD, newGuard, newGuard)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createGuard(EClass eClass) { + ValueSpecification newGuard = (ValueSpecification) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setGuard(newGuard); + return newGuard; + } + + /** + * + * + * @generated + */ + public ValueSpecification getWeight() { + ValueSpecification weight = (ValueSpecification) eVirtualGet(UMLPackage.ACTIVITY_EDGE__WEIGHT); + return weight; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetWeight(ValueSpecification newWeight, + NotificationChain msgs) { + Object oldWeight = eVirtualSet(UMLPackage.ACTIVITY_EDGE__WEIGHT, + newWeight); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ACTIVITY_EDGE__WEIGHT, + oldWeight == EVIRTUAL_NO_VALUE + ? null + : oldWeight, newWeight); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setWeight(ValueSpecification newWeight) { + ValueSpecification weight = (ValueSpecification) eVirtualGet(UMLPackage.ACTIVITY_EDGE__WEIGHT); + if (newWeight != weight) { + NotificationChain msgs = null; + if (weight != null) + msgs = ((InternalEObject) weight).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.ACTIVITY_EDGE__WEIGHT, + null, msgs); + if (newWeight != null) + msgs = ((InternalEObject) newWeight).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.ACTIVITY_EDGE__WEIGHT, + null, msgs); + msgs = basicSetWeight(newWeight, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__WEIGHT, newWeight, newWeight)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createWeight(EClass eClass) { + ValueSpecification newWeight = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setWeight(newWeight); + return newWeight; + } + + /** + * + * + * @generated + */ + public InterruptibleActivityRegion getInterrupts() { + InterruptibleActivityRegion interrupts = (InterruptibleActivityRegion) eVirtualGet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS); + if (interrupts != null && interrupts.eIsProxy()) { + InterruptibleActivityRegion oldInterrupts = interrupts; + interrupts = (InterruptibleActivityRegion) eResolveProxy((InternalEObject) interrupts); + if (interrupts != oldInterrupts) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS, interrupts); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACTIVITY_EDGE__INTERRUPTS, oldInterrupts, + interrupts)); + } + } + return interrupts; + } + + /** + * + * + * @generated + */ + public InterruptibleActivityRegion basicGetInterrupts() { + return (InterruptibleActivityRegion) eVirtualGet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInterrupts( + InterruptibleActivityRegion newInterrupts, NotificationChain msgs) { + Object oldInterrupts = eVirtualSet( + UMLPackage.ACTIVITY_EDGE__INTERRUPTS, newInterrupts); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ACTIVITY_EDGE__INTERRUPTS, + oldInterrupts == EVIRTUAL_NO_VALUE + ? null + : oldInterrupts, newInterrupts); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setInterrupts(InterruptibleActivityRegion newInterrupts) { + InterruptibleActivityRegion interrupts = (InterruptibleActivityRegion) eVirtualGet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS); + if (newInterrupts != interrupts) { + NotificationChain msgs = null; + if (interrupts != null) + msgs = ((InternalEObject) interrupts) + .eInverseRemove( + this, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE, + InterruptibleActivityRegion.class, msgs); + if (newInterrupts != null) + msgs = ((InternalEObject) newInterrupts) + .eInverseAdd( + this, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE, + InterruptibleActivityRegion.class, msgs); + msgs = basicSetInterrupts(newInterrupts, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__INTERRUPTS, newInterrupts, + newInterrupts)); + + } + + /** + * + * + * @generated + */ + public ActivityNode getSource() { + ActivityNode source = (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__SOURCE); + if (source != null && source.eIsProxy()) { + ActivityNode oldSource = source; + source = (ActivityNode) eResolveProxy((InternalEObject) source); + if (source != oldSource) { + eVirtualSet(UMLPackage.ACTIVITY_EDGE__SOURCE, source); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACTIVITY_EDGE__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * + * + * @generated + */ + public ActivityNode basicGetSource() { + return (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__SOURCE); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSource(ActivityNode newSource, + NotificationChain msgs) { + Object oldSource = eVirtualSet(UMLPackage.ACTIVITY_EDGE__SOURCE, + newSource); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.ACTIVITY_EDGE__SOURCE, + oldSource == EVIRTUAL_NO_VALUE + ? null + : oldSource, newSource); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSource(ActivityNode newSource) { + ActivityNode source = (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__SOURCE); + if (newSource != source) { + NotificationChain msgs = null; + if (source != null) + msgs = ((InternalEObject) source).eInverseRemove(this, + UMLPackage.ACTIVITY_NODE__OUTGOING, ActivityNode.class, + msgs); + if (newSource != null) + msgs = ((InternalEObject) newSource).eInverseAdd(this, + UMLPackage.ACTIVITY_NODE__OUTGOING, ActivityNode.class, + msgs); + msgs = basicSetSource(newSource, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_EDGE__SOURCE, newSource, newSource)); + + } + + /** + * + * + * @generated + */ + public boolean validateSourceAndTarget(DiagnosticChain diagnostics, + Map context) { + return ActivityEdgeOperations.validateSourceAndTarget(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOwned(DiagnosticChain diagnostics, Map context) { + return ActivityEdgeOperations.validateOwned(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStructuredNode(DiagnosticChain diagnostics, + Map context) { + return ActivityEdgeOperations.validateStructuredNode(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_EDGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_EDGE__ACTIVITY, msgs); + case UMLPackage.ACTIVITY_EDGE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.ACTIVITY_EDGE__TARGET : + ActivityNode target = (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__TARGET); + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + UMLPackage.ACTIVITY_NODE__INCOMING, + ActivityNode.class, msgs); + return basicSetTarget((ActivityNode) otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__INTERRUPTS : + InterruptibleActivityRegion interrupts = (InterruptibleActivityRegion) eVirtualGet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS); + if (interrupts != null) + msgs = ((InternalEObject) interrupts) + .eInverseRemove( + this, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE, + InterruptibleActivityRegion.class, msgs); + return basicSetInterrupts( + (InterruptibleActivityRegion) otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__SOURCE : + ActivityNode source = (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__SOURCE); + if (source != null) + msgs = ((InternalEObject) source).eInverseRemove(this, + UMLPackage.ACTIVITY_NODE__OUTGOING, + ActivityNode.class, msgs); + return basicSetSource((ActivityNode) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_EDGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_EDGE__ACTIVITY, msgs); + case UMLPackage.ACTIVITY_EDGE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.ACTIVITY_EDGE__TARGET : + return basicSetTarget(null, msgs); + case UMLPackage.ACTIVITY_EDGE__GUARD : + return basicSetGuard(null, msgs); + case UMLPackage.ACTIVITY_EDGE__WEIGHT : + return basicSetWeight(null, msgs); + case UMLPackage.ACTIVITY_EDGE__INTERRUPTS : + return basicSetInterrupts(null, msgs); + case UMLPackage.ACTIVITY_EDGE__SOURCE : + return basicSetSource(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + return eContainer.eInverseRemove(this, + UMLPackage.ACTIVITY__EDGE, Activity.class, msgs); + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + return eContainer.eInverseRemove(this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE, + StructuredActivityNode.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_EDGE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTIVITY_EDGE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTIVITY_EDGE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTIVITY_EDGE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTIVITY_EDGE__NAME : + return getName(); + case UMLPackage.ACTIVITY_EDGE__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTIVITY_EDGE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTIVITY_EDGE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTIVITY_EDGE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY_EDGE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACTIVITY_EDGE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + return getActivity(); + case UMLPackage.ACTIVITY_EDGE__IN_GROUP : + return getInGroups(); + case UMLPackage.ACTIVITY_EDGE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACTIVITY_EDGE__TARGET : + if (resolve) + return getTarget(); + return basicGetTarget(); + case UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE : + return getRedefinedEdges(); + case UMLPackage.ACTIVITY_EDGE__GUARD : + return getGuard(); + case UMLPackage.ACTIVITY_EDGE__WEIGHT : + return getWeight(); + case UMLPackage.ACTIVITY_EDGE__INTERRUPTS : + if (resolve) + return getInterrupts(); + return basicGetInterrupts(); + case UMLPackage.ACTIVITY_EDGE__SOURCE : + if (resolve) + return getSource(); + return basicGetSource(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_EDGE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__TARGET : + setTarget((ActivityNode) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE : + getRedefinedEdges().clear(); + getRedefinedEdges().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__GUARD : + setGuard((ValueSpecification) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__WEIGHT : + setWeight((ValueSpecification) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__INTERRUPTS : + setInterrupts((InterruptibleActivityRegion) newValue); + return; + case UMLPackage.ACTIVITY_EDGE__SOURCE : + setSource((ActivityNode) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_EDGE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTIVITY_EDGE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTIVITY_EDGE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTIVITY_EDGE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTIVITY_EDGE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACTIVITY_EDGE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACTIVITY_EDGE__TARGET : + setTarget((ActivityNode) null); + return; + case UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE : + getRedefinedEdges().clear(); + return; + case UMLPackage.ACTIVITY_EDGE__GUARD : + setGuard((ValueSpecification) null); + return; + case UMLPackage.ACTIVITY_EDGE__WEIGHT : + setWeight((ValueSpecification) null); + return; + case UMLPackage.ACTIVITY_EDGE__INTERRUPTS : + setInterrupts((InterruptibleActivityRegion) null); + return; + case UMLPackage.ACTIVITY_EDGE__SOURCE : + setSource((ActivityNode) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_EDGE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTIVITY_EDGE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTIVITY_EDGE__OWNER : + return isSetOwner(); + case UMLPackage.ACTIVITY_EDGE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTIVITY_EDGE__NAME : + String name = eVirtualIsSet(UMLPackage.ACTIVITY_EDGE__NAME) + ? (String) eVirtualGet(UMLPackage.ACTIVITY_EDGE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTIVITY_EDGE__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTIVITY_EDGE__VISIBILITY) + && eVirtualGet(UMLPackage.ACTIVITY_EDGE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTIVITY_EDGE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTIVITY_EDGE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTIVITY_EDGE__NAME_EXPRESSION) != null; + case UMLPackage.ACTIVITY_EDGE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACTIVITY_EDGE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACTIVITY_EDGE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACTIVITY_EDGE__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACTIVITY_EDGE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACTIVITY_EDGE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACTIVITY_EDGE__TARGET : + return eVirtualGet(UMLPackage.ACTIVITY_EDGE__TARGET) != null; + case UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE : + List redefinedEdge = (List) eVirtualGet(UMLPackage.ACTIVITY_EDGE__REDEFINED_EDGE); + return redefinedEdge != null && !redefinedEdge.isEmpty(); + case UMLPackage.ACTIVITY_EDGE__GUARD : + return eVirtualGet(UMLPackage.ACTIVITY_EDGE__GUARD) != null; + case UMLPackage.ACTIVITY_EDGE__WEIGHT : + return eVirtualGet(UMLPackage.ACTIVITY_EDGE__WEIGHT) != null; + case UMLPackage.ACTIVITY_EDGE__INTERRUPTS : + return eVirtualGet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS) != null; + case UMLPackage.ACTIVITY_EDGE__SOURCE : + return eVirtualGet(UMLPackage.ACTIVITY_EDGE__SOURCE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Activity activity = getActivity(); + if (activity != null) { + return activity; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_Activity()); + } + + /** + * + * + * @generated + */ + public boolean isSetInGroups() { + return eIsSet(UMLPackage.eINSTANCE.getActivityEdge_InPartition()) + || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_InStructuredNode()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_RedefinedEdge()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_Guard()) + || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_Weight()); + } + +} //ActivityEdgeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityFinalNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityFinalNodeImpl.java new file mode 100644 index 00000000..4a00c4c4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityFinalNodeImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityFinalNodeImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ActivityFinalNode; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Activity Final Node'. + * + *

+ *

+ * + * @generated + */ +public class ActivityFinalNodeImpl + extends FinalNodeImpl + implements ActivityFinalNode { + + /** + * + * + * @generated + */ + protected ActivityFinalNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivityFinalNode(); + } + +} //ActivityFinalNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java new file mode 100644 index 00000000..9b1fb20f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java @@ -0,0 +1,522 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityGroupImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ActivityGroupOperations; + +/** + * + * An implementation of the model object 'Activity Group'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getSubgroups Subgroup}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedNodes Contained Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedEdges Contained Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getInActivity In Activity}
  • + *
+ *

+ * + * @generated + */ +public abstract class ActivityGroupImpl + extends ElementImpl + implements ActivityGroup { + + /** + * + * + * @generated + */ + protected ActivityGroupImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivityGroup(); + } + + /** + * + * + * @generated + */ + public List getSubgroups() { + List subgroup = (List) eVirtualGet(UMLPackage.ACTIVITY_GROUP__SUBGROUP); + if (subgroup == null) { + eVirtualSet(UMLPackage.ACTIVITY_GROUP__SUBGROUP, + subgroup = new DerivedUnionEObjectEList(ActivityGroup.class, + this, UMLPackage.ACTIVITY_GROUP__SUBGROUP, + new EStructuralFeature[]{})); + } + return subgroup; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ACTIVITY_GROUP__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ACTIVITY_GROUP__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ACTIVITY_GROUP__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getActivityGroup_Subgroup()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getContainedNodes() { + List containedNode = (List) eVirtualGet(UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE); + if (containedNode == null) { + eVirtualSet(UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE, + containedNode = new DerivedUnionEObjectEList( + ActivityNode.class, this, + UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE, + new EStructuralFeature[]{})); + } + return containedNode; + } + + /** + * + * + * @generated + */ + public ActivityNode getContainedNode(String name) { + for (Iterator i = getContainedNodes().iterator(); i.hasNext();) { + ActivityNode containedNode = (ActivityNode) i.next(); + if (name.equals(containedNode.getName())) { + return containedNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getContainedEdges() { + List containedEdge = (List) eVirtualGet(UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE); + if (containedEdge == null) { + eVirtualSet(UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE, + containedEdge = new DerivedUnionEObjectEList( + ActivityEdge.class, this, + UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE, + new EStructuralFeature[]{})); + } + return containedEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getContainedEdge(String name) { + for (Iterator i = getContainedEdges().iterator(); i.hasNext();) { + ActivityEdge containedEdge = (ActivityEdge) i.next(); + if (name.equals(containedEdge.getName())) { + return containedEdge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Activity getInActivity() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY) + return null; + return (Activity) eContainer; + } + + /** + * + * + * @generated + */ + public void setInActivity(Activity newInActivity) { + if (newInActivity != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY && newInActivity != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInActivity)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInActivity != null) + msgs = ((InternalEObject) newInActivity).eInverseAdd(this, + UMLPackage.ACTIVITY__GROUP, Activity.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newInActivity, + UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY, newInActivity, + newInActivity)); + + } + + /** + * + * + * @generated + */ + public boolean validateNodesAndEdges(DiagnosticChain diagnostics, + Map context) { + return ActivityGroupOperations.validateNodesAndEdges(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotContained(DiagnosticChain diagnostics, Map context) { + return ActivityGroupOperations.validateNotContained(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGroupOwned(DiagnosticChain diagnostics, Map context) { + return ActivityGroupOperations.validateGroupOwned(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + return eContainer.eInverseRemove(this, + UMLPackage.ACTIVITY__GROUP, Activity.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTIVITY_GROUP__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTIVITY_GROUP__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTIVITY_GROUP__SUBGROUP : + return getSubgroups(); + case UMLPackage.ACTIVITY_GROUP__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE : + return getContainedEdges(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + setInActivity((Activity) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_GROUP__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTIVITY_GROUP__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTIVITY_GROUP__OWNER : + return isSetOwner(); + case UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTIVITY_GROUP__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTIVITY_GROUP__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.ACTIVITY_GROUP__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE : + return isSetContainedEdges(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetSubgroups() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() || isSetSubgroups(); + } + + /** + * + * + * @generated + */ + public ActivityGroup basicGetSuperGroup() { + return null; + } + + /** + * + * + * @generated + */ + public ActivityGroup getSuperGroup() { + ActivityGroup superGroup = basicGetSuperGroup(); + return superGroup == null + ? null + : (ActivityGroup) eResolveProxy((InternalEObject) superGroup); + } + + /** + * + * + * @generated + */ + public boolean isSetSuperGroup() { + return false; + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + if (isSetSuperGroup()) { + return basicGetSuperGroup(); + } + Activity inActivity = getInActivity(); + if (inActivity != null) { + return inActivity; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() || isSetSuperGroup() + || eIsSet(UMLPackage.eINSTANCE.getActivityGroup_InActivity()); + } + + /** + * + * + * @generated + */ + public boolean isSetContainedNodes() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetContainedEdges() { + return false; + } + +} //ActivityGroupImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java new file mode 100644 index 00000000..f2aab607 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java @@ -0,0 +1,1550 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActivityOperations; + +/** + * + * An implementation of the model object 'Activity'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getGroups Group}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#isReadOnly Is Read Only}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getPartition Partition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#isSingleExecution Is Single Execution}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getStructuredNodes Structured Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getVariables Variable}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getEdges Edge}
  • + *
+ *

+ * + * @generated + */ +public class ActivityImpl + extends BehaviorImpl + implements Activity { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits2 = 0; + + /** + * The default value of the '{@link #isReadOnly() Is Read Only}' attribute. + * + * + * @see #isReadOnly() + * @generated + * @ordered + */ + protected static final boolean IS_READ_ONLY_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReadOnly() Is Read Only}' attribute. + * + * + * @see #isReadOnly() + * @generated + * @ordered + */ + protected static final int IS_READ_ONLY_EFLAG = 1 << 12; + + /** + * The default value of the '{@link #isSingleExecution() Is Single Execution}' attribute. + * + * + * @see #isSingleExecution() + * @generated + * @ordered + */ + protected static final boolean IS_SINGLE_EXECUTION_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isSingleExecution() Is Single Execution}' attribute. + * + * + * @see #isSingleExecution() + * @generated + * @ordered + */ + protected static final int IS_SINGLE_EXECUTION_EFLAG = 1 << 13; + + /** + * + * + * @generated + */ + protected ActivityImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivity(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ACTIVITY__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ACTIVITY__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization(), + UMLPackage.eINSTANCE.getActivity_Group(), + UMLPackage.eINSTANCE.getActivity_Node(), + UMLPackage.eINSTANCE.getActivity_Edge()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.ACTIVITY__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.ACTIVITY__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameter(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameterSet(), + UMLPackage.eINSTANCE.getActivity_Variable()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getGroups() { + List group = (List) eVirtualGet(UMLPackage.ACTIVITY__GROUP); + if (group == null) { + eVirtualSet(UMLPackage.ACTIVITY__GROUP, + group = new SupersetEObjectContainmentWithInverseEList( + ActivityGroup.class, this, UMLPackage.ACTIVITY__GROUP, + new int[]{UMLPackage.ACTIVITY__PARTITION}, + UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY)); + } + return group; + } + + /** + * + * + * @generated + */ + public ActivityGroup createGroup(EClass eClass) { + ActivityGroup newGroup = (ActivityGroup) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getGroups().add(newGroup); + return newGroup; + } + + /** + * + * + * @generated + */ + public List getNodes() { + List node = (List) eVirtualGet(UMLPackage.ACTIVITY__NODE); + if (node == null) { + eVirtualSet(UMLPackage.ACTIVITY__NODE, + node = new EObjectContainmentWithInverseEList( + ActivityNode.class, this, UMLPackage.ACTIVITY__NODE, + UMLPackage.ACTIVITY_NODE__ACTIVITY)); + } + return node; + } + + /** + * + * + * @generated + */ + public ActivityNode createNode(EClass eClass) { + ActivityNode newNode = (ActivityNode) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getNodes().add(newNode); + return newNode; + } + + /** + * + * + * @generated + */ + public ActivityNode getNode(String name) { + for (Iterator i = getNodes().iterator(); i.hasNext();) { + ActivityNode node = (ActivityNode) i.next(); + if (name.equals(node.getName())) { + return node; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isReadOnly() { + return (eFlags & IS_READ_ONLY_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReadOnly(boolean newIsReadOnly) { + boolean oldIsReadOnly = (eFlags & IS_READ_ONLY_EFLAG) != 0; + if (newIsReadOnly) + eFlags |= IS_READ_ONLY_EFLAG; + else + eFlags &= ~IS_READ_ONLY_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY__IS_READ_ONLY, oldIsReadOnly, newIsReadOnly)); + + } + + /** + * + * + * @generated + */ + public ActivityPartition getPartition() { + ActivityPartition partition = (ActivityPartition) eVirtualGet(UMLPackage.ACTIVITY__PARTITION); + return partition; + } + + /** + * + * + * @generated + */ + public void setPartition(ActivityPartition newPartition) { + if (newPartition != null && !getGroups().contains(newPartition)) { + getGroups().add(newPartition); + } + ActivityPartition partition = newPartition; + Object oldPartition = eVirtualSet(UMLPackage.ACTIVITY__PARTITION, + partition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY__PARTITION, + oldPartition == EVIRTUAL_NO_VALUE + ? null + : oldPartition, partition)); + + } + + /** + * + * + * @generated + */ + public boolean isSingleExecution() { + return (eFlags & IS_SINGLE_EXECUTION_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsSingleExecution(boolean newIsSingleExecution) { + boolean oldIsSingleExecution = (eFlags & IS_SINGLE_EXECUTION_EFLAG) != 0; + if (newIsSingleExecution) + eFlags |= IS_SINGLE_EXECUTION_EFLAG; + else + eFlags &= ~IS_SINGLE_EXECUTION_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION, oldIsSingleExecution, + newIsSingleExecution)); + + } + + /** + * + * + * @generated + */ + public List getStructuredNodes() { + // TODO: implement this method to return the 'Structured Node' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public StructuredActivityNode getStructuredNode(String name) { + for (Iterator i = getStructuredNodes().iterator(); i.hasNext();) { + StructuredActivityNode structuredNode = (StructuredActivityNode) i + .next(); + if (name.equals(structuredNode.getName())) { + return structuredNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getVariables() { + List variable = (List) eVirtualGet(UMLPackage.ACTIVITY__VARIABLE); + if (variable == null) { + eVirtualSet(UMLPackage.ACTIVITY__VARIABLE, + variable = new EObjectContainmentWithInverseEList( + Variable.class, this, UMLPackage.ACTIVITY__VARIABLE, + UMLPackage.VARIABLE__ACTIVITY_SCOPE)); + } + return variable; + } + + /** + * + * + * @generated + */ + public Variable createVariable() { + Variable newVariable = UMLFactory.eINSTANCE.createVariable(); + getVariables().add(newVariable); + return newVariable; + } + + /** + * + * + * @generated + */ + public Variable getVariable(String name) { + for (Iterator i = getVariables().iterator(); i.hasNext();) { + Variable variable = (Variable) i.next(); + if (name.equals(variable.getName())) { + return variable; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getEdges() { + List edge = (List) eVirtualGet(UMLPackage.ACTIVITY__EDGE); + if (edge == null) { + eVirtualSet(UMLPackage.ACTIVITY__EDGE, + edge = new EObjectContainmentWithInverseEList( + ActivityEdge.class, this, UMLPackage.ACTIVITY__EDGE, + UMLPackage.ACTIVITY_EDGE__ACTIVITY)); + } + return edge; + } + + /** + * + * + * @generated + */ + public ActivityEdge createEdge(EClass eClass) { + ActivityEdge newEdge = (ActivityEdge) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getEdges().add(newEdge); + return newEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge createEdge() { + ActivityEdge newEdge = UMLFactory.eINSTANCE.createActivityEdge(); + getEdges().add(newEdge); + return newEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getEdge(String name) { + for (Iterator i = getEdges().iterator(); i.hasNext();) { + ActivityEdge edge = (ActivityEdge) i.next(); + if (name.equals(edge.getName())) { + return edge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateNoSupergroups(DiagnosticChain diagnostics, + Map context) { + return ActivityOperations.validateNoSupergroups(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateActivityParameterNode(DiagnosticChain diagnostics, + Map context) { + return ActivityOperations.validateActivityParameterNode(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAutonomous(DiagnosticChain diagnostics, Map context) { + return ActivityOperations + .validateAutonomous(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.ACTIVITY__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.ACTIVITY__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ACTIVITY__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.ACTIVITY__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.ACTIVITY__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.ACTIVITY__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.ACTIVITY__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.ACTIVITY__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY__SPECIFICATION : + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.ACTIVITY__SPECIFICATION); + if (specification != null) + msgs = ((InternalEObject) specification) + .eInverseRemove(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + return basicSetSpecification((BehavioralFeature) otherEnd, + msgs); + case UMLPackage.ACTIVITY__GROUP : + return ((InternalEList) getGroups()).basicAdd(otherEnd, + msgs); + case UMLPackage.ACTIVITY__VARIABLE : + return ((InternalEList) getVariables()).basicAdd(otherEnd, + msgs); + case UMLPackage.ACTIVITY__NODE : + return ((InternalEList) getNodes()) + .basicAdd(otherEnd, msgs); + case UMLPackage.ACTIVITY__EDGE : + return ((InternalEList) getEdges()) + .basicAdd(otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACTIVITY__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ACTIVITY__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.ACTIVITY__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.ACTIVITY__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.ACTIVITY__GROUP : + return ((InternalEList) getGroups()).basicRemove(otherEnd, + msgs); + case UMLPackage.ACTIVITY__VARIABLE : + return ((InternalEList) getVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.ACTIVITY__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTIVITY__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTIVITY__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTIVITY__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTIVITY__NAME : + return getName(); + case UMLPackage.ACTIVITY__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTIVITY__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTIVITY__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTIVITY__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTIVITY__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTIVITY__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.ACTIVITY__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.ACTIVITY__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.ACTIVITY__MEMBER : + return getMembers(); + case UMLPackage.ACTIVITY__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.ACTIVITY__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.ACTIVITY__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACTIVITY__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACTIVITY__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ACTIVITY__PACKAGE : + return getPackage(); + case UMLPackage.ACTIVITY__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.ACTIVITY__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.ACTIVITY__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.ACTIVITY__FEATURE : + return getFeatures(); + case UMLPackage.ACTIVITY__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.ACTIVITY__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.ACTIVITY__GENERAL : + return getGenerals(); + case UMLPackage.ACTIVITY__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.ACTIVITY__USE_CASE : + return getUseCases(); + case UMLPackage.ACTIVITY__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.ACTIVITY__ATTRIBUTE : + return getAttributes(); + case UMLPackage.ACTIVITY__REPRESENTATION : + return getRepresentation(); + case UMLPackage.ACTIVITY__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.ACTIVITY__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.ACTIVITY__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.ACTIVITY__PART : + return getParts(); + case UMLPackage.ACTIVITY__ROLE : + return getRoles(); + case UMLPackage.ACTIVITY__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.ACTIVITY__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.ACTIVITY__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.ACTIVITY__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.ACTIVITY__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.ACTIVITY__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.ACTIVITY__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.ACTIVITY__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.ACTIVITY__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.ACTIVITY__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.ACTIVITY__EXTENSION : + return getExtensions(); + case UMLPackage.ACTIVITY__IS_REENTRANT : + return isReentrant() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY__REDEFINED_BEHAVIOR : + return getRedefinedBehaviors(); + case UMLPackage.ACTIVITY__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.ACTIVITY__CONTEXT : + if (resolve) + return getContext(); + return basicGetContext(); + case UMLPackage.ACTIVITY__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.ACTIVITY__SPECIFICATION : + if (resolve) + return getSpecification(); + return basicGetSpecification(); + case UMLPackage.ACTIVITY__IS_READ_ONLY : + return isReadOnly() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY__PARTITION : + return getPartition(); + case UMLPackage.ACTIVITY__GROUP : + return getGroups(); + case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION : + return isSingleExecution() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY__STRUCTURED_NODE : + return getStructuredNodes(); + case UMLPackage.ACTIVITY__VARIABLE : + return getVariables(); + case UMLPackage.ACTIVITY__NODE : + return getNodes(); + case UMLPackage.ACTIVITY__EDGE : + return getEdges(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTIVITY__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTIVITY__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTIVITY__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ACTIVITY__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.ACTIVITY__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.ACTIVITY__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.ACTIVITY__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.ACTIVITY__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__IS_REENTRANT : + setIsReentrant(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + getRedefinedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__CONTEXT : + setContext((BehavioredClassifier) newValue); + return; + case UMLPackage.ACTIVITY__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__SPECIFICATION : + setSpecification((BehavioralFeature) newValue); + return; + case UMLPackage.ACTIVITY__IS_READ_ONLY : + setIsReadOnly(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY__PARTITION : + setPartition((ActivityPartition) newValue); + return; + case UMLPackage.ACTIVITY__GROUP : + getGroups().clear(); + getGroups().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION : + setIsSingleExecution(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY__VARIABLE : + getVariables().clear(); + getVariables().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTIVITY__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTIVITY__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTIVITY__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTIVITY__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTIVITY__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.ACTIVITY__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.ACTIVITY__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACTIVITY__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ACTIVITY__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.ACTIVITY__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.ACTIVITY__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.ACTIVITY__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.ACTIVITY__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.ACTIVITY__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.ACTIVITY__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.ACTIVITY__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.ACTIVITY__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.ACTIVITY__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.ACTIVITY__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.ACTIVITY__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.ACTIVITY__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.ACTIVITY__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.ACTIVITY__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.ACTIVITY__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.ACTIVITY__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.ACTIVITY__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.ACTIVITY__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.ACTIVITY__IS_REENTRANT : + setIsReentrant(IS_REENTRANT_EDEFAULT); + return; + case UMLPackage.ACTIVITY__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + return; + case UMLPackage.ACTIVITY__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.ACTIVITY__CONTEXT : + setContext((BehavioredClassifier) null); + return; + case UMLPackage.ACTIVITY__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.ACTIVITY__SPECIFICATION : + setSpecification((BehavioralFeature) null); + return; + case UMLPackage.ACTIVITY__IS_READ_ONLY : + setIsReadOnly(IS_READ_ONLY_EDEFAULT); + return; + case UMLPackage.ACTIVITY__PARTITION : + setPartition((ActivityPartition) null); + return; + case UMLPackage.ACTIVITY__GROUP : + getGroups().clear(); + return; + case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION : + setIsSingleExecution(IS_SINGLE_EXECUTION_EDEFAULT); + return; + case UMLPackage.ACTIVITY__VARIABLE : + getVariables().clear(); + return; + case UMLPackage.ACTIVITY__NODE : + getNodes().clear(); + return; + case UMLPackage.ACTIVITY__EDGE : + getEdges().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTIVITY__OWNER : + return isSetOwner(); + case UMLPackage.ACTIVITY__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTIVITY__NAME : + String name = eVirtualIsSet(UMLPackage.ACTIVITY__NAME) + ? (String) eVirtualGet(UMLPackage.ACTIVITY__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTIVITY__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTIVITY__VISIBILITY) + && eVirtualGet(UMLPackage.ACTIVITY__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTIVITY__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTIVITY__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTIVITY__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTIVITY__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTIVITY__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTIVITY__NAME_EXPRESSION) != null; + case UMLPackage.ACTIVITY__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.ACTIVITY__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.ACTIVITY__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.ACTIVITY__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.ACTIVITY__MEMBER : + return isSetMembers(); + case UMLPackage.ACTIVITY__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.ACTIVITY__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.ACTIVITY__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACTIVITY__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACTIVITY__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACTIVITY__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ACTIVITY__TEMPLATE_PARAMETER) != null; + case UMLPackage.ACTIVITY__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ACTIVITY__PACKAGE : + return getPackage() != null; + case UMLPackage.ACTIVITY__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.ACTIVITY__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.ACTIVITY__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.ACTIVITY__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.ACTIVITY__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.ACTIVITY__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.ACTIVITY__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.ACTIVITY__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.ACTIVITY__FEATURE : + return isSetFeatures(); + case UMLPackage.ACTIVITY__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.ACTIVITY__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.ACTIVITY__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.ACTIVITY__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.ACTIVITY__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.ACTIVITY__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.ACTIVITY__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.ACTIVITY__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.ACTIVITY__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.ACTIVITY__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.ACTIVITY__REPRESENTATION : + return eVirtualGet(UMLPackage.ACTIVITY__REPRESENTATION) != null; + case UMLPackage.ACTIVITY__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.ACTIVITY__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.ACTIVITY__OWNED_SIGNATURE) != null; + case UMLPackage.ACTIVITY__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.ACTIVITY__PART : + return !getParts().isEmpty(); + case UMLPackage.ACTIVITY__ROLE : + return isSetRoles(); + case UMLPackage.ACTIVITY__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.ACTIVITY__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.ACTIVITY__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.ACTIVITY__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.ACTIVITY__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.ACTIVITY__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.ACTIVITY__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.ACTIVITY__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.ACTIVITY__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.ACTIVITY__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.ACTIVITY__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.ACTIVITY__IS_REENTRANT : + return ((eFlags & IS_REENTRANT_EFLAG) != 0) != IS_REENTRANT_EDEFAULT; + case UMLPackage.ACTIVITY__REDEFINED_BEHAVIOR : + List redefinedBehavior = (List) eVirtualGet(UMLPackage.ACTIVITY__REDEFINED_BEHAVIOR); + return redefinedBehavior != null + && !redefinedBehavior.isEmpty(); + case UMLPackage.ACTIVITY__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.ACTIVITY__CONTEXT : + return basicGetContext() != null; + case UMLPackage.ACTIVITY__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.ACTIVITY__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.ACTIVITY__SPECIFICATION : + return eVirtualGet(UMLPackage.ACTIVITY__SPECIFICATION) != null; + case UMLPackage.ACTIVITY__IS_READ_ONLY : + return ((eFlags & IS_READ_ONLY_EFLAG) != 0) != IS_READ_ONLY_EDEFAULT; + case UMLPackage.ACTIVITY__PARTITION : + return eVirtualGet(UMLPackage.ACTIVITY__PARTITION) != null; + case UMLPackage.ACTIVITY__GROUP : + List group = (List) eVirtualGet(UMLPackage.ACTIVITY__GROUP); + return group != null && !group.isEmpty(); + case UMLPackage.ACTIVITY__IS_SINGLE_EXECUTION : + return ((eFlags & IS_SINGLE_EXECUTION_EFLAG) != 0) != IS_SINGLE_EXECUTION_EDEFAULT; + case UMLPackage.ACTIVITY__STRUCTURED_NODE : + return !getStructuredNodes().isEmpty(); + case UMLPackage.ACTIVITY__VARIABLE : + List variable = (List) eVirtualGet(UMLPackage.ACTIVITY__VARIABLE); + return variable != null && !variable.isEmpty(); + case UMLPackage.ACTIVITY__NODE : + List node = (List) eVirtualGet(UMLPackage.ACTIVITY__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.ACTIVITY__EDGE : + List edge = (List) eVirtualGet(UMLPackage.ACTIVITY__EDGE); + return edge != null && !edge.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + case 2 : + return eVirtualIndexBits2; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + case 2 : + eVirtualIndexBits2 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isReadOnly: "); //$NON-NLS-1$ + result.append((eFlags & IS_READ_ONLY_EFLAG) != 0); + result.append(", isSingleExecution: "); //$NON-NLS-1$ + result.append((eFlags & IS_SINGLE_EXECUTION_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getActivity_Group()) + || eIsSet(UMLPackage.eINSTANCE.getActivity_Node()) + || eIsSet(UMLPackage.eINSTANCE.getActivity_Edge()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getActivity_Variable()); + } + +} //ActivityImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java new file mode 100644 index 00000000..8571e59b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java @@ -0,0 +1,783 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityNodeImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActivityNodeOperations; + +/** + * + * An implementation of the model object 'Activity Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInGroups In Group}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getOutgoings Outgoing}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInPartitions In Partition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInStructuredNode In Structured Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getActivity Activity}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getIncomings Incoming}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInInterruptibleRegions In Interruptible Region}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getRedefinedNodes Redefined Node}
  • + *
+ *

+ * + * @generated + */ +public abstract class ActivityNodeImpl + extends RedefinableElementImpl + implements ActivityNode { + + /** + * + * + * @generated + */ + protected ActivityNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivityNode(); + } + + /** + * + * + * @generated + */ + public List getInGroups() { + List inGroup = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__IN_GROUP); + if (inGroup == null) { + eVirtualSet( + UMLPackage.ACTIVITY_NODE__IN_GROUP, + inGroup = new DerivedUnionEObjectEList( + ActivityGroup.class, + this, + UMLPackage.ACTIVITY_NODE__IN_GROUP, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getActivityNode_InPartition(), + UMLPackage.eINSTANCE.getActivityNode_InStructuredNode(), + UMLPackage.eINSTANCE + .getActivityNode_InInterruptibleRegion()})); + } + return inGroup; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.ACTIVITY_NODE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.ACTIVITY_NODE__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getActivityNode_RedefinedNode()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getOutgoings() { + List outgoing = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__OUTGOING); + if (outgoing == null) { + eVirtualSet(UMLPackage.ACTIVITY_NODE__OUTGOING, + outgoing = new EObjectWithInverseResolvingEList( + ActivityEdge.class, this, + UMLPackage.ACTIVITY_NODE__OUTGOING, + UMLPackage.ACTIVITY_EDGE__SOURCE)); + } + return outgoing; + } + + /** + * + * + * @generated + */ + public ActivityEdge getOutgoing(String name) { + for (Iterator i = getOutgoings().iterator(); i.hasNext();) { + ActivityEdge outgoing = (ActivityEdge) i.next(); + if (name.equals(outgoing.getName())) { + return outgoing; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInPartitions() { + List inPartition = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__IN_PARTITION); + if (inPartition == null) { + eVirtualSet(UMLPackage.ACTIVITY_NODE__IN_PARTITION, + inPartition = new EObjectWithInverseResolvingEList.ManyInverse( + ActivityPartition.class, this, + UMLPackage.ACTIVITY_NODE__IN_PARTITION, + UMLPackage.ACTIVITY_PARTITION__NODE)); + } + return inPartition; + } + + /** + * + * + * @generated + */ + public ActivityPartition getInPartition(String name) { + for (Iterator i = getInPartitions().iterator(); i.hasNext();) { + ActivityPartition inPartition = (ActivityPartition) i.next(); + if (name.equals(inPartition.getName())) { + return inPartition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public StructuredActivityNode getInStructuredNode() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE) + return null; + return (StructuredActivityNode) eContainer; + } + + /** + * + * + * @generated + */ + public void setInStructuredNode(StructuredActivityNode newInStructuredNode) { + if (newInStructuredNode != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE && newInStructuredNode != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInStructuredNode)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInStructuredNode != null) + msgs = ((InternalEObject) newInStructuredNode).eInverseAdd( + this, UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE, + StructuredActivityNode.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newInStructuredNode, + UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE, + newInStructuredNode, newInStructuredNode)); + + } + + /** + * + * + * @generated + */ + public Activity getActivity() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_NODE__ACTIVITY) + return null; + return (Activity) eContainer; + } + + /** + * + * + * @generated + */ + public void setActivity(Activity newActivity) { + if (newActivity != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_NODE__ACTIVITY && newActivity != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newActivity)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newActivity != null) + msgs = ((InternalEObject) newActivity).eInverseAdd(this, + UMLPackage.ACTIVITY__NODE, Activity.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newActivity, + UMLPackage.ACTIVITY_NODE__ACTIVITY, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_NODE__ACTIVITY, newActivity, newActivity)); + + } + + /** + * + * + * @generated + */ + public List getIncomings() { + List incoming = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__INCOMING); + if (incoming == null) { + eVirtualSet(UMLPackage.ACTIVITY_NODE__INCOMING, + incoming = new EObjectWithInverseResolvingEList( + ActivityEdge.class, this, + UMLPackage.ACTIVITY_NODE__INCOMING, + UMLPackage.ACTIVITY_EDGE__TARGET)); + } + return incoming; + } + + /** + * + * + * @generated + */ + public ActivityEdge getIncoming(String name) { + for (Iterator i = getIncomings().iterator(); i.hasNext();) { + ActivityEdge incoming = (ActivityEdge) i.next(); + if (name.equals(incoming.getName())) { + return incoming; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInInterruptibleRegions() { + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION); + if (inInterruptibleRegion == null) { + eVirtualSet( + UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION, + inInterruptibleRegion = new EObjectWithInverseResolvingEList.ManyInverse( + InterruptibleActivityRegion.class, this, + UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE)); + } + return inInterruptibleRegion; + } + + /** + * + * + * @generated + */ + public List getRedefinedNodes() { + List redefinedNode = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__REDEFINED_NODE); + if (redefinedNode == null) { + eVirtualSet(UMLPackage.ACTIVITY_NODE__REDEFINED_NODE, + redefinedNode = new EObjectResolvingEList(ActivityNode.class, + this, UMLPackage.ACTIVITY_NODE__REDEFINED_NODE)); + } + return redefinedNode; + } + + /** + * + * + * @generated + */ + public ActivityNode getRedefinedNode(String name) { + for (Iterator i = getRedefinedNodes().iterator(); i.hasNext();) { + ActivityNode redefinedNode = (ActivityNode) i.next(); + if (name.equals(redefinedNode.getName())) { + return redefinedNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateOwned(DiagnosticChain diagnostics, Map context) { + return ActivityNodeOperations.validateOwned(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOwnedStructuredNode(DiagnosticChain diagnostics, + Map context) { + return ActivityNodeOperations.validateOwnedStructuredNode(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.ACTIVITY_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_NODE__ACTIVITY, msgs); + case UMLPackage.ACTIVITY_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicAdd(otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACTIVITY_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_NODE__ACTIVITY, msgs); + case UMLPackage.ACTIVITY_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + return eContainer.eInverseRemove(this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE, + StructuredActivityNode.class, msgs); + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + return eContainer.eInverseRemove(this, + UMLPackage.ACTIVITY__NODE, Activity.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTIVITY_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTIVITY_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTIVITY_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTIVITY_NODE__NAME : + return getName(); + case UMLPackage.ACTIVITY_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTIVITY_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTIVITY_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTIVITY_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACTIVITY_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACTIVITY_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.ACTIVITY_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.ACTIVITY_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.ACTIVITY_NODE__INCOMING : + return getIncomings(); + case UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ACTIVITY_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTIVITY_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTIVITY_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACTIVITY_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTIVITY_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTIVITY_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTIVITY_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTIVITY_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACTIVITY_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ACTIVITY_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACTIVITY_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ACTIVITY_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTIVITY_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTIVITY_NODE__OWNER : + return isSetOwner(); + case UMLPackage.ACTIVITY_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTIVITY_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.ACTIVITY_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.ACTIVITY_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTIVITY_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTIVITY_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.ACTIVITY_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTIVITY_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTIVITY_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTIVITY_NODE__NAME_EXPRESSION) != null; + case UMLPackage.ACTIVITY_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACTIVITY_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACTIVITY_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACTIVITY_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ACTIVITY_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACTIVITY_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACTIVITY_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACTIVITY_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ACTIVITY_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ACTIVITY_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInGroups() { + return eIsSet(UMLPackage.eINSTANCE.getActivityNode_InPartition()) + || eIsSet(UMLPackage.eINSTANCE.getActivityNode_InStructuredNode()) + || eIsSet(UMLPackage.eINSTANCE + .getActivityNode_InInterruptibleRegion()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Activity activity = getActivity(); + if (activity != null) { + return activity; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getActivityNode_Activity()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getActivityNode_RedefinedNode()); + } + +} //ActivityNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java new file mode 100644 index 00000000..b565a0da --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java @@ -0,0 +1,502 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityParameterNodeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityParameterNode; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActivityParameterNodeOperations; + +/** + * + * An implementation of the model object 'Activity Parameter Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityParameterNodeImpl#getParameter Parameter}
  • + *
+ *

+ * + * @generated + */ +public class ActivityParameterNodeImpl + extends ObjectNodeImpl + implements ActivityParameterNode { + + /** + * + * + * @generated + */ + protected ActivityParameterNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivityParameterNode(); + } + + /** + * + * + * @generated + */ + public Parameter getParameter() { + Parameter parameter = (Parameter) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER); + if (parameter != null && parameter.eIsProxy()) { + Parameter oldParameter = parameter; + parameter = (Parameter) eResolveProxy((InternalEObject) parameter); + if (parameter != oldParameter) { + eVirtualSet(UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER, + parameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER, + oldParameter, parameter)); + } + } + return parameter; + } + + /** + * + * + * @generated + */ + public Parameter basicGetParameter() { + return (Parameter) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER); + } + + /** + * + * + * @generated + */ + public void setParameter(Parameter newParameter) { + Parameter parameter = newParameter; + Object oldParameter = eVirtualSet( + UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER, parameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER, + oldParameter == EVIRTUAL_NO_VALUE + ? null + : oldParameter, parameter)); + + } + + /** + * + * + * @generated + */ + public boolean validateParameter(DiagnosticChain diagnostics, Map context) { + return ActivityParameterNodeOperations.validateParameter(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return ActivityParameterNodeOperations.validateSameType(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoEdges(DiagnosticChain diagnostics, Map context) { + return ActivityParameterNodeOperations.validateNoEdges(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoIncomingEdges(DiagnosticChain diagnostics, + Map context) { + return ActivityParameterNodeOperations.validateNoIncomingEdges(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoOutgoingEdges(DiagnosticChain diagnostics, + Map context) { + return ActivityParameterNodeOperations.validateNoOutgoingEdges(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARAMETER_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME : + return getName(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING : + return getIncomings(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__ORDERING : + return getOrdering(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_CONTROL_TYPE : + return isControlType() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY_PARAMETER_NODE__UPPER_BOUND : + return getUpperBound(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STATE : + return getInStates(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER : + if (resolve) + return getParameter(); + return basicGetParameter(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARAMETER_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE : + setType((Type) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__ORDERING : + setOrdering((ObjectNodeOrderingKind) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_CONTROL_TYPE : + setIsControlType(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__UPPER_BOUND : + setUpperBound((ValueSpecification) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STATE : + getInStates().clear(); + getInStates().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__SELECTION : + setSelection((Behavior) newValue); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER : + setParameter((Parameter) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARAMETER_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE : + setType((Type) null); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__ORDERING : + setOrdering(ORDERING_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_CONTROL_TYPE : + setIsControlType(IS_CONTROL_TYPE_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__UPPER_BOUND : + setUpperBound((ValueSpecification) null); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STATE : + getInStates().clear(); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__SELECTION : + setSelection((Behavior) null); + return; + case UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER : + setParameter((Parameter) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARAMETER_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNER : + return isSetOwner(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.ACTIVITY_PARAMETER_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTIVITY_PARAMETER_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTIVITY_PARAMETER_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTIVITY_PARAMETER_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTIVITY_PARAMETER_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__NAME_EXPRESSION) != null; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ACTIVITY_PARAMETER_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE : + return eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__TYPE) != null; + case UMLPackage.ACTIVITY_PARAMETER_NODE__ORDERING : + return eVirtualIsSet(UMLPackage.ACTIVITY_PARAMETER_NODE__ORDERING) + && eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__ORDERING) != ORDERING_EDEFAULT; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IS_CONTROL_TYPE : + return ((eFlags & IS_CONTROL_TYPE_EFLAG) != 0) != IS_CONTROL_TYPE_EDEFAULT; + case UMLPackage.ACTIVITY_PARAMETER_NODE__UPPER_BOUND : + return eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__UPPER_BOUND) != null; + case UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STATE : + List inState = (List) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__IN_STATE); + return inState != null && !inState.isEmpty(); + case UMLPackage.ACTIVITY_PARAMETER_NODE__SELECTION : + return eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__SELECTION) != null; + case UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER : + return eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ActivityParameterNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java new file mode 100644 index 00000000..47aac4a5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java @@ -0,0 +1,1137 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityPartitionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActivityGroupOperations; +import org.eclipse.uml2.uml.internal.operations.ActivityPartitionOperations; + +/** + * + * An implementation of the model object 'Activity Partition'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getSubgroups Subgroup}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getContainedNodes Contained Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getContainedEdges Contained Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getInActivity In Activity}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#isDimension Is Dimension}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#isExternal Is External}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getEdges Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getSubpartitions Subpartition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getSuperPartition Super Partition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getRepresents Represents}
  • + *
+ *

+ * + * @generated + */ +public class ActivityPartitionImpl + extends NamedElementImpl + implements ActivityPartition { + + /** + * The default value of the '{@link #isDimension() Is Dimension}' attribute. + * + * + * @see #isDimension() + * @generated + * @ordered + */ + protected static final boolean IS_DIMENSION_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDimension() Is Dimension}' attribute. + * + * + * @see #isDimension() + * @generated + * @ordered + */ + protected static final int IS_DIMENSION_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isExternal() Is External}' attribute. + * + * + * @see #isExternal() + * @generated + * @ordered + */ + protected static final boolean IS_EXTERNAL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isExternal() Is External}' attribute. + * + * + * @see #isExternal() + * @generated + * @ordered + */ + protected static final int IS_EXTERNAL_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected ActivityPartitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActivityPartition(); + } + + /** + * + * + * @generated + */ + public List getSubgroups() { + List subgroup = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__SUBGROUP); + if (subgroup == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__SUBGROUP, + subgroup = new DerivedUnionEObjectEList(ActivityGroup.class, + this, UMLPackage.ACTIVITY_PARTITION__SUBGROUP, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getActivityPartition_Subpartition()})); + } + return subgroup; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ACTIVITY_PARTITION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getActivityGroup_Subgroup()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getContainedNodes() { + List containedNode = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE); + if (containedNode == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE, + containedNode = new DerivedUnionEObjectEList( + ActivityNode.class, this, + UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getActivityPartition_Node()})); + } + return containedNode; + } + + /** + * + * + * @generated + */ + public ActivityNode getContainedNode(String name) { + for (Iterator i = getContainedNodes().iterator(); i.hasNext();) { + ActivityNode containedNode = (ActivityNode) i.next(); + if (name.equals(containedNode.getName())) { + return containedNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getContainedEdges() { + List containedEdge = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE); + if (containedEdge == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE, + containedEdge = new DerivedUnionEObjectEList( + ActivityEdge.class, this, + UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getActivityPartition_Edge()})); + } + return containedEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getContainedEdge(String name) { + for (Iterator i = getContainedEdges().iterator(); i.hasNext();) { + ActivityEdge containedEdge = (ActivityEdge) i.next(); + if (name.equals(containedEdge.getName())) { + return containedEdge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Activity getInActivity() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY) + return null; + return (Activity) eContainer; + } + + /** + * + * + * @generated + */ + public void setInActivity(Activity newInActivity) { + if (newInActivity != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY && newInActivity != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInActivity)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInActivity != null) + msgs = ((InternalEObject) newInActivity).eInverseAdd(this, + UMLPackage.ACTIVITY__GROUP, Activity.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newInActivity, + UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY, newInActivity, + newInActivity)); + + } + + /** + * + * + * @generated + */ + public boolean isDimension() { + return (eFlags & IS_DIMENSION_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDimension(boolean newIsDimension) { + boolean oldIsDimension = (eFlags & IS_DIMENSION_EFLAG) != 0; + if (newIsDimension) + eFlags |= IS_DIMENSION_EFLAG; + else + eFlags &= ~IS_DIMENSION_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION, oldIsDimension, + newIsDimension)); + + } + + /** + * + * + * @generated + */ + public boolean isExternal() { + return (eFlags & IS_EXTERNAL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsExternal(boolean newIsExternal) { + boolean oldIsExternal = (eFlags & IS_EXTERNAL_EFLAG) != 0; + if (newIsExternal) + eFlags |= IS_EXTERNAL_EFLAG; + else + eFlags &= ~IS_EXTERNAL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL, oldIsExternal, + newIsExternal)); + + } + + /** + * + * + * @generated + */ + public List getEdges() { + List edge = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__EDGE); + if (edge == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__EDGE, + edge = new EObjectWithInverseResolvingEList.ManyInverse( + ActivityEdge.class, this, + UMLPackage.ACTIVITY_PARTITION__EDGE, + UMLPackage.ACTIVITY_EDGE__IN_PARTITION)); + } + return edge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getEdge(String name) { + for (Iterator i = getEdges().iterator(); i.hasNext();) { + ActivityEdge edge = (ActivityEdge) i.next(); + if (name.equals(edge.getName())) { + return edge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNodes() { + List node = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__NODE); + if (node == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__NODE, + node = new EObjectWithInverseResolvingEList.ManyInverse( + ActivityNode.class, this, + UMLPackage.ACTIVITY_PARTITION__NODE, + UMLPackage.ACTIVITY_NODE__IN_PARTITION)); + } + return node; + } + + /** + * + * + * @generated + */ + public ActivityNode getNode(String name) { + for (Iterator i = getNodes().iterator(); i.hasNext();) { + ActivityNode node = (ActivityNode) i.next(); + if (name.equals(node.getName())) { + return node; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getSubpartitions() { + List subpartition = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__SUBPARTITION); + if (subpartition == null) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__SUBPARTITION, + subpartition = new EObjectContainmentWithInverseEList( + ActivityPartition.class, this, + UMLPackage.ACTIVITY_PARTITION__SUBPARTITION, + UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION)); + } + return subpartition; + } + + /** + * + * + * @generated + */ + public ActivityPartition createSubpartition() { + ActivityPartition newSubpartition = UMLFactory.eINSTANCE + .createActivityPartition(); + getSubpartitions().add(newSubpartition); + return newSubpartition; + } + + /** + * + * + * @generated + */ + public ActivityPartition getSubpartition(String name) { + for (Iterator i = getSubpartitions().iterator(); i.hasNext();) { + ActivityPartition subpartition = (ActivityPartition) i.next(); + if (name.equals(subpartition.getName())) { + return subpartition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public ActivityPartition getSuperPartition() { + if (eContainerFeatureID != UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION) + return null; + return (ActivityPartition) eContainer; + } + + /** + * + * + * @generated + */ + public void setSuperPartition(ActivityPartition newSuperPartition) { + if (newSuperPartition != eContainer + || (eContainerFeatureID != UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION && newSuperPartition != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newSuperPartition)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newSuperPartition != null) + msgs = ((InternalEObject) newSuperPartition).eInverseAdd(this, + UMLPackage.ACTIVITY_PARTITION__SUBPARTITION, + ActivityPartition.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newSuperPartition, + UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION, + newSuperPartition, newSuperPartition)); + + } + + /** + * + * + * @generated + */ + public Element getRepresents() { + Element represents = (Element) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__REPRESENTS); + if (represents != null && represents.eIsProxy()) { + Element oldRepresents = represents; + represents = (Element) eResolveProxy((InternalEObject) represents); + if (represents != oldRepresents) { + eVirtualSet(UMLPackage.ACTIVITY_PARTITION__REPRESENTS, + represents); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ACTIVITY_PARTITION__REPRESENTS, + oldRepresents, represents)); + } + } + return represents; + } + + /** + * + * + * @generated + */ + public Element basicGetRepresents() { + return (Element) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__REPRESENTS); + } + + /** + * + * + * @generated + */ + public void setRepresents(Element newRepresents) { + Element represents = newRepresents; + Object oldRepresents = eVirtualSet( + UMLPackage.ACTIVITY_PARTITION__REPRESENTS, represents); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ACTIVITY_PARTITION__REPRESENTS, + oldRepresents == EVIRTUAL_NO_VALUE + ? null + : oldRepresents, represents)); + + } + + /** + * + * + * @generated + */ + public boolean validateNodesAndEdges(DiagnosticChain diagnostics, + Map context) { + return ActivityGroupOperations.validateNodesAndEdges(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotContained(DiagnosticChain diagnostics, Map context) { + return ActivityGroupOperations.validateNotContained(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGroupOwned(DiagnosticChain diagnostics, Map context) { + return ActivityGroupOperations.validateGroupOwned(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateIsDimension(DiagnosticChain diagnostics, Map context) { + return ActivityPartitionOperations.validateIsDimension(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNodeOrEdge(DiagnosticChain diagnostics, Map context) { + return ActivityPartitionOperations.validateNodeOrEdge(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRepresentsPart(DiagnosticChain diagnostics, + Map context) { + return ActivityPartitionOperations.validateRepresentsPart(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRepresentsClassifier(DiagnosticChain diagnostics, + Map context) { + return ActivityPartitionOperations.validateRepresentsClassifier(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRepresentsPartAndIsContained( + DiagnosticChain diagnostics, Map context) { + return ActivityPartitionOperations + .validateRepresentsPartAndIsContained(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_PARTITION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY, msgs); + case UMLPackage.ACTIVITY_PARTITION__EDGE : + return ((InternalEList) getEdges()) + .basicAdd(otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__NODE : + return ((InternalEList) getNodes()) + .basicAdd(otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__SUBPARTITION : + return ((InternalEList) getSubpartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ACTIVITY_PARTITION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY, msgs); + case UMLPackage.ACTIVITY_PARTITION__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + case UMLPackage.ACTIVITY_PARTITION__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.ACTIVITY_PARTITION__SUBPARTITION : + return ((InternalEList) getSubpartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + return eBasicSetContainer(null, + UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + return eContainer.eInverseRemove(this, + UMLPackage.ACTIVITY__GROUP, Activity.class, msgs); + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + return eContainer.eInverseRemove(this, + UMLPackage.ACTIVITY_PARTITION__SUBPARTITION, + ActivityPartition.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARTITION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ACTIVITY_PARTITION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ACTIVITY_PARTITION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ACTIVITY_PARTITION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ACTIVITY_PARTITION__NAME : + return getName(); + case UMLPackage.ACTIVITY_PARTITION__VISIBILITY : + return getVisibility(); + case UMLPackage.ACTIVITY_PARTITION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ACTIVITY_PARTITION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ACTIVITY_PARTITION__SUBGROUP : + return getSubgroups(); + case UMLPackage.ACTIVITY_PARTITION__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION : + return isDimension() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL : + return isExternal() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ACTIVITY_PARTITION__EDGE : + return getEdges(); + case UMLPackage.ACTIVITY_PARTITION__NODE : + return getNodes(); + case UMLPackage.ACTIVITY_PARTITION__SUBPARTITION : + return getSubpartitions(); + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + return getSuperPartition(); + case UMLPackage.ACTIVITY_PARTITION__REPRESENTS : + if (resolve) + return getRepresents(); + return basicGetRepresents(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARTITION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__NAME : + setName((String) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION : + setIsDimension(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL : + setIsExternal(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ACTIVITY_PARTITION__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__SUBPARTITION : + getSubpartitions().clear(); + getSubpartitions().addAll((Collection) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + setSuperPartition((ActivityPartition) newValue); + return; + case UMLPackage.ACTIVITY_PARTITION__REPRESENTS : + setRepresents((Element) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARTITION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ACTIVITY_PARTITION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ACTIVITY_PARTITION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARTITION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION : + setIsDimension(IS_DIMENSION_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL : + setIsExternal(IS_EXTERNAL_EDEFAULT); + return; + case UMLPackage.ACTIVITY_PARTITION__EDGE : + getEdges().clear(); + return; + case UMLPackage.ACTIVITY_PARTITION__NODE : + getNodes().clear(); + return; + case UMLPackage.ACTIVITY_PARTITION__SUBPARTITION : + getSubpartitions().clear(); + return; + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + setSuperPartition((ActivityPartition) null); + return; + case UMLPackage.ACTIVITY_PARTITION__REPRESENTS : + setRepresents((Element) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ACTIVITY_PARTITION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ACTIVITY_PARTITION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ACTIVITY_PARTITION__OWNER : + return isSetOwner(); + case UMLPackage.ACTIVITY_PARTITION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ACTIVITY_PARTITION__NAME : + String name = eVirtualIsSet(UMLPackage.ACTIVITY_PARTITION__NAME) + ? (String) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ACTIVITY_PARTITION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ACTIVITY_PARTITION__VISIBILITY) + && eVirtualGet(UMLPackage.ACTIVITY_PARTITION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ACTIVITY_PARTITION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ACTIVITY_PARTITION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ACTIVITY_PARTITION__NAME_EXPRESSION) != null; + case UMLPackage.ACTIVITY_PARTITION__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.ACTIVITY_PARTITION__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.ACTIVITY_PARTITION__IS_DIMENSION : + return ((eFlags & IS_DIMENSION_EFLAG) != 0) != IS_DIMENSION_EDEFAULT; + case UMLPackage.ACTIVITY_PARTITION__IS_EXTERNAL : + return ((eFlags & IS_EXTERNAL_EFLAG) != 0) != IS_EXTERNAL_EDEFAULT; + case UMLPackage.ACTIVITY_PARTITION__EDGE : + List edge = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__EDGE); + return edge != null && !edge.isEmpty(); + case UMLPackage.ACTIVITY_PARTITION__NODE : + List node = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.ACTIVITY_PARTITION__SUBPARTITION : + List subpartition = (List) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__SUBPARTITION); + return subpartition != null && !subpartition.isEmpty(); + case UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION : + return getSuperPartition() != null; + case UMLPackage.ACTIVITY_PARTITION__REPRESENTS : + return eVirtualGet(UMLPackage.ACTIVITY_PARTITION__REPRESENTS) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ActivityGroup.class) { + switch (derivedFeatureID) { + case UMLPackage.ACTIVITY_PARTITION__SUBGROUP : + return UMLPackage.ACTIVITY_GROUP__SUBGROUP; + case UMLPackage.ACTIVITY_PARTITION__SUPER_GROUP : + return UMLPackage.ACTIVITY_GROUP__SUPER_GROUP; + case UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE : + return UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE; + case UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY : + return UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY; + case UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE : + return UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ActivityGroup.class) { + switch (baseFeatureID) { + case UMLPackage.ACTIVITY_GROUP__SUBGROUP : + return UMLPackage.ACTIVITY_PARTITION__SUBGROUP; + case UMLPackage.ACTIVITY_GROUP__SUPER_GROUP : + return UMLPackage.ACTIVITY_PARTITION__SUPER_GROUP; + case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE : + return UMLPackage.ACTIVITY_PARTITION__CONTAINED_NODE; + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + return UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY; + case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE : + return UMLPackage.ACTIVITY_PARTITION__CONTAINED_EDGE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDimension: "); //$NON-NLS-1$ + result.append((eFlags & IS_DIMENSION_EFLAG) != 0); + result.append(", isExternal: "); //$NON-NLS-1$ + result.append((eFlags & IS_EXTERNAL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetSubgroups() { + return eIsSet(UMLPackage.eINSTANCE.getActivityPartition_Subpartition()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() || isSetSubgroups(); + } + + /** + * + * + * @generated + */ + public ActivityGroup basicGetSuperGroup() { + ActivityPartition superPartition = getSuperPartition(); + if (superPartition != null) { + return superPartition; + } + return null; + } + + /** + * + * + * @generated + */ + public ActivityGroup getSuperGroup() { + ActivityGroup superGroup = basicGetSuperGroup(); + return superGroup == null + ? null + : (ActivityGroup) eResolveProxy((InternalEObject) superGroup); + } + + /** + * + * + * @generated + */ + public boolean isSetSuperGroup() { + return eIsSet(UMLPackage.eINSTANCE + .getActivityPartition_SuperPartition()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + if (isSetSuperGroup()) { + return basicGetSuperGroup(); + } + Activity inActivity = getInActivity(); + if (inActivity != null) { + return inActivity; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() || isSetSuperGroup() + || eIsSet(UMLPackage.eINSTANCE.getActivityGroup_InActivity()); + } + + /** + * + * + * @generated + */ + public boolean isSetContainedNodes() { + return eIsSet(UMLPackage.eINSTANCE.getActivityPartition_Node()); + } + + /** + * + * + * @generated + */ + public boolean isSetContainedEdges() { + return eIsSet(UMLPackage.eINSTANCE.getActivityPartition_Edge()); + } + +} //ActivityPartitionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java new file mode 100644 index 00000000..14b78813 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActorImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ActorOperations; + +/** + * + * An implementation of the model object 'Actor'. + * + *

+ *

+ * + * @generated + */ +public class ActorImpl + extends BehavioredClassifierImpl + implements Actor { + + /** + * + * + * @generated + */ + protected ActorImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getActor(); + } + + /** + * + * + * @generated + */ + public boolean validateAssociations(DiagnosticChain diagnostics, Map context) { + return ActorOperations.validateAssociations(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMustHaveName(DiagnosticChain diagnostics, Map context) { + return ActorOperations.validateMustHaveName(this, diagnostics, context); + } + +} //ActorImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java new file mode 100644 index 00000000..44f175fe --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java @@ -0,0 +1,735 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AddStructuralFeatureValueActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.AddStructuralFeatureValueActionOperations; + +/** + * + * An implementation of the model object 'Add Structural Feature Value Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl#getInsertAt Insert At}
  • + *
+ *

+ * + * @generated + */ +public class AddStructuralFeatureValueActionImpl + extends WriteStructuralFeatureActionImpl + implements AddStructuralFeatureValueAction { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final boolean IS_REPLACE_ALL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final int IS_REPLACE_ALL_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected AddStructuralFeatureValueActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getStructuralFeatureAction_Object(), + UMLPackage.eINSTANCE + .getWriteStructuralFeatureAction_Value(), + UMLPackage.eINSTANCE + .getAddStructuralFeatureValueAction_InsertAt()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isReplaceAll() { + return (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReplaceAll(boolean newIsReplaceAll) { + boolean oldIsReplaceAll = (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + if (newIsReplaceAll) + eFlags |= IS_REPLACE_ALL_EFLAG; + else + eFlags &= ~IS_REPLACE_ALL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REPLACE_ALL, + oldIsReplaceAll, newIsReplaceAll)); + + } + + /** + * + * + * @generated + */ + public InputPin getInsertAt() { + InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT); + return insertAt; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInsertAt(InputPin newInsertAt, + NotificationChain msgs) { + Object oldInsertAt = eVirtualSet( + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT, + newInsertAt); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT, + oldInsertAt == EVIRTUAL_NO_VALUE + ? null + : oldInsertAt, newInsertAt); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setInsertAt(InputPin newInsertAt) { + InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT); + if (newInsertAt != insertAt) { + NotificationChain msgs = null; + if (insertAt != null) + msgs = ((InternalEObject) insertAt) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT, + null, msgs); + if (newInsertAt != null) + msgs = ((InternalEObject) newInsertAt) + .eInverseAdd( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT, + null, msgs); + msgs = basicSetInsertAt(newInsertAt, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT, + newInsertAt, newInsertAt)); + + } + + /** + * + * + * @generated + */ + public InputPin createInsertAt(EClass eClass) { + InputPin newInsertAt = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setInsertAt(newInsertAt); + return newInsertAt; + } + + /** + * + * + * @generated + */ + public InputPin createInsertAt() { + InputPin newInsertAt = UMLFactory.eINSTANCE.createInputPin(); + setInsertAt(newInsertAt); + return newInsertAt; + } + + /** + * + * + * @generated + */ + public boolean validateUnlimitedNaturalAndMultiplicity( + DiagnosticChain diagnostics, Map context) { + return AddStructuralFeatureValueActionOperations + .validateUnlimitedNaturalAndMultiplicity(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + return eBasicSetContainer( + null, + UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY, + msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + return basicSetObject(null, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + return basicSetValue(null, msgs); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT : + return basicSetInsertAt(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + return getName(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT : + return getInputs(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + return getObject(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + return getValue(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REPLACE_ALL : + return isReplaceAll() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT : + return getInsertAt(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REPLACE_ALL : + setIsReplaceAll(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT : + setInsertAt((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REPLACE_ALL : + setIsReplaceAll(IS_REPLACE_ALL_EDEFAULT); + return; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT : + setInsertAt((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + return eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT) != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + return eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE) != null; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REPLACE_ALL : + return ((eFlags & IS_REPLACE_ALL_EFLAG) != 0) != IS_REPLACE_ALL_EDEFAULT; + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT : + return eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isReplaceAll: "); //$NON-NLS-1$ + result.append((eFlags & IS_REPLACE_ALL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getAddStructuralFeatureValueAction_InsertAt()); + } + +} //AddStructuralFeatureValueActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java new file mode 100644 index 00000000..23fc79b0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java @@ -0,0 +1,670 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AddVariableValueActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.AddVariableValueAction; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.AddVariableValueActionOperations; + +/** + * + * An implementation of the model object 'Add Variable Value Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl#getInsertAt Insert At}
  • + *
+ *

+ * + * @generated + */ +public class AddVariableValueActionImpl + extends WriteVariableActionImpl + implements AddVariableValueAction { + + /** + * The default value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final boolean IS_REPLACE_ALL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final int IS_REPLACE_ALL_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected AddVariableValueActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAddVariableValueAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.ADD_VARIABLE_VALUE_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getWriteVariableAction_Value(), + UMLPackage.eINSTANCE + .getAddVariableValueAction_InsertAt()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isReplaceAll() { + return (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReplaceAll(boolean newIsReplaceAll) { + boolean oldIsReplaceAll = (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + if (newIsReplaceAll) + eFlags |= IS_REPLACE_ALL_EFLAG; + else + eFlags &= ~IS_REPLACE_ALL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_REPLACE_ALL, + oldIsReplaceAll, newIsReplaceAll)); + + } + + /** + * + * + * @generated + */ + public InputPin getInsertAt() { + InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT); + return insertAt; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInsertAt(InputPin newInsertAt, + NotificationChain msgs) { + Object oldInsertAt = eVirtualSet( + UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT, newInsertAt); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT, + oldInsertAt == EVIRTUAL_NO_VALUE + ? null + : oldInsertAt, newInsertAt); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setInsertAt(InputPin newInsertAt) { + InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT); + if (newInsertAt != insertAt) { + NotificationChain msgs = null; + if (insertAt != null) + msgs = ((InternalEObject) insertAt).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT, + null, msgs); + if (newInsertAt != null) + msgs = ((InternalEObject) newInsertAt).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT, + null, msgs); + msgs = basicSetInsertAt(newInsertAt, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT, newInsertAt, + newInsertAt)); + + } + + /** + * + * + * @generated + */ + public InputPin createInsertAt(EClass eClass) { + InputPin newInsertAt = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setInsertAt(newInsertAt); + return newInsertAt; + } + + /** + * + * + * @generated + */ + public InputPin createInsertAt() { + InputPin newInsertAt = UMLFactory.eINSTANCE.createInputPin(); + setInsertAt(newInsertAt); + return newInsertAt; + } + + /** + * + * + * @generated + */ + public boolean validateSingleInputPin(DiagnosticChain diagnostics, + Map context) { + return AddVariableValueActionOperations.validateSingleInputPin(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VALUE : + return basicSetValue(null, msgs); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT : + return basicSetInsertAt(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME : + return getName(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INPUT : + return getInputs(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VARIABLE : + if (resolve) + return getVariable(); + return basicGetVariable(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VALUE : + return getValue(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_REPLACE_ALL : + return isReplaceAll() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT : + return getInsertAt(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VARIABLE : + setVariable((Variable) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_REPLACE_ALL : + setIsReplaceAll(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT : + setInsertAt((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VARIABLE : + setVariable((Variable) null); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_REPLACE_ALL : + setIsReplaceAll(IS_REPLACE_ALL_EDEFAULT); + return; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT : + setInsertAt((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VARIABLE : + return eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__VARIABLE) != null; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__VALUE : + return eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__VALUE) != null; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__IS_REPLACE_ALL : + return ((eFlags & IS_REPLACE_ALL_EFLAG) != 0) != IS_REPLACE_ALL_EDEFAULT; + case UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT : + return eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isReplaceAll: "); //$NON-NLS-1$ + result.append((eFlags & IS_REPLACE_ALL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getAddVariableValueAction_InsertAt()); + } + +} //AddVariableValueActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AnyReceiveEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AnyReceiveEventImpl.java new file mode 100644 index 00000000..c8e558fe --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AnyReceiveEventImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AnyReceiveEventImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.AnyReceiveEvent; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Any Receive Event'. + * + *

+ *

+ * + * @generated + */ +public class AnyReceiveEventImpl + extends MessageEventImpl + implements AnyReceiveEvent { + + /** + * + * + * @generated + */ + protected AnyReceiveEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAnyReceiveEvent(); + } + +} //AnyReceiveEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java new file mode 100644 index 00000000..b94c48a8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java @@ -0,0 +1,1127 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ArtifactImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Artifact; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.Manifestation; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Artifact'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getFileName File Name}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getNestedArtifacts Nested Artifact}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getManifestations Manifestation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedOperations Owned Operation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedAttributes Owned Attribute}
  • + *
+ *

+ * + * @generated + */ +public class ArtifactImpl + extends ClassifierImpl + implements Artifact { + + /** + * The default value of the '{@link #getFileName() File Name}' attribute. + * + * + * @see #getFileName() + * @generated + * @ordered + */ + protected static final String FILE_NAME_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected ArtifactImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getArtifact(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.ARTIFACT__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.ARTIFACT__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE.getArtifact_NestedArtifact(), + UMLPackage.eINSTANCE.getArtifact_OwnedOperation(), + UMLPackage.eINSTANCE.getArtifact_OwnedAttribute()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ARTIFACT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ARTIFACT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE.getArtifact_Manifestation()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.ARTIFACT__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.ARTIFACT__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.ARTIFACT__FEATURE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE.getArtifact_OwnedOperation()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.ARTIFACT__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.ARTIFACT__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.ARTIFACT__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getArtifact_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.ARTIFACT__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.ARTIFACT__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, + UMLPackage.ARTIFACT__CLIENT_DEPENDENCY, new int[]{ + UMLPackage.ARTIFACT__SUBSTITUTION, + UMLPackage.ARTIFACT__MANIFESTATION}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public String getFileName() { + String fileName = (String) eVirtualGet(UMLPackage.ARTIFACT__FILE_NAME); + return fileName == null + ? FILE_NAME_EDEFAULT + : fileName; + } + + /** + * + * + * @generated + */ + public void setFileName(String newFileName) { + newFileName = newFileName == null + ? FILE_NAME_EDEFAULT + : newFileName; + String fileName = newFileName; + Object oldFileName = eVirtualSet(UMLPackage.ARTIFACT__FILE_NAME, + fileName); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ARTIFACT__FILE_NAME, + oldFileName == EVIRTUAL_NO_VALUE + ? FILE_NAME_EDEFAULT + : oldFileName, fileName)); + + } + + /** + * + * + * @generated + */ + public List getNestedArtifacts() { + List nestedArtifact = (List) eVirtualGet(UMLPackage.ARTIFACT__NESTED_ARTIFACT); + if (nestedArtifact == null) { + eVirtualSet(UMLPackage.ARTIFACT__NESTED_ARTIFACT, + nestedArtifact = new EObjectContainmentEList(Artifact.class, + this, UMLPackage.ARTIFACT__NESTED_ARTIFACT)); + } + return nestedArtifact; + } + + /** + * + * + * @generated + */ + public Artifact createNestedArtifact(EClass eClass) { + Artifact newNestedArtifact = (Artifact) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getNestedArtifacts().add(newNestedArtifact); + return newNestedArtifact; + } + + /** + * + * + * @generated + */ + public Artifact createNestedArtifact() { + Artifact newNestedArtifact = UMLFactory.eINSTANCE.createArtifact(); + getNestedArtifacts().add(newNestedArtifact); + return newNestedArtifact; + } + + /** + * + * + * @generated + */ + public Artifact getNestedArtifact(String name) { + for (Iterator i = getNestedArtifacts().iterator(); i.hasNext();) { + Artifact nestedArtifact = (Artifact) i.next(); + if (name.equals(nestedArtifact.getName())) { + return nestedArtifact; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getManifestations() { + List manifestation = (List) eVirtualGet(UMLPackage.ARTIFACT__MANIFESTATION); + if (manifestation == null) { + eVirtualSet(UMLPackage.ARTIFACT__MANIFESTATION, + manifestation = new SubsetEObjectContainmentEList( + Manifestation.class, this, + UMLPackage.ARTIFACT__MANIFESTATION, + new int[]{UMLPackage.ARTIFACT__CLIENT_DEPENDENCY})); + } + return manifestation; + } + + /** + * + * + * @generated + */ + public Manifestation createManifestation() { + Manifestation newManifestation = UMLFactory.eINSTANCE + .createManifestation(); + getManifestations().add(newManifestation); + return newManifestation; + } + + /** + * + * + * @generated + */ + public Manifestation getManifestation(String name) { + for (Iterator i = getManifestations().iterator(); i.hasNext();) { + Manifestation manifestation = (Manifestation) i.next(); + if (name.equals(manifestation.getName())) { + return manifestation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedOperations() { + List ownedOperation = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_OPERATION); + if (ownedOperation == null) { + eVirtualSet(UMLPackage.ARTIFACT__OWNED_OPERATION, + ownedOperation = new EObjectContainmentEList(Operation.class, + this, UMLPackage.ARTIFACT__OWNED_OPERATION)); + } + return ownedOperation; + } + + /** + * + * + * @generated + */ + public Operation createOwnedOperation() { + Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation(); + getOwnedOperations().add(newOwnedOperation); + return newOwnedOperation; + } + + /** + * + * + * @generated + */ + public Operation getOwnedOperation(String name) { + for (Iterator i = getOwnedOperations().iterator(); i.hasNext();) { + Operation ownedOperation = (Operation) i.next(); + if (name.equals(ownedOperation.getName())) { + return ownedOperation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.ARTIFACT__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentEList(Property.class, + this, UMLPackage.ARTIFACT__OWNED_ATTRIBUTE)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ARTIFACT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.ARTIFACT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.ARTIFACT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ARTIFACT__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.ARTIFACT__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.ARTIFACT__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.ARTIFACT__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.ARTIFACT__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ARTIFACT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ARTIFACT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ARTIFACT__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ARTIFACT__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.ARTIFACT__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.ARTIFACT__NESTED_ARTIFACT : + return ((InternalEList) getNestedArtifacts()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__MANIFESTATION : + return ((InternalEList) getManifestations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ARTIFACT__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ARTIFACT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ARTIFACT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ARTIFACT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ARTIFACT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ARTIFACT__NAME : + return getName(); + case UMLPackage.ARTIFACT__VISIBILITY : + return getVisibility(); + case UMLPackage.ARTIFACT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ARTIFACT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ARTIFACT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ARTIFACT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ARTIFACT__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.ARTIFACT__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.ARTIFACT__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.ARTIFACT__MEMBER : + return getMembers(); + case UMLPackage.ARTIFACT__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.ARTIFACT__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.ARTIFACT__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ARTIFACT__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ARTIFACT__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ARTIFACT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ARTIFACT__PACKAGE : + return getPackage(); + case UMLPackage.ARTIFACT__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.ARTIFACT__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ARTIFACT__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.ARTIFACT__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.ARTIFACT__FEATURE : + return getFeatures(); + case UMLPackage.ARTIFACT__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.ARTIFACT__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.ARTIFACT__GENERAL : + return getGenerals(); + case UMLPackage.ARTIFACT__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.ARTIFACT__USE_CASE : + return getUseCases(); + case UMLPackage.ARTIFACT__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.ARTIFACT__ATTRIBUTE : + return getAttributes(); + case UMLPackage.ARTIFACT__REPRESENTATION : + return getRepresentation(); + case UMLPackage.ARTIFACT__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.ARTIFACT__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.ARTIFACT__FILE_NAME : + return getFileName(); + case UMLPackage.ARTIFACT__NESTED_ARTIFACT : + return getNestedArtifacts(); + case UMLPackage.ARTIFACT__MANIFESTATION : + return getManifestations(); + case UMLPackage.ARTIFACT__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.ARTIFACT__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ARTIFACT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__NAME : + setName((String) newValue); + return; + case UMLPackage.ARTIFACT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ARTIFACT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ARTIFACT__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ARTIFACT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ARTIFACT__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.ARTIFACT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.ARTIFACT__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ARTIFACT__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.ARTIFACT__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.ARTIFACT__FILE_NAME : + setFileName((String) newValue); + return; + case UMLPackage.ARTIFACT__NESTED_ARTIFACT : + getNestedArtifacts().clear(); + getNestedArtifacts().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__MANIFESTATION : + getManifestations().clear(); + getManifestations().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.ARTIFACT__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ARTIFACT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ARTIFACT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ARTIFACT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ARTIFACT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ARTIFACT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ARTIFACT__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.ARTIFACT__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.ARTIFACT__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ARTIFACT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ARTIFACT__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.ARTIFACT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.ARTIFACT__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.ARTIFACT__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.ARTIFACT__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.ARTIFACT__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.ARTIFACT__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.ARTIFACT__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.ARTIFACT__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.ARTIFACT__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.ARTIFACT__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.ARTIFACT__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.ARTIFACT__FILE_NAME : + setFileName(FILE_NAME_EDEFAULT); + return; + case UMLPackage.ARTIFACT__NESTED_ARTIFACT : + getNestedArtifacts().clear(); + return; + case UMLPackage.ARTIFACT__MANIFESTATION : + getManifestations().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.ARTIFACT__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ARTIFACT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ARTIFACT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ARTIFACT__OWNER : + return isSetOwner(); + case UMLPackage.ARTIFACT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ARTIFACT__NAME : + String name = eVirtualIsSet(UMLPackage.ARTIFACT__NAME) + ? (String) eVirtualGet(UMLPackage.ARTIFACT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ARTIFACT__VISIBILITY : + return eVirtualIsSet(UMLPackage.ARTIFACT__VISIBILITY) + && eVirtualGet(UMLPackage.ARTIFACT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ARTIFACT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ARTIFACT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ARTIFACT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ARTIFACT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ARTIFACT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ARTIFACT__NAME_EXPRESSION) != null; + case UMLPackage.ARTIFACT__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.ARTIFACT__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.ARTIFACT__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.ARTIFACT__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.ARTIFACT__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.ARTIFACT__MEMBER : + return isSetMembers(); + case UMLPackage.ARTIFACT__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.ARTIFACT__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.ARTIFACT__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ARTIFACT__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ARTIFACT__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ARTIFACT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ARTIFACT__TEMPLATE_PARAMETER) != null; + case UMLPackage.ARTIFACT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ARTIFACT__PACKAGE : + return getPackage() != null; + case UMLPackage.ARTIFACT__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.ARTIFACT__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.ARTIFACT__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.ARTIFACT__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.ARTIFACT__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.ARTIFACT__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.ARTIFACT__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.ARTIFACT__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.ARTIFACT__FEATURE : + return isSetFeatures(); + case UMLPackage.ARTIFACT__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.ARTIFACT__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.ARTIFACT__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.ARTIFACT__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.ARTIFACT__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.ARTIFACT__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.ARTIFACT__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.ARTIFACT__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.ARTIFACT__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.ARTIFACT__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.ARTIFACT__REPRESENTATION : + return eVirtualGet(UMLPackage.ARTIFACT__REPRESENTATION) != null; + case UMLPackage.ARTIFACT__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.ARTIFACT__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.ARTIFACT__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.ARTIFACT__OWNED_SIGNATURE) != null; + case UMLPackage.ARTIFACT__FILE_NAME : + String fileName = eVirtualIsSet(UMLPackage.ARTIFACT__FILE_NAME) + ? (String) eVirtualGet(UMLPackage.ARTIFACT__FILE_NAME) + : FILE_NAME_EDEFAULT; + return FILE_NAME_EDEFAULT == null + ? fileName != null + : !FILE_NAME_EDEFAULT.equals(fileName); + case UMLPackage.ARTIFACT__NESTED_ARTIFACT : + List nestedArtifact = (List) eVirtualGet(UMLPackage.ARTIFACT__NESTED_ARTIFACT); + return nestedArtifact != null && !nestedArtifact.isEmpty(); + case UMLPackage.ARTIFACT__MANIFESTATION : + List manifestation = (List) eVirtualGet(UMLPackage.ARTIFACT__MANIFESTATION); + return manifestation != null && !manifestation.isEmpty(); + case UMLPackage.ARTIFACT__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.ARTIFACT__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.ARTIFACT__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (fileName: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.ARTIFACT__FILE_NAME) + ? eVirtualGet(UMLPackage.ARTIFACT__FILE_NAME) + : FILE_NAME_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getArtifact_NestedArtifact()) + || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedOperation()) + || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getArtifact_Manifestation()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedOperation()); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() + || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedAttribute()); + } + +} //ArtifactImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java new file mode 100644 index 00000000..78e0b069 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java @@ -0,0 +1,1421 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AssociationClassImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.AssociationClass; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.AssociationClassOperations; +import org.eclipse.uml2.uml.internal.operations.AssociationOperations; + +/** + * + * An implementation of the model object 'Association Class'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getMemberEnds Member End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getOwnedEnds Owned End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#isDerived Is Derived}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getEndTypes End Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getNavigableOwnedEnds Navigable Owned End}
  • + *
+ *

+ * + * @generated + */ +public class AssociationClassImpl + extends ClassImpl + implements AssociationClass { + + /** + * The default value of the '{@link #isDerived() Is Derived}' attribute. + * + * + * @see #isDerived() + * @generated + * @ordered + */ + protected static final boolean IS_DERIVED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDerived() Is Derived}' attribute. + * + * + * @see #isDerived() + * @generated + * @ordered + */ + protected static final int IS_DERIVED_EFLAG = 1 << 11; + + /** + * + * + * @generated + */ + protected AssociationClassImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAssociationClass(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getAssociation_EndType()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.ASSOCIATION_CLASS__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.ASSOCIATION_CLASS__MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getClassifier_Feature(), + UMLPackage.eINSTANCE.getClassifier_InheritedMember(), + UMLPackage.eINSTANCE.getStructuredClassifier_Role(), + UMLPackage.eINSTANCE.getAssociation_MemberEnd()})); + } + return member; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.ASSOCIATION_CLASS__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.ASSOCIATION_CLASS__FEATURE, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getAssociation_OwnedEnd()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.ASSOCIATION_CLASS__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.ASSOCIATION_CLASS__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getAssociation_OwnedEnd()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getMemberEnds() { + List memberEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__MEMBER_END); + if (memberEnd == null) { + eVirtualSet(UMLPackage.ASSOCIATION_CLASS__MEMBER_END, + memberEnd = new SupersetEObjectWithInverseResolvingEList( + Property.class, this, + UMLPackage.ASSOCIATION_CLASS__MEMBER_END, + new int[]{UMLPackage.ASSOCIATION_CLASS__OWNED_END}, + UMLPackage.PROPERTY__ASSOCIATION)); + } + return memberEnd; + } + + /** + * + * + * @generated + */ + public Property getMemberEnd(String name) { + for (Iterator i = getMemberEnds().iterator(); i.hasNext();) { + Property memberEnd = (Property) i.next(); + if (name.equals(memberEnd.getName())) { + return memberEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedEnds() { + List ownedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_END); + if (ownedEnd == null) { + eVirtualSet( + UMLPackage.ASSOCIATION_CLASS__OWNED_END, + ownedEnd = new SupersetEObjectContainmentWithInverseEList( + Property.class, + this, + UMLPackage.ASSOCIATION_CLASS__OWNED_END, + new int[]{UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END}, + UMLPackage.PROPERTY__OWNING_ASSOCIATION)); + } + return ownedEnd; + } + + /** + * + * + * @generated + */ + public Property createOwnedEnd(EClass eClass) { + Property newOwnedEnd = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedEnds().add(newOwnedEnd); + return newOwnedEnd; + } + + /** + * + * + * @generated + */ + public Property createOwnedEnd() { + Property newOwnedEnd = UMLFactory.eINSTANCE.createProperty(); + getOwnedEnds().add(newOwnedEnd); + return newOwnedEnd; + } + + /** + * + * + * @generated + */ + public Property getOwnedEnd(String name) { + for (Iterator i = getOwnedEnds().iterator(); i.hasNext();) { + Property ownedEnd = (Property) i.next(); + if (name.equals(ownedEnd.getName())) { + return ownedEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isDerived() { + return (eFlags & IS_DERIVED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDerived(boolean newIsDerived) { + boolean oldIsDerived = (eFlags & IS_DERIVED_EFLAG) != 0; + if (newIsDerived) + eFlags |= IS_DERIVED_EFLAG; + else + eFlags &= ~IS_DERIVED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ASSOCIATION_CLASS__IS_DERIVED, oldIsDerived, + newIsDerived)); + + } + + /** + * + * + * @generated + */ + public List getEndTypes() { + // TODO: implement this method to return the 'End Type' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Type getEndType(String name) { + for (Iterator i = getEndTypes().iterator(); i.hasNext();) { + Type endType = (Type) i.next(); + if (name.equals(endType.getName())) { + return endType; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNavigableOwnedEnds() { + List navigableOwnedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END); + if (navigableOwnedEnd == null) { + eVirtualSet(UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END, + navigableOwnedEnd = new SubsetEObjectEList(Property.class, + this, UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END, + new int[]{UMLPackage.ASSOCIATION_CLASS__OWNED_END})); + } + return navigableOwnedEnd; + } + + /** + * + * + * @generated + */ + public Property getNavigableOwnedEnd(String name) { + for (Iterator i = getNavigableOwnedEnds().iterator(); i.hasNext();) { + Property navigableOwnedEnd = (Property) i.next(); + if (name.equals(navigableOwnedEnd.getName())) { + return navigableOwnedEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSpecializedEndNumber(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateSpecializedEndNumber(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSpecializedEndTypes(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateSpecializedEndTypes(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBinaryAssociations(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateBinaryAssociations(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationEnds(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateAssociationEnds(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public List endType() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getAssociation().getEOperations().get(4)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getAssociation() + .getEOperations().get(4), result = AssociationOperations + .endType(this)); + } + return result; + } + return AssociationOperations.endType(this); + } + + /** + * + * + * @generated + */ + public boolean validateCannotBeDefined(DiagnosticChain diagnostics, + Map context) { + return AssociationClassOperations.validateCannotBeDefined(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public List allConnections() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getAssociationClass().getEOperations().get(1)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getAssociationClass() + .getEOperations().get(1), + result = AssociationClassOperations.allConnections(this)); + } + return result; + } + return AssociationClassOperations.allConnections(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ASSOCIATION_CLASS__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + return ((InternalEList) getMemberEnds()).basicAdd(otherEnd, + msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + return ((InternalEList) getOwnedEnds()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ASSOCIATION_CLASS__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.ASSOCIATION_CLASS__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + return ((InternalEList) getMemberEnds()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + return ((InternalEList) getOwnedEnds()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION_CLASS__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ASSOCIATION_CLASS__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ASSOCIATION_CLASS__NAME : + return getName(); + case UMLPackage.ASSOCIATION_CLASS__VISIBILITY : + return getVisibility(); + case UMLPackage.ASSOCIATION_CLASS__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ASSOCIATION_CLASS__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ASSOCIATION_CLASS__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.ASSOCIATION_CLASS__MEMBER : + return getMembers(); + case UMLPackage.ASSOCIATION_CLASS__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.ASSOCIATION_CLASS__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION_CLASS__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ASSOCIATION_CLASS__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ASSOCIATION_CLASS__PACKAGE : + return getPackage(); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.ASSOCIATION_CLASS__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION_CLASS__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.ASSOCIATION_CLASS__FEATURE : + return getFeatures(); + case UMLPackage.ASSOCIATION_CLASS__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.ASSOCIATION_CLASS__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.ASSOCIATION_CLASS__GENERAL : + return getGenerals(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.ASSOCIATION_CLASS__USE_CASE : + return getUseCases(); + case UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.ASSOCIATION_CLASS__ATTRIBUTE : + return getAttributes(); + case UMLPackage.ASSOCIATION_CLASS__REPRESENTATION : + return getRepresentation(); + case UMLPackage.ASSOCIATION_CLASS__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.ASSOCIATION_CLASS__PART : + return getParts(); + case UMLPackage.ASSOCIATION_CLASS__ROLE : + return getRoles(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.ASSOCIATION_CLASS__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.ASSOCIATION_CLASS__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.ASSOCIATION_CLASS__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.ASSOCIATION_CLASS__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION_CLASS__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.ASSOCIATION_CLASS__EXTENSION : + return getExtensions(); + case UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.ASSOCIATION_CLASS__IS_DERIVED : + return isDerived() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION_CLASS__END_TYPE : + return getEndTypes(); + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + return getMemberEnds(); + case UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END : + return getNavigableOwnedEnds(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + return getOwnedEnds(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION_CLASS__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__NAME : + setName((String) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION_CLASS__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_DERIVED : + setIsDerived(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + getMemberEnds().clear(); + getMemberEnds().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END : + getNavigableOwnedEnds().clear(); + getNavigableOwnedEnds().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + getOwnedEnds().clear(); + getOwnedEnds().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION_CLASS__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ASSOCIATION_CLASS__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ASSOCIATION_CLASS__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.ASSOCIATION_CLASS__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.ASSOCIATION_CLASS__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__IS_DERIVED : + setIsDerived(IS_DERIVED_EDEFAULT); + return; + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + getMemberEnds().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END : + getNavigableOwnedEnds().clear(); + return; + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + getOwnedEnds().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION_CLASS__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ASSOCIATION_CLASS__OWNER : + return isSetOwner(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__NAME : + String name = eVirtualIsSet(UMLPackage.ASSOCIATION_CLASS__NAME) + ? (String) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ASSOCIATION_CLASS__VISIBILITY : + return eVirtualIsSet(UMLPackage.ASSOCIATION_CLASS__VISIBILITY) + && eVirtualGet(UMLPackage.ASSOCIATION_CLASS__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ASSOCIATION_CLASS__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ASSOCIATION_CLASS__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ASSOCIATION_CLASS__NAME_EXPRESSION) != null; + case UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__MEMBER : + return isSetMembers(); + case UMLPackage.ASSOCIATION_CLASS__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.ASSOCIATION_CLASS__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ASSOCIATION_CLASS__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ASSOCIATION_CLASS__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ASSOCIATION_CLASS__TEMPLATE_PARAMETER) != null; + case UMLPackage.ASSOCIATION_CLASS__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ASSOCIATION_CLASS__PACKAGE : + return getPackage() != null; + case UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.ASSOCIATION_CLASS__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.ASSOCIATION_CLASS__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__FEATURE : + return isSetFeatures(); + case UMLPackage.ASSOCIATION_CLASS__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.ASSOCIATION_CLASS__REPRESENTATION : + return eVirtualGet(UMLPackage.ASSOCIATION_CLASS__REPRESENTATION) != null; + case UMLPackage.ASSOCIATION_CLASS__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_SIGNATURE) != null; + case UMLPackage.ASSOCIATION_CLASS__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__PART : + return !getParts().isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__ROLE : + return isSetRoles(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.ASSOCIATION_CLASS__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.ASSOCIATION_CLASS__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.ASSOCIATION_CLASS__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.ASSOCIATION_CLASS__IS_DERIVED : + return ((eFlags & IS_DERIVED_EFLAG) != 0) != IS_DERIVED_EDEFAULT; + case UMLPackage.ASSOCIATION_CLASS__END_TYPE : + return !getEndTypes().isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + List memberEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__MEMBER_END); + return memberEnd != null && !memberEnd.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END : + List navigableOwnedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END); + return navigableOwnedEnd != null + && !navigableOwnedEnd.isEmpty(); + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + List ownedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION_CLASS__OWNED_END); + return ownedEnd != null && !ownedEnd.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT : + return UMLPackage.RELATIONSHIP__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == Association.class) { + switch (derivedFeatureID) { + case UMLPackage.ASSOCIATION_CLASS__IS_DERIVED : + return UMLPackage.ASSOCIATION__IS_DERIVED; + case UMLPackage.ASSOCIATION_CLASS__END_TYPE : + return UMLPackage.ASSOCIATION__END_TYPE; + case UMLPackage.ASSOCIATION_CLASS__MEMBER_END : + return UMLPackage.ASSOCIATION__MEMBER_END; + case UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END : + return UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END; + case UMLPackage.ASSOCIATION_CLASS__OWNED_END : + return UMLPackage.ASSOCIATION__OWNED_END; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return UMLPackage.ASSOCIATION_CLASS__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == Association.class) { + switch (baseFeatureID) { + case UMLPackage.ASSOCIATION__IS_DERIVED : + return UMLPackage.ASSOCIATION_CLASS__IS_DERIVED; + case UMLPackage.ASSOCIATION__END_TYPE : + return UMLPackage.ASSOCIATION_CLASS__END_TYPE; + case UMLPackage.ASSOCIATION__MEMBER_END : + return UMLPackage.ASSOCIATION_CLASS__MEMBER_END; + case UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END : + return UMLPackage.ASSOCIATION_CLASS__NAVIGABLE_OWNED_END; + case UMLPackage.ASSOCIATION__OWNED_END : + return UMLPackage.ASSOCIATION_CLASS__OWNED_END; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDerived: "); //$NON-NLS-1$ + result.append((eFlags & IS_DERIVED_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return eIsSet(UMLPackage.eINSTANCE.getAssociation_EndType()); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return super.isSetMembers() + || eIsSet(UMLPackage.eINSTANCE.getAssociation_MemberEnd()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getAssociation_OwnedEnd()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getAssociation_OwnedEnd()); + } + +} //AssociationClassImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java new file mode 100644 index 00000000..164508a6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java @@ -0,0 +1,1142 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AssociationImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.AssociationOperations; + +/** + * + * An implementation of the model object 'Association'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getMemberEnds Member End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getOwnedEnds Owned End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#isDerived Is Derived}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getEndTypes End Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getNavigableOwnedEnds Navigable Owned End}
  • + *
+ *

+ * + * @generated + */ +public class AssociationImpl + extends ClassifierImpl + implements Association { + + /** + * The default value of the '{@link #isDerived() Is Derived}' attribute. + * + * + * @see #isDerived() + * @generated + * @ordered + */ + protected static final boolean IS_DERIVED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDerived() Is Derived}' attribute. + * + * + * @see #isDerived() + * @generated + * @ordered + */ + protected static final int IS_DERIVED_EFLAG = 1 << 10; + + /** + * + * + * @generated + */ + protected AssociationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getAssociation(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.ASSOCIATION__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.ASSOCIATION__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ASSOCIATION__RELATED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getAssociation_EndType()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.ASSOCIATION__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.ASSOCIATION__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.ASSOCIATION__MEMBER, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getClassifier_Feature(), + UMLPackage.eINSTANCE.getClassifier_InheritedMember(), + UMLPackage.eINSTANCE.getAssociation_MemberEnd()})); + } + return member; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.ASSOCIATION__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.ASSOCIATION__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.ASSOCIATION__FEATURE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE.getAssociation_OwnedEnd()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.ASSOCIATION__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.ASSOCIATION__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE.getAssociation_OwnedEnd()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getMemberEnds() { + List memberEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION__MEMBER_END); + if (memberEnd == null) { + eVirtualSet(UMLPackage.ASSOCIATION__MEMBER_END, + memberEnd = new SupersetEObjectWithInverseResolvingEList( + Property.class, this, UMLPackage.ASSOCIATION__MEMBER_END, + new int[]{UMLPackage.ASSOCIATION__OWNED_END}, + UMLPackage.PROPERTY__ASSOCIATION)); + } + return memberEnd; + } + + /** + * + * + * @generated + */ + public Property getMemberEnd(String name) { + for (Iterator i = getMemberEnds().iterator(); i.hasNext();) { + Property memberEnd = (Property) i.next(); + if (name.equals(memberEnd.getName())) { + return memberEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedEnds() { + List ownedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_END); + if (ownedEnd == null) { + eVirtualSet(UMLPackage.ASSOCIATION__OWNED_END, + ownedEnd = new SupersetEObjectContainmentWithInverseEList( + Property.class, this, UMLPackage.ASSOCIATION__OWNED_END, + new int[]{UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END}, + UMLPackage.PROPERTY__OWNING_ASSOCIATION)); + } + return ownedEnd; + } + + /** + * + * + * @generated + */ + public Property createOwnedEnd(EClass eClass) { + Property newOwnedEnd = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedEnds().add(newOwnedEnd); + return newOwnedEnd; + } + + /** + * + * + * @generated + */ + public Property createOwnedEnd() { + Property newOwnedEnd = UMLFactory.eINSTANCE.createProperty(); + getOwnedEnds().add(newOwnedEnd); + return newOwnedEnd; + } + + /** + * + * + * @generated + */ + public Property getOwnedEnd(String name) { + for (Iterator i = getOwnedEnds().iterator(); i.hasNext();) { + Property ownedEnd = (Property) i.next(); + if (name.equals(ownedEnd.getName())) { + return ownedEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isDerived() { + return (eFlags & IS_DERIVED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDerived(boolean newIsDerived) { + boolean oldIsDerived = (eFlags & IS_DERIVED_EFLAG) != 0; + if (newIsDerived) + eFlags |= IS_DERIVED_EFLAG; + else + eFlags &= ~IS_DERIVED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ASSOCIATION__IS_DERIVED, oldIsDerived, newIsDerived)); + + } + + /** + * + * + * @generated + */ + public List getEndTypes() { + // TODO: implement this method to return the 'End Type' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Type getEndType(String name) { + for (Iterator i = getEndTypes().iterator(); i.hasNext();) { + Type endType = (Type) i.next(); + if (name.equals(endType.getName())) { + return endType; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNavigableOwnedEnds() { + List navigableOwnedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END); + if (navigableOwnedEnd == null) { + eVirtualSet(UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END, + navigableOwnedEnd = new SubsetEObjectEList(Property.class, + this, UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END, + new int[]{UMLPackage.ASSOCIATION__OWNED_END})); + } + return navigableOwnedEnd; + } + + /** + * + * + * @generated + */ + public Property getNavigableOwnedEnd(String name) { + for (Iterator i = getNavigableOwnedEnds().iterator(); i.hasNext();) { + Property navigableOwnedEnd = (Property) i.next(); + if (name.equals(navigableOwnedEnd.getName())) { + return navigableOwnedEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSpecializedEndNumber(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateSpecializedEndNumber(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSpecializedEndTypes(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateSpecializedEndTypes(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBinaryAssociations(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateBinaryAssociations(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationEnds(DiagnosticChain diagnostics, + Map context) { + return AssociationOperations.validateAssociationEnds(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public List endType() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getAssociation().getEOperations().get(4)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getAssociation() + .getEOperations().get(4), result = AssociationOperations + .endType(this)); + } + return result; + } + return AssociationOperations.endType(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ASSOCIATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ASSOCIATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.ASSOCIATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.ASSOCIATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.ASSOCIATION__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.ASSOCIATION__MEMBER_END : + return ((InternalEList) getMemberEnds()).basicAdd(otherEnd, + msgs); + case UMLPackage.ASSOCIATION__OWNED_END : + return ((InternalEList) getOwnedEnds()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ASSOCIATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ASSOCIATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ASSOCIATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ASSOCIATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.ASSOCIATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.ASSOCIATION__MEMBER_END : + return ((InternalEList) getMemberEnds()).basicRemove( + otherEnd, msgs); + case UMLPackage.ASSOCIATION__OWNED_END : + return ((InternalEList) getOwnedEnds()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ASSOCIATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ASSOCIATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ASSOCIATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ASSOCIATION__NAME : + return getName(); + case UMLPackage.ASSOCIATION__VISIBILITY : + return getVisibility(); + case UMLPackage.ASSOCIATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ASSOCIATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ASSOCIATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ASSOCIATION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.ASSOCIATION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.ASSOCIATION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.ASSOCIATION__MEMBER : + return getMembers(); + case UMLPackage.ASSOCIATION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.ASSOCIATION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.ASSOCIATION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ASSOCIATION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ASSOCIATION__PACKAGE : + return getPackage(); + case UMLPackage.ASSOCIATION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.ASSOCIATION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.ASSOCIATION__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.ASSOCIATION__FEATURE : + return getFeatures(); + case UMLPackage.ASSOCIATION__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.ASSOCIATION__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.ASSOCIATION__GENERAL : + return getGenerals(); + case UMLPackage.ASSOCIATION__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.ASSOCIATION__USE_CASE : + return getUseCases(); + case UMLPackage.ASSOCIATION__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.ASSOCIATION__ATTRIBUTE : + return getAttributes(); + case UMLPackage.ASSOCIATION__REPRESENTATION : + return getRepresentation(); + case UMLPackage.ASSOCIATION__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.ASSOCIATION__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.ASSOCIATION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.ASSOCIATION__IS_DERIVED : + return isDerived() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ASSOCIATION__END_TYPE : + return getEndTypes(); + case UMLPackage.ASSOCIATION__MEMBER_END : + return getMemberEnds(); + case UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END : + return getNavigableOwnedEnds(); + case UMLPackage.ASSOCIATION__OWNED_END : + return getOwnedEnds(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__NAME : + setName((String) newValue); + return; + case UMLPackage.ASSOCIATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ASSOCIATION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ASSOCIATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.ASSOCIATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.ASSOCIATION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.ASSOCIATION__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.ASSOCIATION__IS_DERIVED : + setIsDerived(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ASSOCIATION__MEMBER_END : + getMemberEnds().clear(); + getMemberEnds().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END : + getNavigableOwnedEnds().clear(); + getNavigableOwnedEnds().addAll((Collection) newValue); + return; + case UMLPackage.ASSOCIATION__OWNED_END : + getOwnedEnds().clear(); + getOwnedEnds().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ASSOCIATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ASSOCIATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ASSOCIATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ASSOCIATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ASSOCIATION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.ASSOCIATION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.ASSOCIATION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.ASSOCIATION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ASSOCIATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.ASSOCIATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.ASSOCIATION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.ASSOCIATION__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.ASSOCIATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.ASSOCIATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.ASSOCIATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.ASSOCIATION__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.ASSOCIATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.ASSOCIATION__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.ASSOCIATION__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.ASSOCIATION__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.ASSOCIATION__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.ASSOCIATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.ASSOCIATION__IS_DERIVED : + setIsDerived(IS_DERIVED_EDEFAULT); + return; + case UMLPackage.ASSOCIATION__MEMBER_END : + getMemberEnds().clear(); + return; + case UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END : + getNavigableOwnedEnds().clear(); + return; + case UMLPackage.ASSOCIATION__OWNED_END : + getOwnedEnds().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ASSOCIATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ASSOCIATION__OWNER : + return isSetOwner(); + case UMLPackage.ASSOCIATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ASSOCIATION__NAME : + String name = eVirtualIsSet(UMLPackage.ASSOCIATION__NAME) + ? (String) eVirtualGet(UMLPackage.ASSOCIATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ASSOCIATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ASSOCIATION__VISIBILITY) + && eVirtualGet(UMLPackage.ASSOCIATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ASSOCIATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ASSOCIATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ASSOCIATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ASSOCIATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ASSOCIATION__NAME_EXPRESSION) != null; + case UMLPackage.ASSOCIATION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.ASSOCIATION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.ASSOCIATION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.ASSOCIATION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.ASSOCIATION__MEMBER : + return isSetMembers(); + case UMLPackage.ASSOCIATION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.ASSOCIATION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ASSOCIATION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ASSOCIATION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ASSOCIATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.ASSOCIATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ASSOCIATION__PACKAGE : + return getPackage() != null; + case UMLPackage.ASSOCIATION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.ASSOCIATION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.ASSOCIATION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.ASSOCIATION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.ASSOCIATION__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.ASSOCIATION__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.ASSOCIATION__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.ASSOCIATION__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.ASSOCIATION__FEATURE : + return isSetFeatures(); + case UMLPackage.ASSOCIATION__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.ASSOCIATION__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.ASSOCIATION__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.ASSOCIATION__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.ASSOCIATION__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.ASSOCIATION__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.ASSOCIATION__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.ASSOCIATION__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.ASSOCIATION__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.ASSOCIATION__REPRESENTATION : + return eVirtualGet(UMLPackage.ASSOCIATION__REPRESENTATION) != null; + case UMLPackage.ASSOCIATION__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.ASSOCIATION__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.ASSOCIATION__OWNED_SIGNATURE) != null; + case UMLPackage.ASSOCIATION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.ASSOCIATION__IS_DERIVED : + return ((eFlags & IS_DERIVED_EFLAG) != 0) != IS_DERIVED_EDEFAULT; + case UMLPackage.ASSOCIATION__END_TYPE : + return !getEndTypes().isEmpty(); + case UMLPackage.ASSOCIATION__MEMBER_END : + List memberEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION__MEMBER_END); + return memberEnd != null && !memberEnd.isEmpty(); + case UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END : + List navigableOwnedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION__NAVIGABLE_OWNED_END); + return navigableOwnedEnd != null + && !navigableOwnedEnd.isEmpty(); + case UMLPackage.ASSOCIATION__OWNED_END : + List ownedEnd = (List) eVirtualGet(UMLPackage.ASSOCIATION__OWNED_END); + return ownedEnd != null && !ownedEnd.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case UMLPackage.ASSOCIATION__RELATED_ELEMENT : + return UMLPackage.RELATIONSHIP__RELATED_ELEMENT; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return UMLPackage.ASSOCIATION__RELATED_ELEMENT; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDerived: "); //$NON-NLS-1$ + result.append((eFlags & IS_DERIVED_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return eIsSet(UMLPackage.eINSTANCE.getAssociation_EndType()); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return super.isSetMembers() + || eIsSet(UMLPackage.eINSTANCE.getAssociation_MemberEnd()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getAssociation_OwnedEnd()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getAssociation_OwnedEnd()); + } + +} //AssociationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorExecutionSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorExecutionSpecificationImpl.java new file mode 100644 index 00000000..47a49050 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorExecutionSpecificationImpl.java @@ -0,0 +1,337 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehaviorExecutionSpecificationImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehaviorExecutionSpecification; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Behavior Execution Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl#getBehavior Behavior}
  • + *
+ *

+ * + * @generated + */ +public class BehaviorExecutionSpecificationImpl + extends ExecutionSpecificationImpl + implements BehaviorExecutionSpecification { + + /** + * + * + * @generated + */ + protected BehaviorExecutionSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getBehaviorExecutionSpecification(); + } + + /** + * + * + * @generated + */ + public Behavior getBehavior() { + Behavior behavior = (Behavior) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR); + if (behavior != null && behavior.eIsProxy()) { + Behavior oldBehavior = behavior; + behavior = (Behavior) eResolveProxy((InternalEObject) behavior); + if (behavior != oldBehavior) { + eVirtualSet( + UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR, + behavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR, + oldBehavior, behavior)); + } + } + return behavior; + } + + /** + * + * + * @generated + */ + public Behavior basicGetBehavior() { + return (Behavior) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR); + } + + /** + * + * + * @generated + */ + public void setBehavior(Behavior newBehavior) { + Behavior behavior = newBehavior; + Object oldBehavior = eVirtualSet( + UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR, behavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR, + oldBehavior == EVIRTUAL_NO_VALUE + ? null + : oldBehavior, behavior)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME : + return getName(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__COVERED : + return getCovereds(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__START : + if (resolve) + return getStart(); + return basicGetStart(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__FINISH : + if (resolve) + return getFinish(); + return basicGetFinish(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR : + if (resolve) + return getBehavior(); + return basicGetBehavior(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__START : + setStart((ExecutionOccurrenceSpecification) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__FINISH : + setFinish((ExecutionOccurrenceSpecification) newValue); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR : + setBehavior((Behavior) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__START : + setStart((ExecutionOccurrenceSpecification) null); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__FINISH : + setFinish((ExecutionOccurrenceSpecification) null); + return; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR : + setBehavior((Behavior) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__START : + return eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__START) != null; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__FINISH : + return eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__FINISH) != null; + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR : + return eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR) != null; + } + return eDynamicIsSet(eFeature); + } + +} //BehaviorExecutionSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java new file mode 100644 index 00000000..0b0ff798 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java @@ -0,0 +1,1368 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehaviorImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.BehaviorOperations; + +/** + * + * An implementation of the model object 'Behavior'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#isReentrant Is Reentrant}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getRedefinedBehaviors Redefined Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getOwnedParameters Owned Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getContext Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getOwnedParameterSets Owned Parameter Set}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getSpecification Specification}
  • + *
+ *

+ * + * @generated + */ +public class BehaviorImpl + extends ClassImpl + implements Behavior { + + /** + * The default value of the '{@link #isReentrant() Is Reentrant}' attribute. + * + * + * @see #isReentrant() + * @generated + * @ordered + */ + protected static final boolean IS_REENTRANT_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReentrant() Is Reentrant}' attribute. + * + * + * @see #isReentrant() + * @generated + * @ordered + */ + protected static final int IS_REENTRANT_EFLAG = 1 << 11; + + /** + * + * + * @generated + */ + protected BehaviorImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getBehavior(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.BEHAVIOR__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.BEHAVIOR__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.BEHAVIOR__REDEFINED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getClassifier_RedefinedClassifier(), + UMLPackage.eINSTANCE.getBehavior_RedefinedBehavior()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.BEHAVIOR__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.BEHAVIOR__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameter(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameterSet()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.BEHAVIOR__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet(UMLPackage.BEHAVIOR__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.BEHAVIOR__REDEFINITION_CONTEXT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getBehavior_Context()})); + } + return redefinitionContext; + } + + /** + * + * + * @generated + */ + public boolean isReentrant() { + return (eFlags & IS_REENTRANT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReentrant(boolean newIsReentrant) { + boolean oldIsReentrant = (eFlags & IS_REENTRANT_EFLAG) != 0; + if (newIsReentrant) + eFlags |= IS_REENTRANT_EFLAG; + else + eFlags &= ~IS_REENTRANT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIOR__IS_REENTRANT, oldIsReentrant, + newIsReentrant)); + + } + + /** + * + * + * @generated + */ + public List getRedefinedBehaviors() { + List redefinedBehavior = (List) eVirtualGet(UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR); + if (redefinedBehavior == null) { + eVirtualSet(UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR, + redefinedBehavior = new EObjectResolvingEList(Behavior.class, + this, UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR)); + } + return redefinedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior getRedefinedBehavior(String name) { + for (Iterator i = getRedefinedBehaviors().iterator(); i.hasNext();) { + Behavior redefinedBehavior = (Behavior) i.next(); + if (name.equals(redefinedBehavior.getName())) { + return redefinedBehavior; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_PARAMETER); + if (ownedParameter == null) { + eVirtualSet(UMLPackage.BEHAVIOR__OWNED_PARAMETER, + ownedParameter = new EObjectContainmentEList(Parameter.class, + this, UMLPackage.BEHAVIOR__OWNED_PARAMETER)); + } + return ownedParameter; + } + + /** + * + * + * @generated + */ + public Parameter createOwnedParameter() { + Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter(); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public Parameter getOwnedParameter(String name) { + for (Iterator i = getOwnedParameters().iterator(); i.hasNext();) { + Parameter ownedParameter = (Parameter) i.next(); + if (name.equals(ownedParameter.getName())) { + return ownedParameter; + } + } + return null; + } + + /** + * + * + * @generated + */ + public BehavioredClassifier getContext() { + BehavioredClassifier context = basicGetContext(); + return context == null + ? null + : (context.eIsProxy() + ? (BehavioredClassifier) eResolveProxy((InternalEObject) context) + : context); + } + + /** + * + * + * @generated + */ + public BehavioredClassifier basicGetContext() { + // TODO: implement this method to return the 'Context' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setContext(BehavioredClassifier newContext) { + // TODO: implement this method to set the 'Context' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getOwnedParameterSets() { + List ownedParameterSet = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET); + if (ownedParameterSet == null) { + eVirtualSet(UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET, + ownedParameterSet = new EObjectContainmentEList( + ParameterSet.class, this, + UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET)); + } + return ownedParameterSet; + } + + /** + * + * + * @generated + */ + public ParameterSet createOwnedParameterSet() { + ParameterSet newOwnedParameterSet = UMLFactory.eINSTANCE + .createParameterSet(); + getOwnedParameterSets().add(newOwnedParameterSet); + return newOwnedParameterSet; + } + + /** + * + * + * @generated + */ + public ParameterSet getOwnedParameterSet(String name) { + for (Iterator i = getOwnedParameterSets().iterator(); i.hasNext();) { + ParameterSet ownedParameterSet = (ParameterSet) i.next(); + if (name.equals(ownedParameterSet.getName())) { + return ownedParameterSet; + } + } + return null; + } + + /** + * + * + * @generated + */ + public BehavioralFeature getSpecification() { + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.BEHAVIOR__SPECIFICATION); + if (specification != null && specification.eIsProxy()) { + BehavioralFeature oldSpecification = specification; + specification = (BehavioralFeature) eResolveProxy((InternalEObject) specification); + if (specification != oldSpecification) { + eVirtualSet(UMLPackage.BEHAVIOR__SPECIFICATION, specification); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.BEHAVIOR__SPECIFICATION, oldSpecification, + specification)); + } + } + return specification; + } + + /** + * + * + * @generated + */ + public BehavioralFeature basicGetSpecification() { + return (BehavioralFeature) eVirtualGet(UMLPackage.BEHAVIOR__SPECIFICATION); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSpecification( + BehavioralFeature newSpecification, NotificationChain msgs) { + Object oldSpecification = eVirtualSet( + UMLPackage.BEHAVIOR__SPECIFICATION, newSpecification); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.BEHAVIOR__SPECIFICATION, + oldSpecification == EVIRTUAL_NO_VALUE + ? null + : oldSpecification, newSpecification); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSpecification(BehavioralFeature newSpecification) { + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.BEHAVIOR__SPECIFICATION); + if (newSpecification != specification) { + NotificationChain msgs = null; + if (specification != null) + msgs = ((InternalEObject) specification).eInverseRemove(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + if (newSpecification != null) + msgs = ((InternalEObject) newSpecification).eInverseAdd(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + msgs = basicSetSpecification(newSpecification, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIOR__SPECIFICATION, newSpecification, + newSpecification)); + + } + + /** + * + * + * @generated + */ + public boolean validateParameters(DiagnosticChain diagnostics, Map context) { + return BehaviorOperations + .validateParameters(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateFeatureOfContextClassifier( + DiagnosticChain diagnostics, Map context) { + return BehaviorOperations.validateFeatureOfContextClassifier(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMustRealize(DiagnosticChain diagnostics, Map context) { + return BehaviorOperations.validateMustRealize(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMostOneBehaviour(DiagnosticChain diagnostics, + Map context) { + return BehaviorOperations.validateMostOneBehaviour(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.BEHAVIOR__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.BEHAVIOR__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.BEHAVIOR__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.BEHAVIOR__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.BEHAVIOR__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.BEHAVIOR__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__SPECIFICATION : + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.BEHAVIOR__SPECIFICATION); + if (specification != null) + msgs = ((InternalEObject) specification) + .eInverseRemove(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + return basicSetSpecification((BehavioralFeature) otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.BEHAVIOR__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIOR__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.BEHAVIOR__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.BEHAVIOR__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.BEHAVIOR__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.BEHAVIOR__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIOR__SPECIFICATION : + return basicSetSpecification(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.BEHAVIOR__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.BEHAVIOR__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.BEHAVIOR__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.BEHAVIOR__NAME : + return getName(); + case UMLPackage.BEHAVIOR__VISIBILITY : + return getVisibility(); + case UMLPackage.BEHAVIOR__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.BEHAVIOR__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.BEHAVIOR__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.BEHAVIOR__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.BEHAVIOR__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.BEHAVIOR__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.BEHAVIOR__MEMBER : + return getMembers(); + case UMLPackage.BEHAVIOR__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.BEHAVIOR__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.BEHAVIOR__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIOR__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.BEHAVIOR__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.BEHAVIOR__PACKAGE : + return getPackage(); + case UMLPackage.BEHAVIOR__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.BEHAVIOR__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIOR__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.BEHAVIOR__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.BEHAVIOR__FEATURE : + return getFeatures(); + case UMLPackage.BEHAVIOR__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.BEHAVIOR__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.BEHAVIOR__GENERAL : + return getGenerals(); + case UMLPackage.BEHAVIOR__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.BEHAVIOR__USE_CASE : + return getUseCases(); + case UMLPackage.BEHAVIOR__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.BEHAVIOR__ATTRIBUTE : + return getAttributes(); + case UMLPackage.BEHAVIOR__REPRESENTATION : + return getRepresentation(); + case UMLPackage.BEHAVIOR__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.BEHAVIOR__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.BEHAVIOR__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.BEHAVIOR__PART : + return getParts(); + case UMLPackage.BEHAVIOR__ROLE : + return getRoles(); + case UMLPackage.BEHAVIOR__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.BEHAVIOR__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.BEHAVIOR__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.BEHAVIOR__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.BEHAVIOR__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.BEHAVIOR__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.BEHAVIOR__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.BEHAVIOR__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.BEHAVIOR__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.BEHAVIOR__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIOR__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.BEHAVIOR__EXTENSION : + return getExtensions(); + case UMLPackage.BEHAVIOR__IS_REENTRANT : + return isReentrant() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR : + return getRedefinedBehaviors(); + case UMLPackage.BEHAVIOR__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.BEHAVIOR__CONTEXT : + if (resolve) + return getContext(); + return basicGetContext(); + case UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.BEHAVIOR__SPECIFICATION : + if (resolve) + return getSpecification(); + return basicGetSpecification(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__NAME : + setName((String) newValue); + return; + case UMLPackage.BEHAVIOR__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.BEHAVIOR__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.BEHAVIOR__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.BEHAVIOR__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.BEHAVIOR__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIOR__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.BEHAVIOR__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.BEHAVIOR__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIOR__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__IS_REENTRANT : + setIsReentrant(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + getRedefinedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__CONTEXT : + setContext((BehavioredClassifier) newValue); + return; + case UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIOR__SPECIFICATION : + setSpecification((BehavioralFeature) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.BEHAVIOR__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.BEHAVIOR__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.BEHAVIOR__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.BEHAVIOR__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.BEHAVIOR__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.BEHAVIOR__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.BEHAVIOR__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.BEHAVIOR__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.BEHAVIOR__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.BEHAVIOR__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.BEHAVIOR__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.BEHAVIOR__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.BEHAVIOR__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.BEHAVIOR__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.BEHAVIOR__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.BEHAVIOR__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.BEHAVIOR__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.BEHAVIOR__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.BEHAVIOR__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.BEHAVIOR__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.BEHAVIOR__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.BEHAVIOR__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.BEHAVIOR__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.BEHAVIOR__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.BEHAVIOR__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.BEHAVIOR__IS_REENTRANT : + setIsReentrant(IS_REENTRANT_EDEFAULT); + return; + case UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + return; + case UMLPackage.BEHAVIOR__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.BEHAVIOR__CONTEXT : + setContext((BehavioredClassifier) null); + return; + case UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.BEHAVIOR__SPECIFICATION : + setSpecification((BehavioralFeature) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIOR__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.BEHAVIOR__OWNER : + return isSetOwner(); + case UMLPackage.BEHAVIOR__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.BEHAVIOR__NAME : + String name = eVirtualIsSet(UMLPackage.BEHAVIOR__NAME) + ? (String) eVirtualGet(UMLPackage.BEHAVIOR__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.BEHAVIOR__VISIBILITY : + return eVirtualIsSet(UMLPackage.BEHAVIOR__VISIBILITY) + && eVirtualGet(UMLPackage.BEHAVIOR__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.BEHAVIOR__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.BEHAVIOR__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.BEHAVIOR__NAMESPACE : + return isSetNamespace(); + case UMLPackage.BEHAVIOR__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.BEHAVIOR__NAME_EXPRESSION) != null; + case UMLPackage.BEHAVIOR__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.BEHAVIOR__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.BEHAVIOR__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.BEHAVIOR__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.BEHAVIOR__MEMBER : + return isSetMembers(); + case UMLPackage.BEHAVIOR__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.BEHAVIOR__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.BEHAVIOR__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.BEHAVIOR__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.BEHAVIOR__TEMPLATE_PARAMETER) != null; + case UMLPackage.BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.BEHAVIOR__PACKAGE : + return getPackage() != null; + case UMLPackage.BEHAVIOR__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.BEHAVIOR__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.BEHAVIOR__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.BEHAVIOR__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.BEHAVIOR__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.BEHAVIOR__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.BEHAVIOR__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.BEHAVIOR__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.BEHAVIOR__FEATURE : + return isSetFeatures(); + case UMLPackage.BEHAVIOR__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.BEHAVIOR__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.BEHAVIOR__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.BEHAVIOR__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.BEHAVIOR__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.BEHAVIOR__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.BEHAVIOR__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.BEHAVIOR__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.BEHAVIOR__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.BEHAVIOR__REPRESENTATION : + return eVirtualGet(UMLPackage.BEHAVIOR__REPRESENTATION) != null; + case UMLPackage.BEHAVIOR__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.BEHAVIOR__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.BEHAVIOR__OWNED_SIGNATURE) != null; + case UMLPackage.BEHAVIOR__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.BEHAVIOR__PART : + return !getParts().isEmpty(); + case UMLPackage.BEHAVIOR__ROLE : + return isSetRoles(); + case UMLPackage.BEHAVIOR__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.BEHAVIOR__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.BEHAVIOR__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.BEHAVIOR__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.BEHAVIOR__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.BEHAVIOR__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.BEHAVIOR__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.BEHAVIOR__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.BEHAVIOR__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.BEHAVIOR__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.BEHAVIOR__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.BEHAVIOR__IS_REENTRANT : + return ((eFlags & IS_REENTRANT_EFLAG) != 0) != IS_REENTRANT_EDEFAULT; + case UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR : + List redefinedBehavior = (List) eVirtualGet(UMLPackage.BEHAVIOR__REDEFINED_BEHAVIOR); + return redefinedBehavior != null + && !redefinedBehavior.isEmpty(); + case UMLPackage.BEHAVIOR__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.BEHAVIOR__CONTEXT : + return basicGetContext() != null; + case UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.BEHAVIOR__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.BEHAVIOR__SPECIFICATION : + return eVirtualGet(UMLPackage.BEHAVIOR__SPECIFICATION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isReentrant: "); //$NON-NLS-1$ + result.append((eFlags & IS_REENTRANT_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getBehavior_RedefinedBehavior()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getBehavior_OwnedParameter()) + || eIsSet(UMLPackage.eINSTANCE.getBehavior_OwnedParameterSet()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return super.isSetRedefinitionContexts() + || eIsSet(UMLPackage.eINSTANCE.getBehavior_Context()); + } + +} //BehaviorImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java new file mode 100644 index 00000000..0290a7e5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java @@ -0,0 +1,1108 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehavioralFeatureImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.CallConcurrencyKind; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.BehavioralFeatureOperations; +import org.eclipse.uml2.uml.internal.operations.RedefinableElementOperations; + +/** + * + * An implementation of the model object 'Behavioral Feature'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#isLeaf Is Leaf}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getFeaturingClassifiers Featuring Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#isStatic Is Static}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getOwnedParameters Owned Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#isAbstract Is Abstract}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getMethods Method}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getConcurrency Concurrency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getRaisedExceptions Raised Exception}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getOwnedParameterSets Owned Parameter Set}
  • + *
+ *

+ * + * @generated + */ +public class BehavioralFeatureImpl + extends NamespaceImpl + implements BehavioralFeature { + + /** + * The default value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final boolean IS_LEAF_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final int IS_LEAF_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isStatic() Is Static}' attribute. + * + * + * @see #isStatic() + * @generated + * @ordered + */ + protected static final boolean IS_STATIC_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isStatic() Is Static}' attribute. + * + * + * @see #isStatic() + * @generated + * @ordered + */ + protected static final int IS_STATIC_EFLAG = 1 << 9; + + /** + * The default value of the '{@link #isAbstract() Is Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final boolean IS_ABSTRACT_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isAbstract() Is Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final int IS_ABSTRACT_EFLAG = 1 << 10; + + /** + * The default value of the '{@link #getConcurrency() Concurrency}' attribute. + * + * + * @see #getConcurrency() + * @generated + * @ordered + */ + protected static final CallConcurrencyKind CONCURRENCY_EDEFAULT = CallConcurrencyKind.SEQUENTIAL_LITERAL; + + /** + * + * + * @generated + */ + protected BehavioralFeatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getBehavioralFeature(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT, + new EStructuralFeature[]{})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public RedefinableElement getRedefinedElement(String name) { + for (Iterator i = getRedefinedElements().iterator(); i.hasNext();) { + RedefinableElement redefinedElement = (RedefinableElement) i.next(); + if (name.equals(redefinedElement.getName())) { + return redefinedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT, + new EStructuralFeature[]{})); + } + return redefinitionContext; + } + + /** + * + * + * @generated + */ + public Classifier getRedefinitionContext(String name) { + for (Iterator i = getRedefinitionContexts().iterator(); i.hasNext();) { + Classifier redefinitionContext = (Classifier) i.next(); + if (name.equals(redefinitionContext.getName())) { + return redefinitionContext; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isLeaf() { + return (eFlags & IS_LEAF_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsLeaf(boolean newIsLeaf) { + boolean oldIsLeaf = (eFlags & IS_LEAF_EFLAG) != 0; + if (newIsLeaf) + eFlags |= IS_LEAF_EFLAG; + else + eFlags &= ~IS_LEAF_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF, oldIsLeaf, newIsLeaf)); + + } + + /** + * + * + * @generated + */ + public List getFeaturingClassifiers() { + List featuringClassifier = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER); + if (featuringClassifier == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER, + featuringClassifier = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER, + new EStructuralFeature[]{})); + } + return featuringClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getFeaturingClassifier(String name) { + for (Iterator i = getFeaturingClassifiers().iterator(); i.hasNext();) { + Classifier featuringClassifier = (Classifier) i.next(); + if (name.equals(featuringClassifier.getName())) { + return featuringClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isStatic() { + return (eFlags & IS_STATIC_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsStatic(boolean newIsStatic) { + boolean oldIsStatic = (eFlags & IS_STATIC_EFLAG) != 0; + if (newIsStatic) + eFlags |= IS_STATIC_EFLAG; + else + eFlags &= ~IS_STATIC_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC, oldIsStatic, + newIsStatic)); + + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.BEHAVIORAL_FEATURE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE + .getBehavioralFeature_OwnedParameter(), + UMLPackage.eINSTANCE + .getBehavioralFeature_OwnedParameterSet()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER); + if (ownedParameter == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER, + ownedParameter = new EObjectContainmentEList(Parameter.class, + this, UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER)); + } + return ownedParameter; + } + + /** + * + * + * @generated + */ + public Parameter createOwnedParameter() { + Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter(); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public Parameter getOwnedParameter(String name) { + for (Iterator i = getOwnedParameters().iterator(); i.hasNext();) { + Parameter ownedParameter = (Parameter) i.next(); + if (name.equals(ownedParameter.getName())) { + return ownedParameter; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isAbstract() { + return (eFlags & IS_ABSTRACT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsAbstract(boolean newIsAbstract) { + boolean oldIsAbstract = (eFlags & IS_ABSTRACT_EFLAG) != 0; + if (newIsAbstract) + eFlags |= IS_ABSTRACT_EFLAG; + else + eFlags &= ~IS_ABSTRACT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIORAL_FEATURE__IS_ABSTRACT, oldIsAbstract, + newIsAbstract)); + + } + + /** + * + * + * @generated + */ + public List getMethods() { + List method = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__METHOD); + if (method == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__METHOD, + method = new EObjectWithInverseResolvingEList(Behavior.class, + this, UMLPackage.BEHAVIORAL_FEATURE__METHOD, + UMLPackage.BEHAVIOR__SPECIFICATION)); + } + return method; + } + + /** + * + * + * @generated + */ + public Behavior getMethod(String name) { + for (Iterator i = getMethods().iterator(); i.hasNext();) { + Behavior method = (Behavior) i.next(); + if (name.equals(method.getName())) { + return method; + } + } + return null; + } + + /** + * + * + * @generated + */ + public CallConcurrencyKind getConcurrency() { + CallConcurrencyKind concurrency = (CallConcurrencyKind) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY); + return concurrency == null + ? CONCURRENCY_EDEFAULT + : concurrency; + } + + /** + * + * + * @generated + */ + public void setConcurrency(CallConcurrencyKind newConcurrency) { + CallConcurrencyKind concurrency = newConcurrency == null + ? CONCURRENCY_EDEFAULT + : newConcurrency; + Object oldConcurrency = eVirtualSet( + UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY, concurrency); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY, + oldConcurrency == EVIRTUAL_NO_VALUE + ? CONCURRENCY_EDEFAULT + : oldConcurrency, concurrency)); + + } + + /** + * + * + * @generated + */ + public List getRaisedExceptions() { + List raisedException = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION); + if (raisedException == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION, + raisedException = new EObjectResolvingEList(Type.class, this, + UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION)); + } + return raisedException; + } + + /** + * + * + * @generated + */ + public Type getRaisedException(String name) { + for (Iterator i = getRaisedExceptions().iterator(); i.hasNext();) { + Type raisedException = (Type) i.next(); + if (name.equals(raisedException.getName())) { + return raisedException; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedParameterSets() { + List ownedParameterSet = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET); + if (ownedParameterSet == null) { + eVirtualSet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET, + ownedParameterSet = new EObjectContainmentEList( + ParameterSet.class, this, + UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET)); + } + return ownedParameterSet; + } + + /** + * + * + * @generated + */ + public ParameterSet createOwnedParameterSet() { + ParameterSet newOwnedParameterSet = UMLFactory.eINSTANCE + .createParameterSet(); + getOwnedParameterSets().add(newOwnedParameterSet); + return newOwnedParameterSet; + } + + /** + * + * + * @generated + */ + public ParameterSet getOwnedParameterSet(String name) { + for (Iterator i = getOwnedParameterSets().iterator(); i.hasNext();) { + ParameterSet ownedParameterSet = (ParameterSet) i.next(); + if (name.equals(ownedParameterSet.getName())) { + return ownedParameterSet; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionContextValid( + DiagnosticChain diagnostics, Map context) { + return RedefinableElementOperations.validateRedefinitionContextValid( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics, + Map context) { + return RedefinableElementOperations.validateRedefinitionConsistent( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid(RedefinableElement redefinable) { + return RedefinableElementOperations.isRedefinitionContextValid(this, + redefinable); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return RedefinableElementOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid() { + return RedefinableElementOperations.isRedefinitionContextValid(this); + } + + /** + * + * + * @generated + */ + public boolean isDistinguishableFrom(NamedElement n, Namespace ns) { + return BehavioralFeatureOperations.isDistinguishableFrom(this, n, ns); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.BEHAVIORAL_FEATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.BEHAVIORAL_FEATURE__METHOD : + return ((InternalEList) getMethods()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.BEHAVIORAL_FEATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORAL_FEATURE__METHOD : + return ((InternalEList) getMethods()).basicRemove(otherEnd, + msgs); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORAL_FEATURE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.BEHAVIORAL_FEATURE__NAME : + return getName(); + case UMLPackage.BEHAVIORAL_FEATURE__VISIBILITY : + return getVisibility(); + case UMLPackage.BEHAVIORAL_FEATURE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.BEHAVIORAL_FEATURE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.BEHAVIORAL_FEATURE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.BEHAVIORAL_FEATURE__MEMBER : + return getMembers(); + case UMLPackage.BEHAVIORAL_FEATURE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.BEHAVIORAL_FEATURE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIORAL_FEATURE__METHOD : + return getMethods(); + case UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY : + return getConcurrency(); + case UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION : + return getRaisedExceptions(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORAL_FEATURE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__NAME : + setName((String) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIORAL_FEATURE__METHOD : + getMethods().clear(); + getMethods().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY : + setConcurrency((CallConcurrencyKind) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + getRaisedExceptions().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORAL_FEATURE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.BEHAVIORAL_FEATURE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.BEHAVIORAL_FEATURE__METHOD : + getMethods().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY : + setConcurrency(CONCURRENCY_EDEFAULT); + return; + case UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + return; + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORAL_FEATURE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNER : + return isSetOwner(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__NAME : + String name = eVirtualIsSet(UMLPackage.BEHAVIORAL_FEATURE__NAME) + ? (String) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.BEHAVIORAL_FEATURE__VISIBILITY : + return eVirtualIsSet(UMLPackage.BEHAVIORAL_FEATURE__VISIBILITY) + && eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.BEHAVIORAL_FEATURE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.BEHAVIORAL_FEATURE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__NAME_EXPRESSION) != null; + case UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__MEMBER : + return isSetMembers(); + case UMLPackage.BEHAVIORAL_FEATURE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.BEHAVIORAL_FEATURE__METHOD : + List method = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__METHOD); + return method != null && !method.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY : + return eVirtualIsSet(UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY) + && eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY) != CONCURRENCY_EDEFAULT; + case UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION : + List raisedException = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__RAISED_EXCEPTION); + return raisedException != null && !raisedException.isEmpty(); + case UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF : + return UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF; + case UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + case UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + default : + return -1; + } + } + if (baseClass == Feature.class) { + switch (derivedFeatureID) { + case UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC : + return UMLPackage.FEATURE__IS_STATIC; + case UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER : + return UMLPackage.FEATURE__FEATURING_CLASSIFIER; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (baseFeatureID) { + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + return UMLPackage.BEHAVIORAL_FEATURE__IS_LEAF; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT : + return UMLPackage.BEHAVIORAL_FEATURE__REDEFINED_ELEMENT; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT : + return UMLPackage.BEHAVIORAL_FEATURE__REDEFINITION_CONTEXT; + default : + return -1; + } + } + if (baseClass == Feature.class) { + switch (baseFeatureID) { + case UMLPackage.FEATURE__IS_STATIC : + return UMLPackage.BEHAVIORAL_FEATURE__IS_STATIC; + case UMLPackage.FEATURE__FEATURING_CLASSIFIER : + return UMLPackage.BEHAVIORAL_FEATURE__FEATURING_CLASSIFIER; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isLeaf: "); //$NON-NLS-1$ + result.append((eFlags & IS_LEAF_EFLAG) != 0); + result.append(", isStatic: "); //$NON-NLS-1$ + result.append((eFlags & IS_STATIC_EFLAG) != 0); + result.append(", isAbstract: "); //$NON-NLS-1$ + result.append((eFlags & IS_ABSTRACT_EFLAG) != 0); + result.append(", concurrency: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY) + ? eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY) + : CONCURRENCY_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetFeaturingClassifiers() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE + .getBehavioralFeature_OwnedParameter()) + || eIsSet(UMLPackage.eINSTANCE + .getBehavioralFeature_OwnedParameterSet()); + } + +} //BehavioralFeatureImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java new file mode 100644 index 00000000..330ac0a1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java @@ -0,0 +1,1008 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehavioredClassifierImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.BehavioredClassifierOperations; + +/** + * + * An implementation of the model object 'Behaviored Classifier'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedBehaviors Owned Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getClassifierBehavior Classifier Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getInterfaceRealizations Interface Realization}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedTriggers Owned Trigger}
  • + *
+ *

+ * + * @generated + */ +public abstract class BehavioredClassifierImpl + extends ClassifierImpl + implements BehavioredClassifier { + + /** + * + * + * @generated + */ + protected BehavioredClassifierImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getBehavioredClassifier(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedBehaviors() { + List ownedBehavior = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR); + if (ownedBehavior == null) { + eVirtualSet( + UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR, + ownedBehavior = new SupersetEObjectContainmentEList( + Behavior.class, + this, + UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR, + new int[]{UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR})); + } + return ownedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior createOwnedBehavior(EClass eClass) { + Behavior newOwnedBehavior = (Behavior) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedBehaviors().add(newOwnedBehavior); + return newOwnedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior createOwnedBehavior() { + Behavior newOwnedBehavior = UMLFactory.eINSTANCE.createBehavior(); + getOwnedBehaviors().add(newOwnedBehavior); + return newOwnedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior getOwnedBehavior(String name) { + for (Iterator i = getOwnedBehaviors().iterator(); i.hasNext();) { + Behavior ownedBehavior = (Behavior) i.next(); + if (name.equals(ownedBehavior.getName())) { + return ownedBehavior; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, + this, + UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY, + new int[]{UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION, + UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public Behavior getClassifierBehavior() { + Behavior classifierBehavior = (Behavior) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR); + return classifierBehavior; + } + + /** + * + * + * @generated + */ + public void setClassifierBehavior(Behavior newClassifierBehavior) { + if (newClassifierBehavior != null + && !getOwnedBehaviors().contains(newClassifierBehavior)) { + getOwnedBehaviors().add(newClassifierBehavior); + } + Behavior classifierBehavior = newClassifierBehavior; + Object oldClassifierBehavior = eVirtualSet( + UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR, + classifierBehavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR, + oldClassifierBehavior == EVIRTUAL_NO_VALUE + ? null + : oldClassifierBehavior, classifierBehavior)); + + } + + /** + * + * + * @generated + */ + public List getInterfaceRealizations() { + List interfaceRealization = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION); + if (interfaceRealization == null) { + eVirtualSet( + UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION, + interfaceRealization = new SubsetEObjectContainmentWithInverseEList( + InterfaceRealization.class, + this, + UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION, + new int[]{UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY}, + UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER)); + } + return interfaceRealization; + } + + /** + * + * + * @generated + */ + public InterfaceRealization createInterfaceRealization() { + InterfaceRealization newInterfaceRealization = UMLFactory.eINSTANCE + .createInterfaceRealization(); + getInterfaceRealizations().add(newInterfaceRealization); + return newInterfaceRealization; + } + + /** + * + * + * @generated + */ + public InterfaceRealization getInterfaceRealization(String name) { + for (Iterator i = getInterfaceRealizations().iterator(); i.hasNext();) { + InterfaceRealization interfaceRealization = (InterfaceRealization) i + .next(); + if (name.equals(interfaceRealization.getName())) { + return interfaceRealization; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedTriggers() { + List ownedTrigger = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER); + if (ownedTrigger == null) { + eVirtualSet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER, + ownedTrigger = new EObjectContainmentEList(Trigger.class, this, + UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER)); + } + return ownedTrigger; + } + + /** + * + * + * @generated + */ + public Trigger createOwnedTrigger() { + Trigger newOwnedTrigger = UMLFactory.eINSTANCE.createTrigger(); + getOwnedTriggers().add(newOwnedTrigger); + return newOwnedTrigger; + } + + /** + * + * + * @generated + */ + public Trigger getOwnedTrigger(String name) { + for (Iterator i = getOwnedTriggers().iterator(); i.hasNext();) { + Trigger ownedTrigger = (Trigger) i.next(); + if (name.equals(ownedTrigger.getName())) { + return ownedTrigger; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateClassBehavior(DiagnosticChain diagnostics, + Map context) { + return BehavioredClassifierOperations.validateClassBehavior(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.BEHAVIORED_CLASSIFIER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.BEHAVIORED_CLASSIFIER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORED_CLASSIFIER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME : + return getName(); + case UMLPackage.BEHAVIORED_CLASSIFIER__VISIBILITY : + return getVisibility(); + case UMLPackage.BEHAVIORED_CLASSIFIER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.BEHAVIORED_CLASSIFIER__MEMBER : + return getMembers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE : + return getPackage(); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.BEHAVIORED_CLASSIFIER__FEATURE : + return getFeatures(); + case UMLPackage.BEHAVIORED_CLASSIFIER__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERAL : + return getGenerals(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE : + return getUseCases(); + case UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.BEHAVIORED_CLASSIFIER__ATTRIBUTE : + return getAttributes(); + case UMLPackage.BEHAVIORED_CLASSIFIER__REPRESENTATION : + return getRepresentation(); + case UMLPackage.BEHAVIORED_CLASSIFIER__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER : + return getOwnedTriggers(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORED_CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME : + setName((String) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORED_CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BEHAVIORED_CLASSIFIER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNER : + return isSetOwner(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME : + String name = eVirtualIsSet(UMLPackage.BEHAVIORED_CLASSIFIER__NAME) + ? (String) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.BEHAVIORED_CLASSIFIER__VISIBILITY : + return eVirtualIsSet(UMLPackage.BEHAVIORED_CLASSIFIER__VISIBILITY) + && eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.BEHAVIORED_CLASSIFIER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.BEHAVIORED_CLASSIFIER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__NAME_EXPRESSION) != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__MEMBER : + return isSetMembers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_PARAMETER) != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__PACKAGE : + return getPackage() != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__FEATURE : + return isSetFeatures(); + case UMLPackage.BEHAVIORED_CLASSIFIER__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.BEHAVIORED_CLASSIFIER__REPRESENTATION : + return eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__REPRESENTATION) != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_SIGNATURE) != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior()) + || eIsSet(UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization()); + } + +} //BehavioredClassifierImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java new file mode 100644 index 00000000..a90fe787 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java @@ -0,0 +1,473 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BroadcastSignalActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.BroadcastSignalAction; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.BroadcastSignalActionOperations; + +/** + * + * An implementation of the model object 'Broadcast Signal Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl#getSignal Signal}
  • + *
+ *

+ * + * @generated + */ +public class BroadcastSignalActionImpl + extends InvocationActionImpl + implements BroadcastSignalAction { + + /** + * + * + * @generated + */ + protected BroadcastSignalActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getBroadcastSignalAction(); + } + + /** + * + * + * @generated + */ + public Signal getSignal() { + Signal signal = (Signal) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL); + if (signal != null && signal.eIsProxy()) { + Signal oldSignal = signal; + signal = (Signal) eResolveProxy((InternalEObject) signal); + if (signal != oldSignal) { + eVirtualSet(UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL, oldSignal, + signal)); + } + } + return signal; + } + + /** + * + * + * @generated + */ + public Signal basicGetSignal() { + return (Signal) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL); + } + + /** + * + * + * @generated + */ + public void setSignal(Signal newSignal) { + Signal signal = newSignal; + Object oldSignal = eVirtualSet( + UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL, + oldSignal == EVIRTUAL_NO_VALUE + ? null + : oldSignal, signal)); + + } + + /** + * + * + * @generated + */ + public boolean validateNumberAndOrder(DiagnosticChain diagnostics, + Map context) { + return BroadcastSignalActionOperations.validateNumberAndOrder(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOrderingMultiplicity( + DiagnosticChain diagnostics, Map context) { + return BroadcastSignalActionOperations + .validateTypeOrderingMultiplicity(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BROADCAST_SIGNAL_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME : + return getName(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__INPUT : + return getInputs(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__CONTEXT : + return getContext(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL : + if (resolve) + return getSignal(); + return basicGetSignal(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BROADCAST_SIGNAL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL : + setSignal((Signal) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BROADCAST_SIGNAL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ON_PORT : + setOnPort((Port) null); + return; + case UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL : + setSignal((Signal) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.BROADCAST_SIGNAL_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.BROADCAST_SIGNAL_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.BROADCAST_SIGNAL_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.BROADCAST_SIGNAL_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.BROADCAST_SIGNAL_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.BROADCAST_SIGNAL_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.BROADCAST_SIGNAL_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.BROADCAST_SIGNAL_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.BROADCAST_SIGNAL_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__ON_PORT) != null; + case UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL : + return eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL) != null; + } + return eDynamicIsSet(eFeature); + } + +} //BroadcastSignalActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java new file mode 100644 index 00000000..a16e91ba --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java @@ -0,0 +1,651 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.CallAction; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CallActionOperations; + +/** + * + * An implementation of the model object 'Call Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallActionImpl#isSynchronous Is Synchronous}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallActionImpl#getResults Result}
  • + *
+ *

+ * + * @generated + */ +public abstract class CallActionImpl + extends InvocationActionImpl + implements CallAction { + + /** + * The default value of the '{@link #isSynchronous() Is Synchronous}' attribute. + * + * + * @see #isSynchronous() + * @generated + * @ordered + */ + protected static final boolean IS_SYNCHRONOUS_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isSynchronous() Is Synchronous}' attribute. + * + * + * @see #isSynchronous() + * @generated + * @ordered + */ + protected static final int IS_SYNCHRONOUS_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected CallActionImpl() { + super(); + eFlags |= IS_SYNCHRONOUS_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCallAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.CALL_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.CALL_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.CALL_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getCallAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public boolean isSynchronous() { + return (eFlags & IS_SYNCHRONOUS_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsSynchronous(boolean newIsSynchronous) { + boolean oldIsSynchronous = (eFlags & IS_SYNCHRONOUS_EFLAG) != 0; + if (newIsSynchronous) + eFlags |= IS_SYNCHRONOUS_EFLAG; + else + eFlags &= ~IS_SYNCHRONOUS_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CALL_ACTION__IS_SYNCHRONOUS, oldIsSynchronous, + newIsSynchronous)); + + } + + /** + * + * + * @generated + */ + public List getResults() { + List result = (List) eVirtualGet(UMLPackage.CALL_ACTION__RESULT); + if (result == null) { + eVirtualSet(UMLPackage.CALL_ACTION__RESULT, + result = new EObjectContainmentEList(OutputPin.class, this, + UMLPackage.CALL_ACTION__RESULT)); + } + return result; + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + getResults().add(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public OutputPin getResult(String name) { + for (Iterator i = getResults().iterator(); i.hasNext();) { + OutputPin result = (OutputPin) i.next(); + if (name.equals(result.getName())) { + return result; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSynchronousCall(DiagnosticChain diagnostics, + Map context) { + return CallActionOperations.validateSynchronousCall(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNumberAndOrder(DiagnosticChain diagnostics, + Map context) { + return CallActionOperations.validateNumberAndOrder(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOrderingMultiplicity( + DiagnosticChain diagnostics, Map context) { + return CallActionOperations.validateTypeOrderingMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CALL_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CALL_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.CALL_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CALL_ACTION__ACTIVITY, msgs); + case UMLPackage.CALL_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_ACTION__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_ACTION__RESULT : + return ((InternalEList) getResults()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CALL_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CALL_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CALL_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CALL_ACTION__NAME : + return getName(); + case UMLPackage.CALL_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CALL_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CALL_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CALL_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CALL_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CALL_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CALL_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CALL_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CALL_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CALL_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CALL_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CALL_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CALL_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CALL_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CALL_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CALL_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CALL_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CALL_ACTION__INPUT : + return getInputs(); + case UMLPackage.CALL_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CALL_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CALL_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CALL_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.CALL_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + case UMLPackage.CALL_ACTION__IS_SYNCHRONOUS : + return isSynchronous() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CALL_ACTION__RESULT : + return getResults(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.CALL_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CALL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CALL_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CALL_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CALL_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CALL_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + case UMLPackage.CALL_ACTION__IS_SYNCHRONOUS : + setIsSynchronous(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CALL_ACTION__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CALL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CALL_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CALL_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CALL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CALL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CALL_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CALL_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CALL_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CALL_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CALL_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CALL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CALL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CALL_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CALL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CALL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CALL_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.CALL_ACTION__ON_PORT : + setOnPort((Port) null); + return; + case UMLPackage.CALL_ACTION__IS_SYNCHRONOUS : + setIsSynchronous(IS_SYNCHRONOUS_EDEFAULT); + return; + case UMLPackage.CALL_ACTION__RESULT : + getResults().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CALL_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CALL_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CALL_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CALL_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CALL_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CALL_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CALL_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CALL_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CALL_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CALL_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CALL_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CALL_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CALL_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CALL_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CALL_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CALL_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CALL_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CALL_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CALL_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CALL_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CALL_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CALL_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CALL_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CALL_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CALL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CALL_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CALL_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CALL_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CALL_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CALL_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CALL_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CALL_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CALL_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CALL_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CALL_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CALL_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CALL_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CALL_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CALL_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CALL_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CALL_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CALL_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.CALL_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.CALL_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.CALL_ACTION__ON_PORT) != null; + case UMLPackage.CALL_ACTION__IS_SYNCHRONOUS : + return ((eFlags & IS_SYNCHRONOUS_EFLAG) != 0) != IS_SYNCHRONOUS_EDEFAULT; + case UMLPackage.CALL_ACTION__RESULT : + List result = (List) eVirtualGet(UMLPackage.CALL_ACTION__RESULT); + return result != null && !result.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isSynchronous: "); //$NON-NLS-1$ + result.append((eFlags & IS_SYNCHRONOUS_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getCallAction_Result()); + } + +} //CallActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java new file mode 100644 index 00000000..cf06cb23 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java @@ -0,0 +1,550 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallBehaviorActionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.CallBehaviorAction; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CallBehaviorActionOperations; + +/** + * + * An implementation of the model object 'Call Behavior Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl#getBehavior Behavior}
  • + *
+ *

+ * + * @generated + */ +public class CallBehaviorActionImpl + extends CallActionImpl + implements CallBehaviorAction { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * + * + * @generated + */ + protected CallBehaviorActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCallBehaviorAction(); + } + + /** + * + * + * @generated + */ + public Behavior getBehavior() { + Behavior behavior = (Behavior) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR); + if (behavior != null && behavior.eIsProxy()) { + Behavior oldBehavior = behavior; + behavior = (Behavior) eResolveProxy((InternalEObject) behavior); + if (behavior != oldBehavior) { + eVirtualSet(UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR, behavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR, oldBehavior, + behavior)); + } + } + return behavior; + } + + /** + * + * + * @generated + */ + public Behavior basicGetBehavior() { + return (Behavior) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR); + } + + /** + * + * + * @generated + */ + public void setBehavior(Behavior newBehavior) { + Behavior behavior = newBehavior; + Object oldBehavior = eVirtualSet( + UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR, behavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR, + oldBehavior == EVIRTUAL_NO_VALUE + ? null + : oldBehavior, behavior)); + + } + + /** + * + * + * @generated + */ + public boolean validateArgumentPinEqualParameter( + DiagnosticChain diagnostics, Map context) { + return CallBehaviorActionOperations.validateArgumentPinEqualParameter( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateResultPinEqualParameter(DiagnosticChain diagnostics, + Map context) { + return CallBehaviorActionOperations.validateResultPinEqualParameter( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOrderingMultiplicity( + DiagnosticChain diagnostics, Map context) { + return CallBehaviorActionOperations.validateTypeOrderingMultiplicity( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_BEHAVIOR_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME : + return getName(); + case UMLPackage.CALL_BEHAVIOR_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CALL_BEHAVIOR_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CALL_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CALL_BEHAVIOR_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CALL_BEHAVIOR_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CALL_BEHAVIOR_ACTION__INPUT : + return getInputs(); + case UMLPackage.CALL_BEHAVIOR_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CALL_BEHAVIOR_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.CALL_BEHAVIOR_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_SYNCHRONOUS : + return isSynchronous() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CALL_BEHAVIOR_ACTION__RESULT : + return getResults(); + case UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR : + if (resolve) + return getBehavior(); + return basicGetBehavior(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_BEHAVIOR_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_SYNCHRONOUS : + setIsSynchronous(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR : + setBehavior((Behavior) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_BEHAVIOR_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__ON_PORT : + setOnPort((Port) null); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_SYNCHRONOUS : + setIsSynchronous(IS_SYNCHRONOUS_EDEFAULT); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__RESULT : + getResults().clear(); + return; + case UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR : + setBehavior((Behavior) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_BEHAVIOR_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CALL_BEHAVIOR_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CALL_BEHAVIOR_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CALL_BEHAVIOR_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CALL_BEHAVIOR_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CALL_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CALL_BEHAVIOR_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CALL_BEHAVIOR_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CALL_BEHAVIOR_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CALL_BEHAVIOR_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__ON_PORT) != null; + case UMLPackage.CALL_BEHAVIOR_ACTION__IS_SYNCHRONOUS : + return ((eFlags & IS_SYNCHRONOUS_EFLAG) != 0) != IS_SYNCHRONOUS_EDEFAULT; + case UMLPackage.CALL_BEHAVIOR_ACTION__RESULT : + List result = (List) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__RESULT); + return result != null && !result.isEmpty(); + case UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR : + return eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + +} //CallBehaviorActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallEventImpl.java new file mode 100644 index 00000000..6899bd4b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallEventImpl.java @@ -0,0 +1,287 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallEventImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.CallEvent; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Call Event'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallEventImpl#getOperation Operation}
  • + *
+ *

+ * + * @generated + */ +public class CallEventImpl + extends MessageEventImpl + implements CallEvent { + + /** + * + * + * @generated + */ + protected CallEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCallEvent(); + } + + /** + * + * + * @generated + */ + public Operation getOperation() { + Operation operation = (Operation) eVirtualGet(UMLPackage.CALL_EVENT__OPERATION); + if (operation != null && operation.eIsProxy()) { + Operation oldOperation = operation; + operation = (Operation) eResolveProxy((InternalEObject) operation); + if (operation != oldOperation) { + eVirtualSet(UMLPackage.CALL_EVENT__OPERATION, operation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CALL_EVENT__OPERATION, oldOperation, + operation)); + } + } + return operation; + } + + /** + * + * + * @generated + */ + public Operation basicGetOperation() { + return (Operation) eVirtualGet(UMLPackage.CALL_EVENT__OPERATION); + } + + /** + * + * + * @generated + */ + public void setOperation(Operation newOperation) { + Operation operation = newOperation; + Object oldOperation = eVirtualSet(UMLPackage.CALL_EVENT__OPERATION, + operation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CALL_EVENT__OPERATION, + oldOperation == EVIRTUAL_NO_VALUE + ? null + : oldOperation, operation)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_EVENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CALL_EVENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CALL_EVENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CALL_EVENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CALL_EVENT__NAME : + return getName(); + case UMLPackage.CALL_EVENT__VISIBILITY : + return getVisibility(); + case UMLPackage.CALL_EVENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CALL_EVENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CALL_EVENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CALL_EVENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CALL_EVENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.CALL_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.CALL_EVENT__OPERATION : + if (resolve) + return getOperation(); + return basicGetOperation(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CALL_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_EVENT__NAME : + setName((String) newValue); + return; + case UMLPackage.CALL_EVENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CALL_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CALL_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CALL_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CALL_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CALL_EVENT__OPERATION : + setOperation((Operation) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CALL_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CALL_EVENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CALL_EVENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CALL_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CALL_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CALL_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CALL_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CALL_EVENT__OPERATION : + setOperation((Operation) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_EVENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CALL_EVENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CALL_EVENT__OWNER : + return isSetOwner(); + case UMLPackage.CALL_EVENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CALL_EVENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CALL_EVENT__NAME : + String name = eVirtualIsSet(UMLPackage.CALL_EVENT__NAME) + ? (String) eVirtualGet(UMLPackage.CALL_EVENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CALL_EVENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.CALL_EVENT__VISIBILITY) + && eVirtualGet(UMLPackage.CALL_EVENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CALL_EVENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CALL_EVENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CALL_EVENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CALL_EVENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CALL_EVENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CALL_EVENT__NAME_EXPRESSION) != null; + case UMLPackage.CALL_EVENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.CALL_EVENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.CALL_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.CALL_EVENT__OPERATION : + return eVirtualGet(UMLPackage.CALL_EVENT__OPERATION) != null; + } + return eDynamicIsSet(eFeature); + } + +} //CallEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java new file mode 100644 index 00000000..f160642d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java @@ -0,0 +1,756 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallOperationActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.CallOperationAction; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CallOperationActionOperations; + +/** + * + * An implementation of the model object 'Call Operation Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl#getOperation Operation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl#getTarget Target}
  • + *
+ *

+ * + * @generated + */ +public class CallOperationActionImpl + extends CallActionImpl + implements CallOperationAction { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * + * + * @generated + */ + protected CallOperationActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCallOperationAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.CALL_OPERATION_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.CALL_OPERATION_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getInvocationAction_Argument(), + UMLPackage.eINSTANCE.getCallOperationAction_Target()})); + } + return input; + } + + /** + * + * + * @generated + */ + public Operation getOperation() { + Operation operation = (Operation) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__OPERATION); + if (operation != null && operation.eIsProxy()) { + Operation oldOperation = operation; + operation = (Operation) eResolveProxy((InternalEObject) operation); + if (operation != oldOperation) { + eVirtualSet(UMLPackage.CALL_OPERATION_ACTION__OPERATION, + operation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CALL_OPERATION_ACTION__OPERATION, + oldOperation, operation)); + } + } + return operation; + } + + /** + * + * + * @generated + */ + public Operation basicGetOperation() { + return (Operation) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__OPERATION); + } + + /** + * + * + * @generated + */ + public void setOperation(Operation newOperation) { + Operation operation = newOperation; + Object oldOperation = eVirtualSet( + UMLPackage.CALL_OPERATION_ACTION__OPERATION, operation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CALL_OPERATION_ACTION__OPERATION, + oldOperation == EVIRTUAL_NO_VALUE + ? null + : oldOperation, operation)); + + } + + /** + * + * + * @generated + */ + public InputPin getTarget() { + InputPin target = (InputPin) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__TARGET); + return target; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(InputPin newTarget, + NotificationChain msgs) { + Object oldTarget = eVirtualSet( + UMLPackage.CALL_OPERATION_ACTION__TARGET, newTarget); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CALL_OPERATION_ACTION__TARGET, + oldTarget == EVIRTUAL_NO_VALUE + ? null + : oldTarget, newTarget); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTarget(InputPin newTarget) { + InputPin target = (InputPin) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__TARGET); + if (newTarget != target) { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CALL_OPERATION_ACTION__TARGET, null, msgs); + if (newTarget != null) + msgs = ((InternalEObject) newTarget).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CALL_OPERATION_ACTION__TARGET, null, msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CALL_OPERATION_ACTION__TARGET, newTarget, newTarget)); + + } + + /** + * + * + * @generated + */ + public InputPin createTarget(EClass eClass) { + InputPin newTarget = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public InputPin createTarget() { + InputPin newTarget = UMLFactory.eINSTANCE.createInputPin(); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public boolean validateArgumentPinEqualParameter( + DiagnosticChain diagnostics, Map context) { + return CallOperationActionOperations.validateArgumentPinEqualParameter( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateResultPinEqualParameter(DiagnosticChain diagnostics, + Map context) { + return CallOperationActionOperations.validateResultPinEqualParameter( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeTargetPin(DiagnosticChain diagnostics, + Map context) { + return CallOperationActionOperations.validateTypeTargetPin(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOrderingMultiplicity( + DiagnosticChain diagnostics, Map context) { + return CallOperationActionOperations.validateTypeOrderingMultiplicity( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CALL_OPERATION_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CALL_OPERATION_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CALL_OPERATION_ACTION__ACTIVITY, msgs); + case UMLPackage.CALL_OPERATION_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CALL_OPERATION_ACTION__RESULT : + return ((InternalEList) getResults()).basicRemove(otherEnd, + msgs); + case UMLPackage.CALL_OPERATION_ACTION__TARGET : + return basicSetTarget(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_OPERATION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CALL_OPERATION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CALL_OPERATION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CALL_OPERATION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CALL_OPERATION_ACTION__NAME : + return getName(); + case UMLPackage.CALL_OPERATION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CALL_OPERATION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CALL_OPERATION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CALL_OPERATION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CALL_OPERATION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CALL_OPERATION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CALL_OPERATION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CALL_OPERATION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CALL_OPERATION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CALL_OPERATION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CALL_OPERATION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CALL_OPERATION_ACTION__INPUT : + return getInputs(); + case UMLPackage.CALL_OPERATION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CALL_OPERATION_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.CALL_OPERATION_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + case UMLPackage.CALL_OPERATION_ACTION__IS_SYNCHRONOUS : + return isSynchronous() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CALL_OPERATION_ACTION__RESULT : + return getResults(); + case UMLPackage.CALL_OPERATION_ACTION__OPERATION : + if (resolve) + return getOperation(); + return basicGetOperation(); + case UMLPackage.CALL_OPERATION_ACTION__TARGET : + return getTarget(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_OPERATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CALL_OPERATION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__IS_SYNCHRONOUS : + setIsSynchronous(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CALL_OPERATION_ACTION__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__OPERATION : + setOperation((Operation) newValue); + return; + case UMLPackage.CALL_OPERATION_ACTION__TARGET : + setTarget((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_OPERATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CALL_OPERATION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CALL_OPERATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CALL_OPERATION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CALL_OPERATION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CALL_OPERATION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__ON_PORT : + setOnPort((Port) null); + return; + case UMLPackage.CALL_OPERATION_ACTION__IS_SYNCHRONOUS : + setIsSynchronous(IS_SYNCHRONOUS_EDEFAULT); + return; + case UMLPackage.CALL_OPERATION_ACTION__RESULT : + getResults().clear(); + return; + case UMLPackage.CALL_OPERATION_ACTION__OPERATION : + setOperation((Operation) null); + return; + case UMLPackage.CALL_OPERATION_ACTION__TARGET : + setTarget((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CALL_OPERATION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CALL_OPERATION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CALL_OPERATION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CALL_OPERATION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CALL_OPERATION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CALL_OPERATION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CALL_OPERATION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CALL_OPERATION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CALL_OPERATION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CALL_OPERATION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CALL_OPERATION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CALL_OPERATION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CALL_OPERATION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CALL_OPERATION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CALL_OPERATION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__ON_PORT) != null; + case UMLPackage.CALL_OPERATION_ACTION__IS_SYNCHRONOUS : + return ((eFlags & IS_SYNCHRONOUS_EFLAG) != 0) != IS_SYNCHRONOUS_EDEFAULT; + case UMLPackage.CALL_OPERATION_ACTION__RESULT : + List result = (List) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__RESULT); + return result != null && !result.isEmpty(); + case UMLPackage.CALL_OPERATION_ACTION__OPERATION : + return eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__OPERATION) != null; + case UMLPackage.CALL_OPERATION_ACTION__TARGET : + return eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__TARGET) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getCallOperationAction_Target()); + } + +} //CallOperationActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CentralBufferNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CentralBufferNodeImpl.java new file mode 100644 index 00000000..3981464d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CentralBufferNodeImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CentralBufferNodeImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.CentralBufferNode; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Central Buffer Node'. + * + *

+ *

+ * + * @generated + */ +public class CentralBufferNodeImpl + extends ObjectNodeImpl + implements CentralBufferNode { + + /** + * + * + * @generated + */ + protected CentralBufferNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCentralBufferNode(); + } + +} //CentralBufferNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ChangeEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ChangeEventImpl.java new file mode 100644 index 00000000..49a036b5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ChangeEventImpl.java @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ChangeEventImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.ChangeEvent; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Change Event'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl#getChangeExpression Change Expression}
  • + *
+ *

+ * + * @generated + */ +public class ChangeEventImpl + extends EventImpl + implements ChangeEvent { + + /** + * + * + * @generated + */ + protected ChangeEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getChangeEvent(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.CHANGE_EVENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet( + UMLPackage.CHANGE_EVENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.CHANGE_EVENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getChangeEvent_ChangeExpression()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public ValueSpecification getChangeExpression() { + ValueSpecification changeExpression = (ValueSpecification) eVirtualGet(UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION); + return changeExpression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetChangeExpression( + ValueSpecification newChangeExpression, NotificationChain msgs) { + Object oldChangeExpression = eVirtualSet( + UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION, newChangeExpression); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION, + oldChangeExpression == EVIRTUAL_NO_VALUE + ? null + : oldChangeExpression, newChangeExpression); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setChangeExpression(ValueSpecification newChangeExpression) { + ValueSpecification changeExpression = (ValueSpecification) eVirtualGet(UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION); + if (newChangeExpression != changeExpression) { + NotificationChain msgs = null; + if (changeExpression != null) + msgs = ((InternalEObject) changeExpression).eInverseRemove( + this, EOPPOSITE_FEATURE_BASE + - UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION, null, + msgs); + if (newChangeExpression != null) + msgs = ((InternalEObject) newChangeExpression).eInverseAdd( + this, EOPPOSITE_FEATURE_BASE + - UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION, null, + msgs); + msgs = basicSetChangeExpression(newChangeExpression, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION, + newChangeExpression, newChangeExpression)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createChangeExpression(EClass eClass) { + ValueSpecification newChangeExpression = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setChangeExpression(newChangeExpression); + return newChangeExpression; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CHANGE_EVENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CHANGE_EVENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CHANGE_EVENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CHANGE_EVENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CHANGE_EVENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION : + return basicSetChangeExpression(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CHANGE_EVENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CHANGE_EVENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CHANGE_EVENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CHANGE_EVENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CHANGE_EVENT__NAME : + return getName(); + case UMLPackage.CHANGE_EVENT__VISIBILITY : + return getVisibility(); + case UMLPackage.CHANGE_EVENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CHANGE_EVENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CHANGE_EVENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CHANGE_EVENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CHANGE_EVENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION : + return getChangeExpression(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CHANGE_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CHANGE_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CHANGE_EVENT__NAME : + setName((String) newValue); + return; + case UMLPackage.CHANGE_EVENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CHANGE_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CHANGE_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CHANGE_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION : + setChangeExpression((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CHANGE_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CHANGE_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CHANGE_EVENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CHANGE_EVENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CHANGE_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CHANGE_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CHANGE_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION : + setChangeExpression((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CHANGE_EVENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CHANGE_EVENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CHANGE_EVENT__OWNER : + return isSetOwner(); + case UMLPackage.CHANGE_EVENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CHANGE_EVENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CHANGE_EVENT__NAME : + String name = eVirtualIsSet(UMLPackage.CHANGE_EVENT__NAME) + ? (String) eVirtualGet(UMLPackage.CHANGE_EVENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CHANGE_EVENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.CHANGE_EVENT__VISIBILITY) + && eVirtualGet(UMLPackage.CHANGE_EVENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CHANGE_EVENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CHANGE_EVENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CHANGE_EVENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CHANGE_EVENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CHANGE_EVENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CHANGE_EVENT__NAME_EXPRESSION) != null; + case UMLPackage.CHANGE_EVENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.CHANGE_EVENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.CHANGE_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION : + return eVirtualGet(UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getChangeEvent_ChangeExpression()); + } + +} //ChangeEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java new file mode 100644 index 00000000..30fb292f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java @@ -0,0 +1,1637 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.BehavioredClassifierOperations; +import org.eclipse.uml2.uml.internal.operations.ClassOperations; + +/** + * + * An implementation of the model object 'Class'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedBehaviors Owned Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getClassifierBehavior Classifier Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getInterfaceRealizations Interface Realization}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedTriggers Owned Trigger}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedOperations Owned Operation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getNestedClassifiers Nested Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getSuperClasses Super Class}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#isActive Is Active}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedReceptions Owned Reception}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getExtensions Extension}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassImpl#isAbstract Is Abstract}
  • + *
+ *

+ * + * @generated + */ +public class ClassImpl + extends EncapsulatedClassifierImpl + implements org.eclipse.uml2.uml.Class { + + /** + * The default value of the '{@link #isActive() Is Active}' attribute. + * + * + * @see #isActive() + * @generated + * @ordered + */ + protected static final boolean IS_ACTIVE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isActive() Is Active}' attribute. + * + * + * @see #isActive() + * @generated + * @ordered + */ + protected static final int IS_ACTIVE_EFLAG = 1 << 10; + + /** + * + * + * @generated + */ + protected ClassImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClass_(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.CLASS__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.CLASS__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.CLASS__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.CLASS__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedBehaviors() { + List ownedBehavior = (List) eVirtualGet(UMLPackage.CLASS__OWNED_BEHAVIOR); + if (ownedBehavior == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_BEHAVIOR, + ownedBehavior = new SupersetEObjectContainmentEList( + Behavior.class, this, UMLPackage.CLASS__OWNED_BEHAVIOR, + new int[]{UMLPackage.CLASS__CLASSIFIER_BEHAVIOR})); + } + return ownedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior createOwnedBehavior(EClass eClass) { + Behavior newOwnedBehavior = (Behavior) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedBehaviors().add(newOwnedBehavior); + return newOwnedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior createOwnedBehavior() { + Behavior newOwnedBehavior = UMLFactory.eINSTANCE.createBehavior(); + getOwnedBehaviors().add(newOwnedBehavior); + return newOwnedBehavior; + } + + /** + * + * + * @generated + */ + public Behavior getOwnedBehavior(String name) { + for (Iterator i = getOwnedBehaviors().iterator(); i.hasNext();) { + Behavior ownedBehavior = (Behavior) i.next(); + if (name.equals(ownedBehavior.getName())) { + return ownedBehavior; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.CLASS__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.CLASS__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, + UMLPackage.CLASS__CLIENT_DEPENDENCY, new int[]{ + UMLPackage.CLASS__SUBSTITUTION, + UMLPackage.CLASS__INTERFACE_REALIZATION}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public Behavior getClassifierBehavior() { + Behavior classifierBehavior = (Behavior) eVirtualGet(UMLPackage.CLASS__CLASSIFIER_BEHAVIOR); + return classifierBehavior; + } + + /** + * + * + * @generated + */ + public void setClassifierBehavior(Behavior newClassifierBehavior) { + if (newClassifierBehavior != null + && !getOwnedBehaviors().contains(newClassifierBehavior)) { + getOwnedBehaviors().add(newClassifierBehavior); + } + Behavior classifierBehavior = newClassifierBehavior; + Object oldClassifierBehavior = eVirtualSet( + UMLPackage.CLASS__CLASSIFIER_BEHAVIOR, classifierBehavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASS__CLASSIFIER_BEHAVIOR, + oldClassifierBehavior == EVIRTUAL_NO_VALUE + ? null + : oldClassifierBehavior, classifierBehavior)); + + } + + /** + * + * + * @generated + */ + public List getInterfaceRealizations() { + List interfaceRealization = (List) eVirtualGet(UMLPackage.CLASS__INTERFACE_REALIZATION); + if (interfaceRealization == null) { + eVirtualSet( + UMLPackage.CLASS__INTERFACE_REALIZATION, + interfaceRealization = new SubsetEObjectContainmentWithInverseEList( + InterfaceRealization.class, this, + UMLPackage.CLASS__INTERFACE_REALIZATION, + new int[]{UMLPackage.CLASS__CLIENT_DEPENDENCY}, + UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER)); + } + return interfaceRealization; + } + + /** + * + * + * @generated + */ + public InterfaceRealization createInterfaceRealization() { + InterfaceRealization newInterfaceRealization = UMLFactory.eINSTANCE + .createInterfaceRealization(); + getInterfaceRealizations().add(newInterfaceRealization); + return newInterfaceRealization; + } + + /** + * + * + * @generated + */ + public InterfaceRealization getInterfaceRealization(String name) { + for (Iterator i = getInterfaceRealizations().iterator(); i.hasNext();) { + InterfaceRealization interfaceRealization = (InterfaceRealization) i + .next(); + if (name.equals(interfaceRealization.getName())) { + return interfaceRealization; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedTriggers() { + List ownedTrigger = (List) eVirtualGet(UMLPackage.CLASS__OWNED_TRIGGER); + if (ownedTrigger == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_TRIGGER, + ownedTrigger = new EObjectContainmentEList(Trigger.class, this, + UMLPackage.CLASS__OWNED_TRIGGER)); + } + return ownedTrigger; + } + + /** + * + * + * @generated + */ + public Trigger createOwnedTrigger() { + Trigger newOwnedTrigger = UMLFactory.eINSTANCE.createTrigger(); + getOwnedTriggers().add(newOwnedTrigger); + return newOwnedTrigger; + } + + /** + * + * + * @generated + */ + public Trigger getOwnedTrigger(String name) { + for (Iterator i = getOwnedTriggers().iterator(); i.hasNext();) { + Trigger ownedTrigger = (Trigger) i.next(); + if (name.equals(ownedTrigger.getName())) { + return ownedTrigger; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.CLASS__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.CLASS__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.CLASS__FEATURE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_OwnedReception()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.CLASS__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.CLASS__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.CLASS__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getOwnedOperations() { + List ownedOperation = (List) eVirtualGet(UMLPackage.CLASS__OWNED_OPERATION); + if (ownedOperation == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_OPERATION, + ownedOperation = new EObjectContainmentWithInverseEList( + Operation.class, this, UMLPackage.CLASS__OWNED_OPERATION, + UMLPackage.OPERATION__CLASS_)); + } + return ownedOperation; + } + + /** + * + * + * @generated + */ + public Operation createOwnedOperation() { + Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation(); + getOwnedOperations().add(newOwnedOperation); + return newOwnedOperation; + } + + /** + * + * + * @generated + */ + public Operation getOwnedOperation(String name) { + for (Iterator i = getOwnedOperations().iterator(); i.hasNext();) { + Operation ownedOperation = (Operation) i.next(); + if (name.equals(ownedOperation.getName())) { + return ownedOperation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNestedClassifiers() { + List nestedClassifier = (List) eVirtualGet(UMLPackage.CLASS__NESTED_CLASSIFIER); + if (nestedClassifier == null) { + eVirtualSet( + UMLPackage.CLASS__NESTED_CLASSIFIER, + nestedClassifier = new EObjectContainmentEList( + Classifier.class, this, UMLPackage.CLASS__NESTED_CLASSIFIER)); + } + return nestedClassifier; + } + + /** + * + * + * @generated + */ + public Classifier createNestedClassifier(EClass eClass) { + Classifier newNestedClassifier = (Classifier) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getNestedClassifiers().add(newNestedClassifier); + return newNestedClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getNestedClassifier(String name) { + for (Iterator i = getNestedClassifiers().iterator(); i.hasNext();) { + Classifier nestedClassifier = (Classifier) i.next(); + if (name.equals(nestedClassifier.getName())) { + return nestedClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getSuperClasses() { + // TODO: implement this method to return the 'Super Class' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class getSuperClass(String name) { + for (Iterator i = getSuperClasses().iterator(); i.hasNext();) { + org.eclipse.uml2.uml.Class superClass = (org.eclipse.uml2.uml.Class) i + .next(); + if (name.equals(superClass.getName())) { + return superClass; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetSuperClasses() { + return !getSuperClasses().isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean isActive() { + return (eFlags & IS_ACTIVE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsActive(boolean newIsActive) { + boolean oldIsActive = (eFlags & IS_ACTIVE_EFLAG) != 0; + if (newIsActive) + eFlags |= IS_ACTIVE_EFLAG; + else + eFlags &= ~IS_ACTIVE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASS__IS_ACTIVE, oldIsActive, newIsActive)); + + } + + /** + * + * + * @generated + */ + public List getOwnedReceptions() { + List ownedReception = (List) eVirtualGet(UMLPackage.CLASS__OWNED_RECEPTION); + if (ownedReception == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_RECEPTION, + ownedReception = new EObjectContainmentEList(Reception.class, + this, UMLPackage.CLASS__OWNED_RECEPTION)); + } + return ownedReception; + } + + /** + * + * + * @generated + */ + public Reception createOwnedReception() { + Reception newOwnedReception = UMLFactory.eINSTANCE.createReception(); + getOwnedReceptions().add(newOwnedReception); + return newOwnedReception; + } + + /** + * + * + * @generated + */ + public Reception getOwnedReception(String name) { + for (Iterator i = getOwnedReceptions().iterator(); i.hasNext();) { + Reception ownedReception = (Reception) i.next(); + if (name.equals(ownedReception.getName())) { + return ownedReception; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getExtensions() { + // TODO: implement this method to return the 'Extension' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Extension getExtension(String name) { + for (Iterator i = getExtensions().iterator(); i.hasNext();) { + Extension extension = (Extension) i.next(); + if (name.equals(extension.getName())) { + return extension; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.CLASS__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.CLASS__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentWithInverseEList( + Property.class, this, UMLPackage.CLASS__OWNED_ATTRIBUTE, + UMLPackage.PROPERTY__CLASS_)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.CLASS__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean isAbstract() { + return (eFlags & IS_ABSTRACT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsAbstract(boolean newIsAbstract) { + boolean oldIsAbstract = (eFlags & IS_ABSTRACT_EFLAG) != 0; + if (newIsAbstract) + eFlags |= IS_ABSTRACT_EFLAG; + else + eFlags &= ~IS_ABSTRACT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASS__IS_ABSTRACT, oldIsAbstract, newIsAbstract)); + + } + + /** + * + * + * @generated + */ + public boolean isSetIsAbstract() { + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + } + + /** + * + * + * @generated + */ + public boolean validateClassBehavior(DiagnosticChain diagnostics, + Map context) { + return BehavioredClassifierOperations.validateClassBehavior(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validatePassiveClass(DiagnosticChain diagnostics, Map context) { + return ClassOperations.validatePassiveClass(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public List inherit(List inhs) { + return ClassOperations.inherit(this, inhs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLASS__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.CLASS__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CLASS__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.CLASS__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.CLASS__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.CLASS__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.CLASS__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.CLASS__OWNED_SIGNATURE, null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.CLASS__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.CLASS__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLASS__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLASS__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CLASS__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.CLASS__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.CLASS__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLASS__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.CLASS__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLASS__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASS__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLASS__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASS__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CLASS__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CLASS__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CLASS__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CLASS__NAME : + return getName(); + case UMLPackage.CLASS__VISIBILITY : + return getVisibility(); + case UMLPackage.CLASS__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CLASS__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CLASS__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CLASS__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CLASS__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.CLASS__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.CLASS__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.CLASS__MEMBER : + return getMembers(); + case UMLPackage.CLASS__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.CLASS__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.CLASS__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLASS__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CLASS__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CLASS__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.CLASS__PACKAGE : + return getPackage(); + case UMLPackage.CLASS__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.CLASS__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLASS__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.CLASS__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.CLASS__FEATURE : + return getFeatures(); + case UMLPackage.CLASS__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.CLASS__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.CLASS__GENERAL : + return getGenerals(); + case UMLPackage.CLASS__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.CLASS__USE_CASE : + return getUseCases(); + case UMLPackage.CLASS__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.CLASS__ATTRIBUTE : + return getAttributes(); + case UMLPackage.CLASS__REPRESENTATION : + return getRepresentation(); + case UMLPackage.CLASS__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.CLASS__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.CLASS__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.CLASS__PART : + return getParts(); + case UMLPackage.CLASS__ROLE : + return getRoles(); + case UMLPackage.CLASS__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.CLASS__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.CLASS__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.CLASS__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.CLASS__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.CLASS__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.CLASS__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.CLASS__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.CLASS__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.CLASS__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLASS__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.CLASS__EXTENSION : + return getExtensions(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASS__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__NAME : + setName((String) newValue); + return; + case UMLPackage.CLASS__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CLASS__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CLASS__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLASS__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CLASS__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.CLASS__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.CLASS__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLASS__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.CLASS__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.CLASS__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.CLASS__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.CLASS__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLASS__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASS__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CLASS__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CLASS__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CLASS__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CLASS__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CLASS__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CLASS__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.CLASS__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.CLASS__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.CLASS__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CLASS__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CLASS__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.CLASS__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.CLASS__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.CLASS__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.CLASS__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.CLASS__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.CLASS__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.CLASS__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.CLASS__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.CLASS__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.CLASS__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.CLASS__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.CLASS__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.CLASS__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.CLASS__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.CLASS__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.CLASS__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.CLASS__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.CLASS__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.CLASS__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.CLASS__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.CLASS__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.CLASS__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.CLASS__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.CLASS__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.CLASS__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASS__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CLASS__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CLASS__OWNER : + return isSetOwner(); + case UMLPackage.CLASS__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CLASS__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CLASS__NAME : + String name = eVirtualIsSet(UMLPackage.CLASS__NAME) + ? (String) eVirtualGet(UMLPackage.CLASS__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CLASS__VISIBILITY : + return eVirtualIsSet(UMLPackage.CLASS__VISIBILITY) + && eVirtualGet(UMLPackage.CLASS__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CLASS__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CLASS__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CLASS__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CLASS__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CLASS__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CLASS__NAME_EXPRESSION) != null; + case UMLPackage.CLASS__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.CLASS__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.CLASS__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.CLASS__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.CLASS__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.CLASS__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.CLASS__MEMBER : + return isSetMembers(); + case UMLPackage.CLASS__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.CLASS__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.CLASS__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CLASS__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CLASS__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CLASS__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.CLASS__TEMPLATE_PARAMETER) != null; + case UMLPackage.CLASS__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.CLASS__PACKAGE : + return getPackage() != null; + case UMLPackage.CLASS__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.CLASS__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.CLASS__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.CLASS__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.CLASS__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.CLASS__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.CLASS__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.CLASS__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.CLASS__FEATURE : + return isSetFeatures(); + case UMLPackage.CLASS__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.CLASS__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.CLASS__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.CLASS__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.CLASS__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.CLASS__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.CLASS__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.CLASS__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.CLASS__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.CLASS__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.CLASS__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.CLASS__REPRESENTATION : + return eVirtualGet(UMLPackage.CLASS__REPRESENTATION) != null; + case UMLPackage.CLASS__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.CLASS__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.CLASS__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.CLASS__OWNED_SIGNATURE) != null; + case UMLPackage.CLASS__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.CLASS__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.CLASS__PART : + return !getParts().isEmpty(); + case UMLPackage.CLASS__ROLE : + return isSetRoles(); + case UMLPackage.CLASS__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.CLASS__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.CLASS__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.CLASS__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.CLASS__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.CLASS__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.CLASS__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.CLASS__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.CLASS__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.CLASS__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.CLASS__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.CLASS__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.CLASS__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.CLASS__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.CLASS__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.CLASS__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.CLASS__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.CLASS__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.CLASS__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.CLASS__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.CLASS__EXTENSION : + return !getExtensions().isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == BehavioredClassifier.class) { + switch (derivedFeatureID) { + case UMLPackage.CLASS__OWNED_BEHAVIOR : + return UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR; + case UMLPackage.CLASS__CLASSIFIER_BEHAVIOR : + return UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR; + case UMLPackage.CLASS__INTERFACE_REALIZATION : + return UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION; + case UMLPackage.CLASS__OWNED_TRIGGER : + return UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == BehavioredClassifier.class) { + switch (baseFeatureID) { + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_BEHAVIOR : + return UMLPackage.CLASS__OWNED_BEHAVIOR; + case UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR : + return UMLPackage.CLASS__CLASSIFIER_BEHAVIOR; + case UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION : + return UMLPackage.CLASS__INTERFACE_REALIZATION; + case UMLPackage.BEHAVIORED_CLASSIFIER__OWNED_TRIGGER : + return UMLPackage.CLASS__OWNED_TRIGGER; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isActive: "); //$NON-NLS-1$ + result.append((eFlags & IS_ACTIVE_EFLAG) != 0); + result.append(", isAbstract: "); //$NON-NLS-1$ + result.append((eFlags & IS_ABSTRACT_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || isSetOwnedAttributes() + || eIsSet(UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior()) + || eIsSet(UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger()) + || eIsSet(UMLPackage.eINSTANCE.getClass_OwnedOperation()) + || eIsSet(UMLPackage.eINSTANCE.getClass_NestedClassifier()) + || eIsSet(UMLPackage.eINSTANCE.getClass_OwnedReception()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getClass_OwnedOperation()) + || eIsSet(UMLPackage.eINSTANCE.getClass_OwnedReception()); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() || isSetOwnedAttributes(); + } + + /** + * + * + * @generated + */ + public List getGenerals() { + return getSuperClasses(); + } + + /** + * + * + * @generated + */ + public boolean isSetGenerals() { + return false; + } + +} //ClassImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java new file mode 100644 index 00000000..9bb845ec --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java @@ -0,0 +1,2332 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassifierImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ClassifierTemplateParameter; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Substitution; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ClassifierOperations; +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; +import org.eclipse.uml2.uml.internal.operations.RedefinableElementOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * + * An implementation of the model object 'Classifier'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#isLeaf Is Leaf}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getPackage Package}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedTemplateSignature Owned Template Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getCollaborationUses Collaboration Use}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#isAbstract Is Abstract}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getGeneralizations Generalization}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getPowertypeExtents Powertype Extent}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getInheritedMembers Inherited Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRedefinedClassifiers Redefined Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getGenerals General}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedUseCases Owned Use Case}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getUseCases Use Case}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getSubstitutions Substitution}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRepresentation Representation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedSignature Owned Signature}
  • + *
+ *

+ * + * @generated + */ +public abstract class ClassifierImpl + extends NamespaceImpl + implements Classifier { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final boolean IS_LEAF_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final int IS_LEAF_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isAbstract() Is Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final boolean IS_ABSTRACT_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isAbstract() Is Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final int IS_ABSTRACT_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected ClassifierImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClassifier(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.CLASSIFIER__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.CLASSIFIER__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.CLASSIFIER__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getClassifier_RedefinedClassifier()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public RedefinableElement getRedefinedElement(String name) { + for (Iterator i = getRedefinedElements().iterator(); i.hasNext();) { + RedefinableElement redefinedElement = (RedefinableElement) i.next(); + if (name.equals(redefinedElement.getName())) { + return redefinedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet(UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT, + new EStructuralFeature[]{})); + } + return redefinitionContext; + } + + /** + * + * + * @generated + */ + public Classifier getRedefinitionContext(String name) { + for (Iterator i = getRedefinitionContexts().iterator(); i.hasNext();) { + Classifier redefinitionContext = (Classifier) i.next(); + if (name.equals(redefinitionContext.getName())) { + return redefinitionContext; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isLeaf() { + return (eFlags & IS_LEAF_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsLeaf(boolean newIsLeaf) { + boolean oldIsLeaf = (eFlags & IS_LEAF_EFLAG) != 0; + if (newIsLeaf) + eFlags |= IS_LEAF_EFLAG; + else + eFlags &= ~IS_LEAF_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__IS_LEAF, oldIsLeaf, newIsLeaf)); + + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + ClassifierTemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter) + .eInverseAdd( + this, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + ClassifierTemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, + newTemplateParameter, newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public boolean isSetTemplateParameter() { + return eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER) != null; + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.CLASSIFIER__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet(UMLPackage.CLASSIFIER__VISIBILITY, + visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public boolean isSetVisibility() { + return eVirtualIsSet(UMLPackage.CLASSIFIER__VISIBILITY) + && eVirtualGet(UMLPackage.CLASSIFIER__VISIBILITY) != VISIBILITY_EDEFAULT; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getPackage() { + // TODO: implement this method to return the 'Package' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setPackage(org.eclipse.uml2.uml.Package newPackage) { + // TODO: implement this method to set the 'Package' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.CLASSIFIER__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.CLASSIFIER__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.CLASSIFIER__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.CLASSIFIER__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * + * + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.CLASSIFIER__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.CLASSIFIER__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.CLASSIFIER__FEATURE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getClassifier_Attribute()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public Feature getFeature(String name) { + for (Iterator i = getFeatures().iterator(); i.hasNext();) { + Feature feature = (Feature) i.next(); + if (name.equals(feature.getName())) { + return feature; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.CLASSIFIER__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.CLASSIFIER__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.CLASSIFIER__MEMBER, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getClassifier_Feature(), + UMLPackage.eINSTANCE.getClassifier_InheritedMember()})); + } + return member; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.CLASSIFIER__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.CLASSIFIER__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.CLASSIFIER__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.CLASSIFIER__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.CLASSIFIER__ATTRIBUTE, + new EStructuralFeature[]{})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public Property getAttribute(String name) { + for (Iterator i = getAttributes().iterator(); i.hasNext();) { + Property attribute = (Property) i.next(); + if (name.equals(attribute.getName())) { + return attribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, + UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY, + new int[]{UMLPackage.CLASSIFIER__SUBSTITUTION}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public List getCollaborationUses() { + List collaborationUse = (List) eVirtualGet(UMLPackage.CLASSIFIER__COLLABORATION_USE); + if (collaborationUse == null) { + eVirtualSet(UMLPackage.CLASSIFIER__COLLABORATION_USE, + collaborationUse = new SupersetEObjectContainmentEList( + CollaborationUse.class, this, + UMLPackage.CLASSIFIER__COLLABORATION_USE, + new int[]{UMLPackage.CLASSIFIER__REPRESENTATION})); + } + return collaborationUse; + } + + /** + * + * + * @generated + */ + public CollaborationUse createCollaborationUse() { + CollaborationUse newCollaborationUse = UMLFactory.eINSTANCE + .createCollaborationUse(); + getCollaborationUses().add(newCollaborationUse); + return newCollaborationUse; + } + + /** + * + * + * @generated + */ + public CollaborationUse getCollaborationUse(String name) { + for (Iterator i = getCollaborationUses().iterator(); i.hasNext();) { + CollaborationUse collaborationUse = (CollaborationUse) i.next(); + if (name.equals(collaborationUse.getName())) { + return collaborationUse; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isAbstract() { + return (eFlags & IS_ABSTRACT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsAbstract(boolean newIsAbstract) { + boolean oldIsAbstract = (eFlags & IS_ABSTRACT_EFLAG) != 0; + if (newIsAbstract) + eFlags |= IS_ABSTRACT_EFLAG; + else + eFlags &= ~IS_ABSTRACT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__IS_ABSTRACT, oldIsAbstract, + newIsAbstract)); + + } + + /** + * + * + * @generated + */ + public List getGeneralizations() { + List generalization = (List) eVirtualGet(UMLPackage.CLASSIFIER__GENERALIZATION); + if (generalization == null) { + eVirtualSet(UMLPackage.CLASSIFIER__GENERALIZATION, + generalization = new EObjectContainmentWithInverseEList( + Generalization.class, this, + UMLPackage.CLASSIFIER__GENERALIZATION, + UMLPackage.GENERALIZATION__SPECIFIC)); + } + return generalization; + } + + /** + * + * + * @generated + */ + public Generalization createGeneralization() { + Generalization newGeneralization = UMLFactory.eINSTANCE + .createGeneralization(); + getGeneralizations().add(newGeneralization); + return newGeneralization; + } + + /** + * + * + * @generated + */ + public List getPowertypeExtents() { + List powertypeExtent = (List) eVirtualGet(UMLPackage.CLASSIFIER__POWERTYPE_EXTENT); + if (powertypeExtent == null) { + eVirtualSet(UMLPackage.CLASSIFIER__POWERTYPE_EXTENT, + powertypeExtent = new EObjectWithInverseResolvingEList( + GeneralizationSet.class, this, + UMLPackage.CLASSIFIER__POWERTYPE_EXTENT, + UMLPackage.GENERALIZATION_SET__POWERTYPE)); + } + return powertypeExtent; + } + + /** + * + * + * @generated + */ + public GeneralizationSet getPowertypeExtent(String name) { + for (Iterator i = getPowertypeExtents().iterator(); i.hasNext();) { + GeneralizationSet powertypeExtent = (GeneralizationSet) i.next(); + if (name.equals(powertypeExtent.getName())) { + return powertypeExtent; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInheritedMembers() { + // TODO: implement this method to return the 'Inherited Member' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public NamedElement getInheritedMember(String name) { + for (Iterator i = getInheritedMembers().iterator(); i.hasNext();) { + NamedElement inheritedMember = (NamedElement) i.next(); + if (name.equals(inheritedMember.getName())) { + return inheritedMember; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinedClassifiers() { + List redefinedClassifier = (List) eVirtualGet(UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER); + if (redefinedClassifier == null) { + eVirtualSet(UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER, + redefinedClassifier = new EObjectResolvingEList( + Classifier.class, this, + UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER)); + } + return redefinedClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getRedefinedClassifier(String name) { + for (Iterator i = getRedefinedClassifiers().iterator(); i.hasNext();) { + Classifier redefinedClassifier = (Classifier) i.next(); + if (name.equals(redefinedClassifier.getName())) { + return redefinedClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getGenerals() { + // TODO: implement this method to return the 'General' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Classifier getGeneral(String name) { + for (Iterator i = getGenerals().iterator(); i.hasNext();) { + Classifier general = (Classifier) i.next(); + if (name.equals(general.getName())) { + return general; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedUseCases() { + List ownedUseCase = (List) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_USE_CASE); + if (ownedUseCase == null) { + eVirtualSet(UMLPackage.CLASSIFIER__OWNED_USE_CASE, + ownedUseCase = new EObjectContainmentEList(UseCase.class, this, + UMLPackage.CLASSIFIER__OWNED_USE_CASE)); + } + return ownedUseCase; + } + + /** + * + * + * @generated + */ + public UseCase createOwnedUseCase() { + UseCase newOwnedUseCase = UMLFactory.eINSTANCE.createUseCase(); + getOwnedUseCases().add(newOwnedUseCase); + return newOwnedUseCase; + } + + /** + * + * + * @generated + */ + public UseCase getOwnedUseCase(String name) { + for (Iterator i = getOwnedUseCases().iterator(); i.hasNext();) { + UseCase ownedUseCase = (UseCase) i.next(); + if (name.equals(ownedUseCase.getName())) { + return ownedUseCase; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getUseCases() { + List useCase = (List) eVirtualGet(UMLPackage.CLASSIFIER__USE_CASE); + if (useCase == null) { + eVirtualSet(UMLPackage.CLASSIFIER__USE_CASE, + useCase = new EObjectWithInverseResolvingEList.ManyInverse( + UseCase.class, this, UMLPackage.CLASSIFIER__USE_CASE, + UMLPackage.USE_CASE__SUBJECT)); + } + return useCase; + } + + /** + * + * + * @generated + */ + public UseCase getUseCase(String name) { + for (Iterator i = getUseCases().iterator(); i.hasNext();) { + UseCase useCase = (UseCase) i.next(); + if (name.equals(useCase.getName())) { + return useCase; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getSubstitutions() { + List substitution = (List) eVirtualGet(UMLPackage.CLASSIFIER__SUBSTITUTION); + if (substitution == null) { + eVirtualSet(UMLPackage.CLASSIFIER__SUBSTITUTION, + substitution = new SubsetEObjectContainmentWithInverseEList( + Substitution.class, this, + UMLPackage.CLASSIFIER__SUBSTITUTION, + new int[]{UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY}, + UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER)); + } + return substitution; + } + + /** + * + * + * @generated + */ + public Substitution createSubstitution() { + Substitution newSubstitution = UMLFactory.eINSTANCE + .createSubstitution(); + getSubstitutions().add(newSubstitution); + return newSubstitution; + } + + /** + * + * + * @generated + */ + public Substitution getSubstitution(String name) { + for (Iterator i = getSubstitutions().iterator(); i.hasNext();) { + Substitution substitution = (Substitution) i.next(); + if (name.equals(substitution.getName())) { + return substitution; + } + } + return null; + } + + /** + * + * + * @generated + */ + public CollaborationUse getRepresentation() { + CollaborationUse representation = (CollaborationUse) eVirtualGet(UMLPackage.CLASSIFIER__REPRESENTATION); + return representation; + } + + /** + * + * + * @generated + */ + public void setRepresentation(CollaborationUse newRepresentation) { + if (newRepresentation != null + && !getCollaborationUses().contains(newRepresentation)) { + getCollaborationUses().add(newRepresentation); + } + CollaborationUse representation = newRepresentation; + Object oldRepresentation = eVirtualSet( + UMLPackage.CLASSIFIER__REPRESENTATION, representation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__REPRESENTATION, + oldRepresentation == EVIRTUAL_NO_VALUE + ? null + : oldRepresentation, representation)); + + } + + /** + * + * + * @generated + */ + public RedefinableTemplateSignature getOwnedSignature() { + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_SIGNATURE); + return ownedSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedSignature( + RedefinableTemplateSignature newOwnedSignature, + NotificationChain msgs) { + Object oldOwnedSignature = eVirtualSet( + UMLPackage.CLASSIFIER__OWNED_SIGNATURE, newOwnedSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CLASSIFIER__OWNED_SIGNATURE, + oldOwnedSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedSignature, newOwnedSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedSignature(RedefinableTemplateSignature newOwnedSignature) { + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_SIGNATURE); + if (newOwnedSignature != ownedSignature) { + NotificationChain msgs = null; + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature).eInverseRemove(this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER, + RedefinableTemplateSignature.class, msgs); + if (newOwnedSignature != null) + msgs = ((InternalEObject) newOwnedSignature).eInverseAdd(this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER, + RedefinableTemplateSignature.class, msgs); + msgs = basicSetOwnedSignature(newOwnedSignature, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER__OWNED_SIGNATURE, newOwnedSignature, + newOwnedSignature)); + + } + + /** + * + * + * @generated + */ + public RedefinableTemplateSignature createOwnedSignature() { + RedefinableTemplateSignature newOwnedSignature = UMLFactory.eINSTANCE + .createRedefinableTemplateSignature(); + setOwnedSignature(newOwnedSignature); + return newOwnedSignature; + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionContextValid( + DiagnosticChain diagnostics, Map context) { + return RedefinableElementOperations.validateRedefinitionContextValid( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics, + Map context) { + return RedefinableElementOperations.validateRedefinitionConsistent( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid(RedefinableElement redefinable) { + return RedefinableElementOperations.isRedefinitionContextValid(this, + redefinable); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return RedefinableElementOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid() { + return RedefinableElementOperations.isRedefinitionContextValid(this); + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * + * + * @generated + */ + public boolean isTemplate() { + return ClassifierOperations.isTemplate(this); + } + + /** + * + * + * @generated + */ + public boolean validateNoCyclesInGeneralization( + DiagnosticChain diagnostics, Map context) { + return ClassifierOperations.validateNoCyclesInGeneralization(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSpecializeType(DiagnosticChain diagnostics, + Map context) { + return ClassifierOperations.validateSpecializeType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGeneralizationHierarchies( + DiagnosticChain diagnostics, Map context) { + return ClassifierOperations.validateGeneralizationHierarchies(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSpecialize(DiagnosticChain diagnostics, Map context) { + return ClassifierOperations.validateSpecialize(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics, + Map context) { + return ClassifierOperations.validateMapsToGeneralizationSet(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean maySpecializeType(Classifier c) { + return ClassifierOperations.maySpecializeType(this, c); + } + + /** + * + * + * @generated + */ + public List allFeatures() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getClassifier().getEOperations().get(8)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getClassifier() + .getEOperations().get(8), result = ClassifierOperations + .allFeatures(this)); + } + return result; + } + return ClassifierOperations.allFeatures(this); + } + + /** + * + * + * @generated + */ + public List parents() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getClassifier().getEOperations().get(9)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getClassifier().getEOperations().get(9), + result = ClassifierOperations.parents(this)); + } + return result; + } + return ClassifierOperations.parents(this); + } + + /** + * + * + * @generated + */ + public List inheritableMembers(Classifier c) { + return ClassifierOperations.inheritableMembers(this, c); + } + + /** + * + * + * @generated + */ + public boolean hasVisibilityOf(NamedElement n) { + return ClassifierOperations.hasVisibilityOf(this, n); + } + + /** + * + * + * @generated + */ + public boolean conformsTo(Classifier other) { + return ClassifierOperations.conformsTo(this, other); + } + + /** + * + * + * @generated + */ + public List inherit(List inhs) { + return ClassifierOperations.inherit(this, inhs); + } + + /** + * + * + * @generated + */ + public boolean maySpecializeType() { + return ClassifierOperations.maySpecializeType(this); + } + + /** + * + * + * @generated + */ + public List allParents() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getClassifier().getEOperations().get(15)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getClassifier() + .getEOperations().get(15), result = ClassifierOperations + .allParents(this)); + } + return result; + } + return ClassifierOperations.allParents(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLASSIFIER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.CLASSIFIER__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.CLASSIFIER__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.CLASSIFIER__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLASSIFIER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLASSIFIER__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CLASSIFIER__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.CLASSIFIER__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLASSIFIER__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLASSIFIER__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CLASSIFIER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CLASSIFIER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CLASSIFIER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CLASSIFIER__NAME : + return getName(); + case UMLPackage.CLASSIFIER__VISIBILITY : + return getVisibility(); + case UMLPackage.CLASSIFIER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CLASSIFIER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CLASSIFIER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CLASSIFIER__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.CLASSIFIER__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.CLASSIFIER__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.CLASSIFIER__MEMBER : + return getMembers(); + case UMLPackage.CLASSIFIER__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.CLASSIFIER__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.CLASSIFIER__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLASSIFIER__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.CLASSIFIER__PACKAGE : + return getPackage(); + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.CLASSIFIER__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLASSIFIER__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.CLASSIFIER__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.CLASSIFIER__FEATURE : + return getFeatures(); + case UMLPackage.CLASSIFIER__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.CLASSIFIER__GENERAL : + return getGenerals(); + case UMLPackage.CLASSIFIER__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.CLASSIFIER__USE_CASE : + return getUseCases(); + case UMLPackage.CLASSIFIER__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.CLASSIFIER__ATTRIBUTE : + return getAttributes(); + case UMLPackage.CLASSIFIER__REPRESENTATION : + return getRepresentation(); + case UMLPackage.CLASSIFIER__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.CLASSIFIER__OWNED_SIGNATURE : + return getOwnedSignature(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__NAME : + setName((String) newValue); + return; + case UMLPackage.CLASSIFIER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.CLASSIFIER__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CLASSIFIER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CLASSIFIER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.CLASSIFIER__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.CLASSIFIER__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.CLASSIFIER__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.CLASSIFIER__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CLASSIFIER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CLASSIFIER__OWNER : + return isSetOwner(); + case UMLPackage.CLASSIFIER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CLASSIFIER__NAME : + String name = eVirtualIsSet(UMLPackage.CLASSIFIER__NAME) + ? (String) eVirtualGet(UMLPackage.CLASSIFIER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CLASSIFIER__VISIBILITY : + return eVirtualIsSet(UMLPackage.CLASSIFIER__VISIBILITY) + && eVirtualGet(UMLPackage.CLASSIFIER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CLASSIFIER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CLASSIFIER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CLASSIFIER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CLASSIFIER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CLASSIFIER__NAME_EXPRESSION) != null; + case UMLPackage.CLASSIFIER__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.CLASSIFIER__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.CLASSIFIER__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.CLASSIFIER__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.CLASSIFIER__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.CLASSIFIER__MEMBER : + return isSetMembers(); + case UMLPackage.CLASSIFIER__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.CLASSIFIER__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.CLASSIFIER__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CLASSIFIER__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER) != null; + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.CLASSIFIER__PACKAGE : + return getPackage() != null; + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.CLASSIFIER__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.CLASSIFIER__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.CLASSIFIER__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.CLASSIFIER__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.CLASSIFIER__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.CLASSIFIER__FEATURE : + return isSetFeatures(); + case UMLPackage.CLASSIFIER__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.CLASSIFIER__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.CLASSIFIER__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.CLASSIFIER__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.CLASSIFIER__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.CLASSIFIER__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.CLASSIFIER__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.CLASSIFIER__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.CLASSIFIER__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.CLASSIFIER__REPRESENTATION : + return eVirtualGet(UMLPackage.CLASSIFIER__REPRESENTATION) != null; + case UMLPackage.CLASSIFIER__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.CLASSIFIER__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.CLASSIFIER__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.CLASSIFIER__OWNED_SIGNATURE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.CLASSIFIER__IS_LEAF : + return UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF; + case UMLPackage.CLASSIFIER__REDEFINED_ELEMENT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + case UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + default : + return -1; + } + } + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + if (baseClass == Type.class) { + switch (derivedFeatureID) { + case UMLPackage.CLASSIFIER__PACKAGE : + return UMLPackage.TYPE__PACKAGE; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.CLASSIFIER__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (baseFeatureID) { + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + return UMLPackage.CLASSIFIER__IS_LEAF; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT : + return UMLPackage.CLASSIFIER__REDEFINED_ELEMENT; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT : + return UMLPackage.CLASSIFIER__REDEFINITION_CONTEXT; + default : + return -1; + } + } + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + if (baseClass == Type.class) { + switch (baseFeatureID) { + case UMLPackage.TYPE__PACKAGE : + return UMLPackage.CLASSIFIER__PACKAGE; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.CLASSIFIER__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isLeaf: "); //$NON-NLS-1$ + result.append((eFlags & IS_LEAF_EFLAG) != 0); + result.append(", visibility: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.CLASSIFIER__VISIBILITY) + ? eVirtualGet(UMLPackage.CLASSIFIER__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(", isAbstract: "); //$NON-NLS-1$ + result.append((eFlags & IS_ABSTRACT_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return eIsSet(UMLPackage.eINSTANCE.getClassifier_RedefinedClassifier()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return false; + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + org.eclipse.uml2.uml.Package package_ = getPackage(); + if (package_ != null) { + return package_; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getType_Package()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()) + || eIsSet(UMLPackage.eINSTANCE.getClassifier_Generalization()) + || eIsSet(UMLPackage.eINSTANCE.getClassifier_Substitution()) + || eIsSet(UMLPackage.eINSTANCE.getClassifier_CollaborationUse()) + || eIsSet(UMLPackage.eINSTANCE.getClassifier_OwnedSignature()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return isSetAttributes(); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return super.isSetMembers() || isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getClassifier_InheritedMember()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getClassifier_OwnedUseCase()); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return false; + } + + /** + * + * + * @generated + */ + public boolean conformsTo(Type other) { + return conformsTo(other); + } + +} //ClassifierImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java new file mode 100644 index 00000000..59e8db38 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java @@ -0,0 +1,522 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassifierTemplateParameterImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ClassifierTemplateParameter; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ClassifierTemplateParameterOperations; + +/** + * + * An implementation of the model object 'Classifier Template Parameter'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#isAllowSubstitutable Allow Substitutable}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#getDefaultClassifier Default Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#getConstrainingClassifier Constraining Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#getParameteredElement Parametered Element}
  • + *
+ *

+ * + * @generated + */ +public class ClassifierTemplateParameterImpl + extends TemplateParameterImpl + implements ClassifierTemplateParameter { + + /** + * The default value of the '{@link #isAllowSubstitutable() Allow Substitutable}' attribute. + * + * + * @see #isAllowSubstitutable() + * @generated + * @ordered + */ + protected static final boolean ALLOW_SUBSTITUTABLE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isAllowSubstitutable() Allow Substitutable}' attribute. + * + * + * @see #isAllowSubstitutable() + * @generated + * @ordered + */ + protected static final int ALLOW_SUBSTITUTABLE_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected ClassifierTemplateParameterImpl() { + super(); + eFlags |= ALLOW_SUBSTITUTABLE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClassifierTemplateParameter(); + } + + /** + * + * + * @generated + */ + public boolean isAllowSubstitutable() { + return (eFlags & ALLOW_SUBSTITUTABLE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setAllowSubstitutable(boolean newAllowSubstitutable) { + boolean oldAllowSubstitutable = (eFlags & ALLOW_SUBSTITUTABLE_EFLAG) != 0; + if (newAllowSubstitutable) + eFlags |= ALLOW_SUBSTITUTABLE_EFLAG; + else + eFlags &= ~ALLOW_SUBSTITUTABLE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE, + oldAllowSubstitutable, newAllowSubstitutable)); + + } + + /** + * + * + * @generated + */ + public Classifier getDefaultClassifier() { + Classifier defaultClassifier = (Classifier) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER); + if (defaultClassifier != null && defaultClassifier.eIsProxy()) { + Classifier oldDefaultClassifier = defaultClassifier; + defaultClassifier = (Classifier) eResolveProxy((InternalEObject) defaultClassifier); + if (defaultClassifier != oldDefaultClassifier) { + eVirtualSet( + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER, + defaultClassifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER, + oldDefaultClassifier, defaultClassifier)); + } + } + return defaultClassifier; + } + + /** + * + * + * @generated + */ + public Classifier basicGetDefaultClassifier() { + return (Classifier) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER); + } + + /** + * + * + * @generated + */ + public void setDefaultClassifier(Classifier newDefaultClassifier) { + Classifier defaultClassifier = newDefaultClassifier; + Object oldDefaultClassifier = eVirtualSet( + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER, + defaultClassifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER, + oldDefaultClassifier == EVIRTUAL_NO_VALUE + ? null + : oldDefaultClassifier, defaultClassifier)); + + } + + /** + * + * + * @generated + */ + public Classifier getConstrainingClassifier() { + Classifier constrainingClassifier = (Classifier) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER); + if (constrainingClassifier != null && constrainingClassifier.eIsProxy()) { + Classifier oldConstrainingClassifier = constrainingClassifier; + constrainingClassifier = (Classifier) eResolveProxy((InternalEObject) constrainingClassifier); + if (constrainingClassifier != oldConstrainingClassifier) { + eVirtualSet( + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER, + constrainingClassifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER, + oldConstrainingClassifier, constrainingClassifier)); + } + } + return constrainingClassifier; + } + + /** + * + * + * @generated + */ + public Classifier basicGetConstrainingClassifier() { + return (Classifier) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER); + } + + /** + * + * + * @generated + */ + public void setConstrainingClassifier(Classifier newConstrainingClassifier) { + Classifier constrainingClassifier = newConstrainingClassifier; + Object oldConstrainingClassifier = eVirtualSet( + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER, + constrainingClassifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.SET, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER, + oldConstrainingClassifier == EVIRTUAL_NO_VALUE + ? null + : oldConstrainingClassifier, constrainingClassifier)); + + } + + /** + * + * + * @generated + */ + public ParameterableElement getParameteredElement() { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (parameteredElement != null && parameteredElement.eIsProxy()) { + ParameterableElement oldParameteredElement = parameteredElement; + parameteredElement = (ParameterableElement) eResolveProxy((InternalEObject) parameteredElement); + if (parameteredElement != oldParameteredElement) { + eVirtualSet( + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + parameteredElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement, parameteredElement)); + } + } + return parameteredElement; + } + + /** + * + * + * @generated + */ + public ParameterableElement basicGetParameteredElement() { + return (ParameterableElement) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetParameteredElement( + ParameterableElement newParameteredElement, NotificationChain msgs) { + Object oldParameteredElement = eVirtualSet( + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement == EVIRTUAL_NO_VALUE + ? null + : oldParameteredElement, newParameteredElement); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setParameteredElement(ParameterableElement newParameteredElement) { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (newParameteredElement != parameteredElement) { + NotificationChain msgs = null; + if (parameteredElement != null) + msgs = ((InternalEObject) parameteredElement).eInverseRemove( + this, UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, + Classifier.class, msgs); + if (newParameteredElement != null) + msgs = ((InternalEObject) newParameteredElement).eInverseAdd( + this, UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER, + Classifier.class, msgs); + msgs = basicSetParameteredElement(newParameteredElement, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement, newParameteredElement)); + + } + + /** + * + * + * @generated + */ + public boolean isSetParameteredElement() { + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + } + + /** + * + * + * @generated + */ + public boolean validateConstrainingClassifier(DiagnosticChain diagnostics, + Map context) { + return ClassifierTemplateParameterOperations + .validateConstrainingClassifier(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE : + return getSignature(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return getOwnedParameteredElement(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT : + if (resolve) + return getDefault(); + return basicGetDefault(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT : + return getOwnedDefault(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + if (resolve) + return getParameteredElement(); + return basicGetParameteredElement(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE : + return isAllowSubstitutable() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER : + if (resolve) + return getDefaultClassifier(); + return basicGetDefaultClassifier(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER : + if (resolve) + return getConstrainingClassifier(); + return basicGetConstrainingClassifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE : + setSignature((TemplateSignature) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + setOwnedParameteredElement((ParameterableElement) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT : + setDefault((ParameterableElement) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT : + setOwnedDefault((ParameterableElement) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + setParameteredElement((ParameterableElement) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE : + setAllowSubstitutable(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER : + setDefaultClassifier((Classifier) newValue); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER : + setConstrainingClassifier((Classifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE : + setSignature((TemplateSignature) null); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + setOwnedParameteredElement((ParameterableElement) null); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT : + setDefault((ParameterableElement) null); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT : + setOwnedDefault((ParameterableElement) null); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + setParameteredElement((ParameterableElement) null); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE : + setAllowSubstitutable(ALLOW_SUBSTITUTABLE_EDEFAULT); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER : + setDefaultClassifier((Classifier) null); + return; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER : + setConstrainingClassifier((Classifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNER : + return isSetOwner(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__SIGNATURE : + return getSignature() != null; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != null; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT : + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT) != null; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT : + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__OWNED_DEFAULT) != null; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__ALLOW_SUBSTITUTABLE : + return ((eFlags & ALLOW_SUBSTITUTABLE_EFLAG) != 0) != ALLOW_SUBSTITUTABLE_EDEFAULT; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER : + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER) != null; + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER : + return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (allowSubstitutable: "); //$NON-NLS-1$ + result.append((eFlags & ALLOW_SUBSTITUTABLE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //ClassifierTemplateParameterImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java new file mode 100644 index 00000000..f1dc039f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java @@ -0,0 +1,478 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClauseImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Clause; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ClauseOperations; + +/** + * + * An implementation of the model object 'Clause'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getTests Test}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getPredecessorClauses Predecessor Clause}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getSuccessorClauses Successor Clause}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getDecider Decider}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getBodyOutputs Body Output}
  • + *
+ *

+ * + * @generated + */ +public class ClauseImpl + extends ElementImpl + implements Clause { + + /** + * + * + * @generated + */ + protected ClauseImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClause(); + } + + /** + * + * + * @generated + */ + public List getTests() { + List test = (List) eVirtualGet(UMLPackage.CLAUSE__TEST); + if (test == null) { + eVirtualSet(UMLPackage.CLAUSE__TEST, + test = new EObjectResolvingEList(ExecutableNode.class, this, + UMLPackage.CLAUSE__TEST)); + } + return test; + } + + /** + * + * + * @generated + */ + public ExecutableNode getTest(String name) { + for (Iterator i = getTests().iterator(); i.hasNext();) { + ExecutableNode test = (ExecutableNode) i.next(); + if (name.equals(test.getName())) { + return test; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getBodies() { + List body = (List) eVirtualGet(UMLPackage.CLAUSE__BODY); + if (body == null) { + eVirtualSet(UMLPackage.CLAUSE__BODY, + body = new EObjectResolvingEList(ExecutableNode.class, this, + UMLPackage.CLAUSE__BODY)); + } + return body; + } + + /** + * + * + * @generated + */ + public ExecutableNode getBody(String name) { + for (Iterator i = getBodies().iterator(); i.hasNext();) { + ExecutableNode body = (ExecutableNode) i.next(); + if (name.equals(body.getName())) { + return body; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getPredecessorClauses() { + List predecessorClause = (List) eVirtualGet(UMLPackage.CLAUSE__PREDECESSOR_CLAUSE); + if (predecessorClause == null) { + eVirtualSet( + UMLPackage.CLAUSE__PREDECESSOR_CLAUSE, + predecessorClause = new EObjectWithInverseResolvingEList.ManyInverse( + Clause.class, this, UMLPackage.CLAUSE__PREDECESSOR_CLAUSE, + UMLPackage.CLAUSE__SUCCESSOR_CLAUSE)); + } + return predecessorClause; + } + + /** + * + * + * @generated + */ + public List getSuccessorClauses() { + List successorClause = (List) eVirtualGet(UMLPackage.CLAUSE__SUCCESSOR_CLAUSE); + if (successorClause == null) { + eVirtualSet( + UMLPackage.CLAUSE__SUCCESSOR_CLAUSE, + successorClause = new EObjectWithInverseResolvingEList.ManyInverse( + Clause.class, this, UMLPackage.CLAUSE__SUCCESSOR_CLAUSE, + UMLPackage.CLAUSE__PREDECESSOR_CLAUSE)); + } + return successorClause; + } + + /** + * + * + * @generated + */ + public OutputPin getDecider() { + OutputPin decider = (OutputPin) eVirtualGet(UMLPackage.CLAUSE__DECIDER); + if (decider != null && decider.eIsProxy()) { + OutputPin oldDecider = decider; + decider = (OutputPin) eResolveProxy((InternalEObject) decider); + if (decider != oldDecider) { + eVirtualSet(UMLPackage.CLAUSE__DECIDER, decider); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CLAUSE__DECIDER, oldDecider, decider)); + } + } + return decider; + } + + /** + * + * + * @generated + */ + public OutputPin basicGetDecider() { + return (OutputPin) eVirtualGet(UMLPackage.CLAUSE__DECIDER); + } + + /** + * + * + * @generated + */ + public void setDecider(OutputPin newDecider) { + OutputPin decider = newDecider; + Object oldDecider = eVirtualSet(UMLPackage.CLAUSE__DECIDER, decider); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLAUSE__DECIDER, oldDecider == EVIRTUAL_NO_VALUE + ? null + : oldDecider, decider)); + + } + + /** + * + * + * @generated + */ + public List getBodyOutputs() { + List bodyOutput = (List) eVirtualGet(UMLPackage.CLAUSE__BODY_OUTPUT); + if (bodyOutput == null) { + eVirtualSet(UMLPackage.CLAUSE__BODY_OUTPUT, + bodyOutput = new EObjectResolvingEList(OutputPin.class, this, + UMLPackage.CLAUSE__BODY_OUTPUT)); + } + return bodyOutput; + } + + /** + * + * + * @generated + */ + public OutputPin getBodyOutput(String name) { + for (Iterator i = getBodyOutputs().iterator(); i.hasNext();) { + OutputPin bodyOutput = (OutputPin) i.next(); + if (name.equals(bodyOutput.getName())) { + return bodyOutput; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateDeciderOutput(DiagnosticChain diagnostics, + Map context) { + return ClauseOperations.validateDeciderOutput(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateBodyOutput(DiagnosticChain diagnostics, Map context) { + return ClauseOperations.validateBodyOutput(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLAUSE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLAUSE__PREDECESSOR_CLAUSE : + return ((InternalEList) getPredecessorClauses()).basicAdd( + otherEnd, msgs); + case UMLPackage.CLAUSE__SUCCESSOR_CLAUSE : + return ((InternalEList) getSuccessorClauses()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLAUSE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLAUSE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLAUSE__PREDECESSOR_CLAUSE : + return ((InternalEList) getPredecessorClauses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLAUSE__SUCCESSOR_CLAUSE : + return ((InternalEList) getSuccessorClauses()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLAUSE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CLAUSE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CLAUSE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CLAUSE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CLAUSE__TEST : + return getTests(); + case UMLPackage.CLAUSE__BODY : + return getBodies(); + case UMLPackage.CLAUSE__PREDECESSOR_CLAUSE : + return getPredecessorClauses(); + case UMLPackage.CLAUSE__SUCCESSOR_CLAUSE : + return getSuccessorClauses(); + case UMLPackage.CLAUSE__DECIDER : + if (resolve) + return getDecider(); + return basicGetDecider(); + case UMLPackage.CLAUSE__BODY_OUTPUT : + return getBodyOutputs(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLAUSE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CLAUSE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CLAUSE__TEST : + getTests().clear(); + getTests().addAll((Collection) newValue); + return; + case UMLPackage.CLAUSE__BODY : + getBodies().clear(); + getBodies().addAll((Collection) newValue); + return; + case UMLPackage.CLAUSE__PREDECESSOR_CLAUSE : + getPredecessorClauses().clear(); + getPredecessorClauses().addAll((Collection) newValue); + return; + case UMLPackage.CLAUSE__SUCCESSOR_CLAUSE : + getSuccessorClauses().clear(); + getSuccessorClauses().addAll((Collection) newValue); + return; + case UMLPackage.CLAUSE__DECIDER : + setDecider((OutputPin) newValue); + return; + case UMLPackage.CLAUSE__BODY_OUTPUT : + getBodyOutputs().clear(); + getBodyOutputs().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLAUSE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CLAUSE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CLAUSE__TEST : + getTests().clear(); + return; + case UMLPackage.CLAUSE__BODY : + getBodies().clear(); + return; + case UMLPackage.CLAUSE__PREDECESSOR_CLAUSE : + getPredecessorClauses().clear(); + return; + case UMLPackage.CLAUSE__SUCCESSOR_CLAUSE : + getSuccessorClauses().clear(); + return; + case UMLPackage.CLAUSE__DECIDER : + setDecider((OutputPin) null); + return; + case UMLPackage.CLAUSE__BODY_OUTPUT : + getBodyOutputs().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLAUSE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CLAUSE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CLAUSE__OWNER : + return isSetOwner(); + case UMLPackage.CLAUSE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CLAUSE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CLAUSE__TEST : + List test = (List) eVirtualGet(UMLPackage.CLAUSE__TEST); + return test != null && !test.isEmpty(); + case UMLPackage.CLAUSE__BODY : + List body = (List) eVirtualGet(UMLPackage.CLAUSE__BODY); + return body != null && !body.isEmpty(); + case UMLPackage.CLAUSE__PREDECESSOR_CLAUSE : + List predecessorClause = (List) eVirtualGet(UMLPackage.CLAUSE__PREDECESSOR_CLAUSE); + return predecessorClause != null + && !predecessorClause.isEmpty(); + case UMLPackage.CLAUSE__SUCCESSOR_CLAUSE : + List successorClause = (List) eVirtualGet(UMLPackage.CLAUSE__SUCCESSOR_CLAUSE); + return successorClause != null && !successorClause.isEmpty(); + case UMLPackage.CLAUSE__DECIDER : + return eVirtualGet(UMLPackage.CLAUSE__DECIDER) != null; + case UMLPackage.CLAUSE__BODY_OUTPUT : + List bodyOutput = (List) eVirtualGet(UMLPackage.CLAUSE__BODY_OUTPUT); + return bodyOutput != null && !bodyOutput.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //ClauseImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java new file mode 100644 index 00000000..d87375d5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java @@ -0,0 +1,638 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearAssociationActionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.ClearAssociationAction; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ClearAssociationActionOperations; + +/** + * + * An implementation of the model object 'Clear Association Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl#getObject Object}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl#getAssociation Association}
  • + *
+ *

+ * + * @generated + */ +public class ClearAssociationActionImpl + extends ActionImpl + implements ClearAssociationAction { + + /** + * + * + * @generated + */ + protected ClearAssociationActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClearAssociationAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.CLEAR_ASSOCIATION_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.CLEAR_ASSOCIATION_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getClearAssociationAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT, null, + msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT, null, + msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT, newObject, + newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public Association getAssociation() { + Association association = (Association) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION); + if (association != null && association.eIsProxy()) { + Association oldAssociation = association; + association = (Association) eResolveProxy((InternalEObject) association); + if (association != oldAssociation) { + eVirtualSet(UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION, + association); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION, + oldAssociation, association)); + } + } + return association; + } + + /** + * + * + * @generated + */ + public Association basicGetAssociation() { + return (Association) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION); + } + + /** + * + * + * @generated + */ + public void setAssociation(Association newAssociation) { + Association association = newAssociation; + Object oldAssociation = eVirtualSet( + UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION, association); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION, + oldAssociation == EVIRTUAL_NO_VALUE + ? null + : oldAssociation, association)); + + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return ClearAssociationActionOperations.validateSameType(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ClearAssociationActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CLEAR_ASSOCIATION_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT : + return basicSetObject(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLEAR_ASSOCIATION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME : + return getName(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INPUT : + return getInputs(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT : + return getObject(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION : + if (resolve) + return getAssociation(); + return basicGetAssociation(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLEAR_ASSOCIATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION : + setAssociation((Association) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLEAR_ASSOCIATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION : + setAssociation((Association) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CLEAR_ASSOCIATION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CLEAR_ASSOCIATION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT : + return eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT) != null; + case UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION : + return eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getClearAssociationAction_Object()); + } + +} //ClearAssociationActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java new file mode 100644 index 00000000..e9d229a3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearStructuralFeatureActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ClearStructuralFeatureAction; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Clear Structural Feature Action'. + * + *

+ *

+ * + * @generated + */ +public class ClearStructuralFeatureActionImpl + extends StructuralFeatureActionImpl + implements ClearStructuralFeatureAction { + + /** + * + * + * @generated + */ + protected ClearStructuralFeatureActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClearStructuralFeatureAction(); + } + +} //ClearStructuralFeatureActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearVariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearVariableActionImpl.java new file mode 100644 index 00000000..4980aadb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearVariableActionImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearVariableActionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ClearVariableAction; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Clear Variable Action'. + * + *

+ *

+ * + * @generated + */ +public class ClearVariableActionImpl + extends VariableActionImpl + implements ClearVariableAction { + + /** + * + * + * @generated + */ + protected ClearVariableActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getClearVariableAction(); + } + +} //ClearVariableActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java new file mode 100644 index 00000000..4defc0b7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java @@ -0,0 +1,1058 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CollaborationImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Collaboration; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredClassifier; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StructuredClassifierOperations; + +/** + * + * An implementation of the model object 'Collaboration'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getRoles Role}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getParts Part}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getOwnedConnectors Owned Connector}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getCollaborationRoles Collaboration Role}
  • + *
+ *

+ * + * @generated + */ +public class CollaborationImpl + extends BehavioredClassifierImpl + implements Collaboration { + + /** + * + * + * @generated + */ + protected CollaborationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCollaboration(); + } + + /** + * + * + * @generated + */ + public List getRoles() { + List role = (List) eVirtualGet(UMLPackage.COLLABORATION__ROLE); + if (role == null) { + eVirtualSet(UMLPackage.COLLABORATION__ROLE, + role = new DerivedUnionEObjectEList(ConnectableElement.class, + this, UMLPackage.COLLABORATION__ROLE, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getCollaboration_CollaborationRole()})); + } + return role; + } + + /** + * + * + * @generated + */ + public ConnectableElement getRole(String name) { + for (Iterator i = getRoles().iterator(); i.hasNext();) { + ConnectableElement role = (ConnectableElement) i.next(); + if (name.equals(role.getName())) { + return role; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.COLLABORATION__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.COLLABORATION__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.COLLABORATION__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.COLLABORATION__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.COLLABORATION__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.COLLABORATION__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.COLLABORATION__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.COLLABORATION__MEMBER, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getClassifier_Feature(), + UMLPackage.eINSTANCE.getClassifier_InheritedMember(), + UMLPackage.eINSTANCE.getStructuredClassifier_Role()})); + } + return member; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.COLLABORATION__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.COLLABORATION__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.COLLABORATION__FEATURE, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.COLLABORATION__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentEList(Property.class, + this, UMLPackage.COLLABORATION__OWNED_ATTRIBUTE)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getParts() { + // TODO: implement this method to return the 'Part' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Property getPart(String name) { + for (Iterator i = getParts().iterator(); i.hasNext();) { + Property part = (Property) i.next(); + if (name.equals(part.getName())) { + return part; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedConnectors() { + List ownedConnector = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_CONNECTOR); + if (ownedConnector == null) { + eVirtualSet(UMLPackage.COLLABORATION__OWNED_CONNECTOR, + ownedConnector = new EObjectContainmentEList(Connector.class, + this, UMLPackage.COLLABORATION__OWNED_CONNECTOR)); + } + return ownedConnector; + } + + /** + * + * + * @generated + */ + public Connector createOwnedConnector() { + Connector newOwnedConnector = UMLFactory.eINSTANCE.createConnector(); + getOwnedConnectors().add(newOwnedConnector); + return newOwnedConnector; + } + + /** + * + * + * @generated + */ + public Connector getOwnedConnector(String name) { + for (Iterator i = getOwnedConnectors().iterator(); i.hasNext();) { + Connector ownedConnector = (Connector) i.next(); + if (name.equals(ownedConnector.getName())) { + return ownedConnector; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getCollaborationRoles() { + List collaborationRole = (List) eVirtualGet(UMLPackage.COLLABORATION__COLLABORATION_ROLE); + if (collaborationRole == null) { + eVirtualSet(UMLPackage.COLLABORATION__COLLABORATION_ROLE, + collaborationRole = new EObjectResolvingEList( + ConnectableElement.class, this, + UMLPackage.COLLABORATION__COLLABORATION_ROLE)); + } + return collaborationRole; + } + + /** + * + * + * @generated + */ + public ConnectableElement getCollaborationRole(String name) { + for (Iterator i = getCollaborationRoles().iterator(); i.hasNext();) { + ConnectableElement collaborationRole = (ConnectableElement) i + .next(); + if (name.equals(collaborationRole.getName())) { + return collaborationRole; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicities(DiagnosticChain diagnostics, + Map context) { + return StructuredClassifierOperations.validateMultiplicities(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COLLABORATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COLLABORATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.COLLABORATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.COLLABORATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.COLLABORATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.COLLABORATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.COLLABORATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.COLLABORATION__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.COLLABORATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.COLLABORATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.COLLABORATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.COLLABORATION__NAME : + return getName(); + case UMLPackage.COLLABORATION__VISIBILITY : + return getVisibility(); + case UMLPackage.COLLABORATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.COLLABORATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.COLLABORATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.COLLABORATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.COLLABORATION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.COLLABORATION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.COLLABORATION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.COLLABORATION__MEMBER : + return getMembers(); + case UMLPackage.COLLABORATION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.COLLABORATION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.COLLABORATION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.COLLABORATION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.COLLABORATION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.COLLABORATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.COLLABORATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.COLLABORATION__PACKAGE : + return getPackage(); + case UMLPackage.COLLABORATION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.COLLABORATION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.COLLABORATION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.COLLABORATION__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.COLLABORATION__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.COLLABORATION__FEATURE : + return getFeatures(); + case UMLPackage.COLLABORATION__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.COLLABORATION__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.COLLABORATION__GENERAL : + return getGenerals(); + case UMLPackage.COLLABORATION__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.COLLABORATION__USE_CASE : + return getUseCases(); + case UMLPackage.COLLABORATION__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.COLLABORATION__ATTRIBUTE : + return getAttributes(); + case UMLPackage.COLLABORATION__REPRESENTATION : + return getRepresentation(); + case UMLPackage.COLLABORATION__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.COLLABORATION__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.COLLABORATION__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.COLLABORATION__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.COLLABORATION__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.COLLABORATION__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.COLLABORATION__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.COLLABORATION__PART : + return getParts(); + case UMLPackage.COLLABORATION__ROLE : + return getRoles(); + case UMLPackage.COLLABORATION__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.COLLABORATION__COLLABORATION_ROLE : + return getCollaborationRoles(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__NAME : + setName((String) newValue); + return; + case UMLPackage.COLLABORATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.COLLABORATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.COLLABORATION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.COLLABORATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.COLLABORATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.COLLABORATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.COLLABORATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.COLLABORATION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.COLLABORATION__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.COLLABORATION__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.COLLABORATION__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION__COLLABORATION_ROLE : + getCollaborationRoles().clear(); + getCollaborationRoles().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.COLLABORATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.COLLABORATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.COLLABORATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.COLLABORATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.COLLABORATION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.COLLABORATION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.COLLABORATION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.COLLABORATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.COLLABORATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.COLLABORATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.COLLABORATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.COLLABORATION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.COLLABORATION__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.COLLABORATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.COLLABORATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.COLLABORATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.COLLABORATION__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.COLLABORATION__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.COLLABORATION__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.COLLABORATION__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.COLLABORATION__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.COLLABORATION__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.COLLABORATION__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.COLLABORATION__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.COLLABORATION__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.COLLABORATION__COLLABORATION_ROLE : + getCollaborationRoles().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.COLLABORATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.COLLABORATION__OWNER : + return isSetOwner(); + case UMLPackage.COLLABORATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.COLLABORATION__NAME : + String name = eVirtualIsSet(UMLPackage.COLLABORATION__NAME) + ? (String) eVirtualGet(UMLPackage.COLLABORATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.COLLABORATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.COLLABORATION__VISIBILITY) + && eVirtualGet(UMLPackage.COLLABORATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.COLLABORATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.COLLABORATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.COLLABORATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.COLLABORATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.COLLABORATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.COLLABORATION__NAME_EXPRESSION) != null; + case UMLPackage.COLLABORATION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.COLLABORATION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.COLLABORATION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.COLLABORATION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.COLLABORATION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.COLLABORATION__MEMBER : + return isSetMembers(); + case UMLPackage.COLLABORATION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.COLLABORATION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.COLLABORATION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.COLLABORATION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.COLLABORATION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.COLLABORATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.COLLABORATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.COLLABORATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.COLLABORATION__PACKAGE : + return getPackage() != null; + case UMLPackage.COLLABORATION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.COLLABORATION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.COLLABORATION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.COLLABORATION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.COLLABORATION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.COLLABORATION__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.COLLABORATION__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.COLLABORATION__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.COLLABORATION__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.COLLABORATION__FEATURE : + return isSetFeatures(); + case UMLPackage.COLLABORATION__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.COLLABORATION__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.COLLABORATION__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.COLLABORATION__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.COLLABORATION__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.COLLABORATION__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.COLLABORATION__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.COLLABORATION__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.COLLABORATION__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.COLLABORATION__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.COLLABORATION__REPRESENTATION : + return eVirtualGet(UMLPackage.COLLABORATION__REPRESENTATION) != null; + case UMLPackage.COLLABORATION__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.COLLABORATION__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.COLLABORATION__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.COLLABORATION__OWNED_SIGNATURE) != null; + case UMLPackage.COLLABORATION__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.COLLABORATION__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.COLLABORATION__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.COLLABORATION__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.COLLABORATION__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.COLLABORATION__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.COLLABORATION__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.COLLABORATION__PART : + return !getParts().isEmpty(); + case UMLPackage.COLLABORATION__ROLE : + return isSetRoles(); + case UMLPackage.COLLABORATION__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.COLLABORATION__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.COLLABORATION__COLLABORATION_ROLE : + List collaborationRole = (List) eVirtualGet(UMLPackage.COLLABORATION__COLLABORATION_ROLE); + return collaborationRole != null + && !collaborationRole.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == StructuredClassifier.class) { + switch (derivedFeatureID) { + case UMLPackage.COLLABORATION__OWNED_ATTRIBUTE : + return UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE; + case UMLPackage.COLLABORATION__PART : + return UMLPackage.STRUCTURED_CLASSIFIER__PART; + case UMLPackage.COLLABORATION__ROLE : + return UMLPackage.STRUCTURED_CLASSIFIER__ROLE; + case UMLPackage.COLLABORATION__OWNED_CONNECTOR : + return UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == StructuredClassifier.class) { + switch (baseFeatureID) { + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE : + return UMLPackage.COLLABORATION__OWNED_ATTRIBUTE; + case UMLPackage.STRUCTURED_CLASSIFIER__PART : + return UMLPackage.COLLABORATION__PART; + case UMLPackage.STRUCTURED_CLASSIFIER__ROLE : + return UMLPackage.COLLABORATION__ROLE; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR : + return UMLPackage.COLLABORATION__OWNED_CONNECTOR; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetRoles() { + return eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()) + || eIsSet(UMLPackage.eINSTANCE.getCollaboration_CollaborationRole()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()) + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return super.isSetMembers() || isSetRoles(); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()); + } + +} //CollaborationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java new file mode 100644 index 00000000..71d30ecf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java @@ -0,0 +1,436 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CollaborationUseImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Collaboration; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CollaborationUseOperations; + +/** + * + * An implementation of the model object 'Collaboration Use'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl#getRoleBindings Role Binding}
  • + *
+ *

+ * + * @generated + */ +public class CollaborationUseImpl + extends NamedElementImpl + implements CollaborationUse { + + /** + * + * + * @generated + */ + protected CollaborationUseImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCollaborationUse(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.COLLABORATION_USE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet( + UMLPackage.COLLABORATION_USE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.COLLABORATION_USE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getCollaborationUse_RoleBinding()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Collaboration getType() { + Collaboration type = (Collaboration) eVirtualGet(UMLPackage.COLLABORATION_USE__TYPE); + if (type != null && type.eIsProxy()) { + Collaboration oldType = type; + type = (Collaboration) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.COLLABORATION_USE__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.COLLABORATION_USE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Collaboration basicGetType() { + return (Collaboration) eVirtualGet(UMLPackage.COLLABORATION_USE__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Collaboration newType) { + Collaboration type = newType; + Object oldType = eVirtualSet(UMLPackage.COLLABORATION_USE__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.COLLABORATION_USE__TYPE, + oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public List getRoleBindings() { + List roleBinding = (List) eVirtualGet(UMLPackage.COLLABORATION_USE__ROLE_BINDING); + if (roleBinding == null) { + eVirtualSet(UMLPackage.COLLABORATION_USE__ROLE_BINDING, + roleBinding = new EObjectContainmentEList(Dependency.class, + this, UMLPackage.COLLABORATION_USE__ROLE_BINDING)); + } + return roleBinding; + } + + /** + * + * + * @generated + */ + public Dependency createRoleBinding(EClass eClass) { + Dependency newRoleBinding = (Dependency) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getRoleBindings().add(newRoleBinding); + return newRoleBinding; + } + + /** + * + * + * @generated + */ + public Dependency createRoleBinding() { + Dependency newRoleBinding = UMLFactory.eINSTANCE.createDependency(); + getRoleBindings().add(newRoleBinding); + return newRoleBinding; + } + + /** + * + * + * @generated + */ + public Dependency getRoleBinding(String name) { + for (Iterator i = getRoleBindings().iterator(); i.hasNext();) { + Dependency roleBinding = (Dependency) i.next(); + if (name.equals(roleBinding.getName())) { + return roleBinding; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateClientElements(DiagnosticChain diagnostics, + Map context) { + return CollaborationUseOperations.validateClientElements(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateEveryRole(DiagnosticChain diagnostics, Map context) { + return CollaborationUseOperations.validateEveryRole(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateConnectors(DiagnosticChain diagnostics, Map context) { + return CollaborationUseOperations.validateConnectors(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COLLABORATION_USE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION_USE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.COLLABORATION_USE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COLLABORATION_USE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.COLLABORATION_USE__ROLE_BINDING : + return ((InternalEList) getRoleBindings()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION_USE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.COLLABORATION_USE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.COLLABORATION_USE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.COLLABORATION_USE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.COLLABORATION_USE__NAME : + return getName(); + case UMLPackage.COLLABORATION_USE__VISIBILITY : + return getVisibility(); + case UMLPackage.COLLABORATION_USE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.COLLABORATION_USE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.COLLABORATION_USE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.COLLABORATION_USE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.COLLABORATION_USE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.COLLABORATION_USE__ROLE_BINDING : + return getRoleBindings(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION_USE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION_USE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION_USE__NAME : + setName((String) newValue); + return; + case UMLPackage.COLLABORATION_USE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.COLLABORATION_USE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.COLLABORATION_USE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.COLLABORATION_USE__TYPE : + setType((Collaboration) newValue); + return; + case UMLPackage.COLLABORATION_USE__ROLE_BINDING : + getRoleBindings().clear(); + getRoleBindings().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION_USE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.COLLABORATION_USE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.COLLABORATION_USE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.COLLABORATION_USE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.COLLABORATION_USE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.COLLABORATION_USE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.COLLABORATION_USE__TYPE : + setType((Collaboration) null); + return; + case UMLPackage.COLLABORATION_USE__ROLE_BINDING : + getRoleBindings().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COLLABORATION_USE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.COLLABORATION_USE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.COLLABORATION_USE__OWNER : + return isSetOwner(); + case UMLPackage.COLLABORATION_USE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.COLLABORATION_USE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.COLLABORATION_USE__NAME : + String name = eVirtualIsSet(UMLPackage.COLLABORATION_USE__NAME) + ? (String) eVirtualGet(UMLPackage.COLLABORATION_USE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.COLLABORATION_USE__VISIBILITY : + return eVirtualIsSet(UMLPackage.COLLABORATION_USE__VISIBILITY) + && eVirtualGet(UMLPackage.COLLABORATION_USE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.COLLABORATION_USE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.COLLABORATION_USE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.COLLABORATION_USE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.COLLABORATION_USE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.COLLABORATION_USE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.COLLABORATION_USE__NAME_EXPRESSION) != null; + case UMLPackage.COLLABORATION_USE__TYPE : + return eVirtualGet(UMLPackage.COLLABORATION_USE__TYPE) != null; + case UMLPackage.COLLABORATION_USE__ROLE_BINDING : + List roleBinding = (List) eVirtualGet(UMLPackage.COLLABORATION_USE__ROLE_BINDING); + return roleBinding != null && !roleBinding.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getCollaborationUse_RoleBinding()); + } + +} //CollaborationUseImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java new file mode 100644 index 00000000..08703dda --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java @@ -0,0 +1,573 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CombinedFragmentImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.CombinedFragment; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionOperatorKind; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CombinedFragmentOperations; + +/** + * + * An implementation of the model object 'Combined Fragment'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getInteractionOperator Interaction Operator}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getOperands Operand}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getCfragmentGates Cfragment Gate}
  • + *
+ *

+ * + * @generated + */ +public class CombinedFragmentImpl + extends InteractionFragmentImpl + implements CombinedFragment { + + /** + * The default value of the '{@link #getInteractionOperator() Interaction Operator}' attribute. + * + * + * @see #getInteractionOperator() + * @generated + * @ordered + */ + protected static final InteractionOperatorKind INTERACTION_OPERATOR_EDEFAULT = InteractionOperatorKind.SEQ_LITERAL; + + /** + * + * + * @generated + */ + protected CombinedFragmentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCombinedFragment(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.COMBINED_FRAGMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.COMBINED_FRAGMENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering(), + UMLPackage.eINSTANCE.getCombinedFragment_Operand(), + UMLPackage.eINSTANCE + .getCombinedFragment_CfragmentGate()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public InteractionOperatorKind getInteractionOperator() { + InteractionOperatorKind interactionOperator = (InteractionOperatorKind) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR); + return interactionOperator == null + ? INTERACTION_OPERATOR_EDEFAULT + : interactionOperator; + } + + /** + * + * + * @generated + */ + public void setInteractionOperator( + InteractionOperatorKind newInteractionOperator) { + InteractionOperatorKind interactionOperator = newInteractionOperator == null + ? INTERACTION_OPERATOR_EDEFAULT + : newInteractionOperator; + Object oldInteractionOperator = eVirtualSet( + UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR, + interactionOperator); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR, + oldInteractionOperator == EVIRTUAL_NO_VALUE + ? INTERACTION_OPERATOR_EDEFAULT + : oldInteractionOperator, interactionOperator)); + + } + + /** + * + * + * @generated + */ + public List getOperands() { + List operand = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__OPERAND); + if (operand == null) { + eVirtualSet(UMLPackage.COMBINED_FRAGMENT__OPERAND, + operand = new EObjectContainmentEList(InteractionOperand.class, + this, UMLPackage.COMBINED_FRAGMENT__OPERAND)); + } + return operand; + } + + /** + * + * + * @generated + */ + public InteractionOperand createOperand() { + InteractionOperand newOperand = UMLFactory.eINSTANCE + .createInteractionOperand(); + getOperands().add(newOperand); + return newOperand; + } + + /** + * + * + * @generated + */ + public InteractionOperand getOperand(String name) { + for (Iterator i = getOperands().iterator(); i.hasNext();) { + InteractionOperand operand = (InteractionOperand) i.next(); + if (name.equals(operand.getName())) { + return operand; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getCfragmentGates() { + List cfragmentGate = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE); + if (cfragmentGate == null) { + eVirtualSet(UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE, + cfragmentGate = new EObjectContainmentEList(Gate.class, this, + UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE)); + } + return cfragmentGate; + } + + /** + * + * + * @generated + */ + public Gate createCfragmentGate() { + Gate newCfragmentGate = UMLFactory.eINSTANCE.createGate(); + getCfragmentGates().add(newCfragmentGate); + return newCfragmentGate; + } + + /** + * + * + * @generated + */ + public Gate getCfragmentGate(String name) { + for (Iterator i = getCfragmentGates().iterator(); i.hasNext();) { + Gate cfragmentGate = (Gate) i.next(); + if (name.equals(cfragmentGate.getName())) { + return cfragmentGate; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateOptLoopBreakNeg(DiagnosticChain diagnostics, + Map context) { + return CombinedFragmentOperations.validateOptLoopBreakNeg(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMinintAndMaxint(DiagnosticChain diagnostics, + Map context) { + return CombinedFragmentOperations.validateMinintAndMaxint(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBreak(DiagnosticChain diagnostics, Map context) { + return CombinedFragmentOperations.validateBreak(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateConsiderAndIgnore(DiagnosticChain diagnostics, + Map context) { + return CombinedFragmentOperations.validateConsiderAndIgnore(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COMBINED_FRAGMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMBINED_FRAGMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMBINED_FRAGMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COMBINED_FRAGMENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.COMBINED_FRAGMENT__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMBINED_FRAGMENT__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_INTERACTION : + return eBasicSetContainer(null, + UMLPackage.COMBINED_FRAGMENT__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.COMBINED_FRAGMENT__ENCLOSING_OPERAND, msgs); + case UMLPackage.COMBINED_FRAGMENT__OPERAND : + return ((InternalEList) getOperands()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE : + return ((InternalEList) getCfragmentGates()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMBINED_FRAGMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.COMBINED_FRAGMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.COMBINED_FRAGMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.COMBINED_FRAGMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.COMBINED_FRAGMENT__NAME : + return getName(); + case UMLPackage.COMBINED_FRAGMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.COMBINED_FRAGMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.COMBINED_FRAGMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.COMBINED_FRAGMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.COMBINED_FRAGMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.COMBINED_FRAGMENT__COVERED : + return getCovereds(); + case UMLPackage.COMBINED_FRAGMENT__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR : + return getInteractionOperator(); + case UMLPackage.COMBINED_FRAGMENT__OPERAND : + return getOperands(); + case UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE : + return getCfragmentGates(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMBINED_FRAGMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR : + setInteractionOperator((InteractionOperatorKind) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__OPERAND : + getOperands().clear(); + getOperands().addAll((Collection) newValue); + return; + case UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE : + getCfragmentGates().clear(); + getCfragmentGates().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMBINED_FRAGMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.COMBINED_FRAGMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.COMBINED_FRAGMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.COMBINED_FRAGMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.COMBINED_FRAGMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.COMBINED_FRAGMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.COMBINED_FRAGMENT__COVERED : + getCovereds().clear(); + return; + case UMLPackage.COMBINED_FRAGMENT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR : + setInteractionOperator(INTERACTION_OPERATOR_EDEFAULT); + return; + case UMLPackage.COMBINED_FRAGMENT__OPERAND : + getOperands().clear(); + return; + case UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE : + getCfragmentGates().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMBINED_FRAGMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.COMBINED_FRAGMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.COMBINED_FRAGMENT__OWNER : + return isSetOwner(); + case UMLPackage.COMBINED_FRAGMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.COMBINED_FRAGMENT__NAME : + String name = eVirtualIsSet(UMLPackage.COMBINED_FRAGMENT__NAME) + ? (String) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.COMBINED_FRAGMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.COMBINED_FRAGMENT__VISIBILITY) + && eVirtualGet(UMLPackage.COMBINED_FRAGMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.COMBINED_FRAGMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.COMBINED_FRAGMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.COMBINED_FRAGMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.COMBINED_FRAGMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.COMBINED_FRAGMENT__NAME_EXPRESSION) != null; + case UMLPackage.COMBINED_FRAGMENT__COVERED : + List covered = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.COMBINED_FRAGMENT__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.COMBINED_FRAGMENT__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR : + return eVirtualIsSet(UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR) + && eVirtualGet(UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR) != INTERACTION_OPERATOR_EDEFAULT; + case UMLPackage.COMBINED_FRAGMENT__OPERAND : + List operand = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__OPERAND); + return operand != null && !operand.isEmpty(); + case UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE : + List cfragmentGate = (List) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__CFRAGMENT_GATE); + return cfragmentGate != null && !cfragmentGate.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (interactionOperator: "); //$NON-NLS-1$ + result + .append(eVirtualIsSet(UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR) + ? eVirtualGet(UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR) + : INTERACTION_OPERATOR_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getCombinedFragment_Operand()) + || eIsSet(UMLPackage.eINSTANCE.getCombinedFragment_CfragmentGate()); + } + +} //CombinedFragmentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommentImpl.java new file mode 100644 index 00000000..65a5d15e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommentImpl.java @@ -0,0 +1,245 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CommentImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Comment'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CommentImpl#getBody Body}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CommentImpl#getAnnotatedElements Annotated Element}
  • + *
+ *

+ * + * @generated + */ +public class CommentImpl + extends ElementImpl + implements Comment { + + /** + * The default value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected static final String BODY_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected CommentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getComment(); + } + + /** + * + * + * @generated + */ + public String getBody() { + String body = (String) eVirtualGet(UMLPackage.COMMENT__BODY); + return body == null + ? BODY_EDEFAULT + : body; + } + + /** + * + * + * @generated + */ + public void setBody(String newBody) { + newBody = newBody == null + ? BODY_EDEFAULT + : newBody; + String body = newBody; + Object oldBody = eVirtualSet(UMLPackage.COMMENT__BODY, body); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.COMMENT__BODY, oldBody == EVIRTUAL_NO_VALUE + ? BODY_EDEFAULT + : oldBody, body)); + + } + + /** + * + * + * @generated + */ + public List getAnnotatedElements() { + List annotatedElement = (List) eVirtualGet(UMLPackage.COMMENT__ANNOTATED_ELEMENT); + if (annotatedElement == null) { + eVirtualSet(UMLPackage.COMMENT__ANNOTATED_ELEMENT, + annotatedElement = new EObjectResolvingEList(Element.class, + this, UMLPackage.COMMENT__ANNOTATED_ELEMENT)); + } + return annotatedElement; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.COMMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.COMMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.COMMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.COMMENT__BODY : + return getBody(); + case UMLPackage.COMMENT__ANNOTATED_ELEMENT : + return getAnnotatedElements(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.COMMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.COMMENT__BODY : + setBody((String) newValue); + return; + case UMLPackage.COMMENT__ANNOTATED_ELEMENT : + getAnnotatedElements().clear(); + getAnnotatedElements().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.COMMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.COMMENT__BODY : + setBody(BODY_EDEFAULT); + return; + case UMLPackage.COMMENT__ANNOTATED_ELEMENT : + getAnnotatedElements().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.COMMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.COMMENT__OWNER : + return isSetOwner(); + case UMLPackage.COMMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.COMMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.COMMENT__BODY : + String body = eVirtualIsSet(UMLPackage.COMMENT__BODY) + ? (String) eVirtualGet(UMLPackage.COMMENT__BODY) + : BODY_EDEFAULT; + return BODY_EDEFAULT == null + ? body != null + : !BODY_EDEFAULT.equals(body); + case UMLPackage.COMMENT__ANNOTATED_ELEMENT : + List annotatedElement = (List) eVirtualGet(UMLPackage.COMMENT__ANNOTATED_ELEMENT); + return annotatedElement != null && !annotatedElement.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (body: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.COMMENT__BODY) + ? eVirtualGet(UMLPackage.COMMENT__BODY) + : BODY_EDEFAULT); + result.append(')'); + return result.toString(); + } + +} //CommentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java new file mode 100644 index 00000000..4b8787ea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CommunicationPathImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.CommunicationPath; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.CommunicationPathOperations; + +/** + * + * An implementation of the model object 'Communication Path'. + * + *

+ *

+ * + * @generated + */ +public class CommunicationPathImpl + extends AssociationImpl + implements CommunicationPath { + + /** + * + * + * @generated + */ + protected CommunicationPathImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCommunicationPath(); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationEnds(DiagnosticChain diagnostics, + Map context) { + return CommunicationPathOperations.validateAssociationEnds(this, + diagnostics, context); + } + +} //CommunicationPathImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java new file mode 100644 index 00000000..e741d036 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java @@ -0,0 +1,1212 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ComponentImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.ComponentRealization; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ComponentOperations; + +/** + * + * An implementation of the model object 'Component'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#isIndirectlyInstantiated Is Indirectly Instantiated}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getRequireds Required}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getProvideds Provided}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getPackagedElements Packaged Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getRealizations Realization}
  • + *
+ *

+ * + * @generated + */ +public class ComponentImpl + extends ClassImpl + implements Component { + + /** + * The default value of the '{@link #isIndirectlyInstantiated() Is Indirectly Instantiated}' attribute. + * + * + * @see #isIndirectlyInstantiated() + * @generated + * @ordered + */ + protected static final boolean IS_INDIRECTLY_INSTANTIATED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isIndirectlyInstantiated() Is Indirectly Instantiated}' attribute. + * + * + * @see #isIndirectlyInstantiated() + * @generated + * @ordered + */ + protected static final int IS_INDIRECTLY_INSTANTIATED_EFLAG = 1 << 11; + + /** + * + * + * @generated + */ + protected ComponentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getComponent(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.COMPONENT__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.COMPONENT__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getComponent_PackagedElement()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.COMPONENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.COMPONENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization(), + UMLPackage.eINSTANCE.getComponent_Realization()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isIndirectlyInstantiated() { + return (eFlags & IS_INDIRECTLY_INSTANTIATED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsIndirectlyInstantiated(boolean newIsIndirectlyInstantiated) { + boolean oldIsIndirectlyInstantiated = (eFlags & IS_INDIRECTLY_INSTANTIATED_EFLAG) != 0; + if (newIsIndirectlyInstantiated) + eFlags |= IS_INDIRECTLY_INSTANTIATED_EFLAG; + else + eFlags &= ~IS_INDIRECTLY_INSTANTIATED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.COMPONENT__IS_INDIRECTLY_INSTANTIATED, + oldIsIndirectlyInstantiated, newIsIndirectlyInstantiated)); + + } + + /** + * + * + * @generated + */ + public List getRequireds() { + // TODO: implement this method to return the 'Required' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Interface getRequired(String name) { + for (Iterator i = getRequireds().iterator(); i.hasNext();) { + Interface required = (Interface) i.next(); + if (name.equals(required.getName())) { + return required; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getProvideds() { + // TODO: implement this method to return the 'Provided' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Interface getProvided(String name) { + for (Iterator i = getProvideds().iterator(); i.hasNext();) { + Interface provided = (Interface) i.next(); + if (name.equals(provided.getName())) { + return provided; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getPackagedElements() { + List packagedElement = (List) eVirtualGet(UMLPackage.COMPONENT__PACKAGED_ELEMENT); + if (packagedElement == null) { + eVirtualSet(UMLPackage.COMPONENT__PACKAGED_ELEMENT, + packagedElement = new EObjectContainmentEList( + PackageableElement.class, this, + UMLPackage.COMPONENT__PACKAGED_ELEMENT)); + } + return packagedElement; + } + + /** + * + * + * @generated + */ + public PackageableElement createPackagedElement(EClass eClass) { + PackageableElement newPackagedElement = (PackageableElement) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getPackagedElements().add(newPackagedElement); + return newPackagedElement; + } + + /** + * + * + * @generated + */ + public PackageableElement getPackagedElement(String name) { + for (Iterator i = getPackagedElements().iterator(); i.hasNext();) { + PackageableElement packagedElement = (PackageableElement) i.next(); + if (name.equals(packagedElement.getName())) { + return packagedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRealizations() { + List realization = (List) eVirtualGet(UMLPackage.COMPONENT__REALIZATION); + if (realization == null) { + eVirtualSet(UMLPackage.COMPONENT__REALIZATION, + realization = new EObjectContainmentWithInverseEList( + ComponentRealization.class, this, + UMLPackage.COMPONENT__REALIZATION, + UMLPackage.COMPONENT_REALIZATION__ABSTRACTION)); + } + return realization; + } + + /** + * + * + * @generated + */ + public ComponentRealization createRealization() { + ComponentRealization newRealization = UMLFactory.eINSTANCE + .createComponentRealization(); + getRealizations().add(newRealization); + return newRealization; + } + + /** + * + * + * @generated + */ + public ComponentRealization getRealization(String name) { + for (Iterator i = getRealizations().iterator(); i.hasNext();) { + ComponentRealization realization = (ComponentRealization) i.next(); + if (name.equals(realization.getName())) { + return realization; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List realizedInterfaces() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getComponent().getEOperations().get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getComponent().getEOperations().get(0), + result = ComponentOperations.realizedInterfaces(this)); + } + return result; + } + return ComponentOperations.realizedInterfaces(this); + } + + /** + * + * + * @generated + */ + public List usedInterfaces() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getComponent().getEOperations().get(1)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getComponent().getEOperations().get(1), + result = ComponentOperations.usedInterfaces(this)); + } + return result; + } + return ComponentOperations.usedInterfaces(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COMPONENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.COMPONENT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.COMPONENT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.COMPONENT__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.COMPONENT__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.COMPONENT__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.COMPONENT__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.COMPONENT__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.COMPONENT__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT__REALIZATION : + return ((InternalEList) getRealizations()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COMPONENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COMPONENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.COMPONENT__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.COMPONENT__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.COMPONENT__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.COMPONENT__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COMPONENT__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__PACKAGED_ELEMENT : + return ((InternalEList) getPackagedElements()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT__REALIZATION : + return ((InternalEList) getRealizations()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.COMPONENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.COMPONENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.COMPONENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.COMPONENT__NAME : + return getName(); + case UMLPackage.COMPONENT__VISIBILITY : + return getVisibility(); + case UMLPackage.COMPONENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.COMPONENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.COMPONENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.COMPONENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.COMPONENT__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.COMPONENT__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.COMPONENT__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.COMPONENT__MEMBER : + return getMembers(); + case UMLPackage.COMPONENT__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.COMPONENT__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.COMPONENT__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.COMPONENT__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.COMPONENT__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.COMPONENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.COMPONENT__PACKAGE : + return getPackage(); + case UMLPackage.COMPONENT__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.COMPONENT__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.COMPONENT__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.COMPONENT__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.COMPONENT__FEATURE : + return getFeatures(); + case UMLPackage.COMPONENT__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.COMPONENT__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.COMPONENT__GENERAL : + return getGenerals(); + case UMLPackage.COMPONENT__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.COMPONENT__USE_CASE : + return getUseCases(); + case UMLPackage.COMPONENT__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.COMPONENT__ATTRIBUTE : + return getAttributes(); + case UMLPackage.COMPONENT__REPRESENTATION : + return getRepresentation(); + case UMLPackage.COMPONENT__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.COMPONENT__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.COMPONENT__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.COMPONENT__PART : + return getParts(); + case UMLPackage.COMPONENT__ROLE : + return getRoles(); + case UMLPackage.COMPONENT__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.COMPONENT__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.COMPONENT__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.COMPONENT__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.COMPONENT__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.COMPONENT__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.COMPONENT__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.COMPONENT__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.COMPONENT__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.COMPONENT__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.COMPONENT__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.COMPONENT__EXTENSION : + return getExtensions(); + case UMLPackage.COMPONENT__IS_INDIRECTLY_INSTANTIATED : + return isIndirectlyInstantiated() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.COMPONENT__REQUIRED : + return getRequireds(); + case UMLPackage.COMPONENT__PROVIDED : + return getProvideds(); + case UMLPackage.COMPONENT__PACKAGED_ELEMENT : + return getPackagedElements(); + case UMLPackage.COMPONENT__REALIZATION : + return getRealizations(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__NAME : + setName((String) newValue); + return; + case UMLPackage.COMPONENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.COMPONENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.COMPONENT__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.COMPONENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.COMPONENT__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.COMPONENT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.COMPONENT__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.COMPONENT__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.COMPONENT__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.COMPONENT__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.COMPONENT__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.COMPONENT__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__IS_INDIRECTLY_INSTANTIATED : + setIsIndirectlyInstantiated(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.COMPONENT__PACKAGED_ELEMENT : + getPackagedElements().clear(); + getPackagedElements().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT__REALIZATION : + getRealizations().clear(); + getRealizations().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.COMPONENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.COMPONENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.COMPONENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.COMPONENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.COMPONENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.COMPONENT__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.COMPONENT__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.COMPONENT__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.COMPONENT__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.COMPONENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.COMPONENT__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.COMPONENT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.COMPONENT__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.COMPONENT__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.COMPONENT__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.COMPONENT__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.COMPONENT__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.COMPONENT__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.COMPONENT__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.COMPONENT__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.COMPONENT__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.COMPONENT__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.COMPONENT__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.COMPONENT__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.COMPONENT__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.COMPONENT__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.COMPONENT__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.COMPONENT__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.COMPONENT__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.COMPONENT__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.COMPONENT__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.COMPONENT__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.COMPONENT__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.COMPONENT__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.COMPONENT__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.COMPONENT__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.COMPONENT__IS_INDIRECTLY_INSTANTIATED : + setIsIndirectlyInstantiated(IS_INDIRECTLY_INSTANTIATED_EDEFAULT); + return; + case UMLPackage.COMPONENT__PACKAGED_ELEMENT : + getPackagedElements().clear(); + return; + case UMLPackage.COMPONENT__REALIZATION : + getRealizations().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.COMPONENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.COMPONENT__OWNER : + return isSetOwner(); + case UMLPackage.COMPONENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.COMPONENT__NAME : + String name = eVirtualIsSet(UMLPackage.COMPONENT__NAME) + ? (String) eVirtualGet(UMLPackage.COMPONENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.COMPONENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.COMPONENT__VISIBILITY) + && eVirtualGet(UMLPackage.COMPONENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.COMPONENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.COMPONENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.COMPONENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.COMPONENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.COMPONENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.COMPONENT__NAME_EXPRESSION) != null; + case UMLPackage.COMPONENT__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.COMPONENT__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.COMPONENT__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.COMPONENT__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.COMPONENT__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.COMPONENT__MEMBER : + return isSetMembers(); + case UMLPackage.COMPONENT__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.COMPONENT__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.COMPONENT__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.COMPONENT__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.COMPONENT__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.COMPONENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.COMPONENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.COMPONENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.COMPONENT__PACKAGE : + return getPackage() != null; + case UMLPackage.COMPONENT__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.COMPONENT__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.COMPONENT__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.COMPONENT__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.COMPONENT__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.COMPONENT__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.COMPONENT__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.COMPONENT__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.COMPONENT__FEATURE : + return isSetFeatures(); + case UMLPackage.COMPONENT__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.COMPONENT__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.COMPONENT__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.COMPONENT__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.COMPONENT__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.COMPONENT__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.COMPONENT__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.COMPONENT__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.COMPONENT__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.COMPONENT__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.COMPONENT__REPRESENTATION : + return eVirtualGet(UMLPackage.COMPONENT__REPRESENTATION) != null; + case UMLPackage.COMPONENT__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.COMPONENT__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.COMPONENT__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.COMPONENT__OWNED_SIGNATURE) != null; + case UMLPackage.COMPONENT__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.COMPONENT__PART : + return !getParts().isEmpty(); + case UMLPackage.COMPONENT__ROLE : + return isSetRoles(); + case UMLPackage.COMPONENT__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.COMPONENT__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.COMPONENT__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.COMPONENT__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.COMPONENT__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.COMPONENT__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.COMPONENT__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.COMPONENT__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.COMPONENT__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.COMPONENT__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.COMPONENT__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.COMPONENT__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.COMPONENT__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.COMPONENT__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.COMPONENT__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.COMPONENT__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.COMPONENT__IS_INDIRECTLY_INSTANTIATED : + return ((eFlags & IS_INDIRECTLY_INSTANTIATED_EFLAG) != 0) != IS_INDIRECTLY_INSTANTIATED_EDEFAULT; + case UMLPackage.COMPONENT__REQUIRED : + return !getRequireds().isEmpty(); + case UMLPackage.COMPONENT__PROVIDED : + return !getProvideds().isEmpty(); + case UMLPackage.COMPONENT__PACKAGED_ELEMENT : + List packagedElement = (List) eVirtualGet(UMLPackage.COMPONENT__PACKAGED_ELEMENT); + return packagedElement != null && !packagedElement.isEmpty(); + case UMLPackage.COMPONENT__REALIZATION : + List realization = (List) eVirtualGet(UMLPackage.COMPONENT__REALIZATION); + return realization != null && !realization.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isIndirectlyInstantiated: "); //$NON-NLS-1$ + result.append((eFlags & IS_INDIRECTLY_INSTANTIATED_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getComponent_PackagedElement()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getComponent_Realization()); + } + +} //ComponentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentRealizationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentRealizationImpl.java new file mode 100644 index 00000000..7f57fe4a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentRealizationImpl.java @@ -0,0 +1,651 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ComponentRealizationImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.ComponentRealization; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Component Realization'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getClients Client}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getAbstraction Abstraction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getRealizingClassifier Realizing Classifier}
  • + *
+ *

+ * + * @generated + */ +public class ComponentRealizationImpl + extends RealizationImpl + implements ComponentRealization { + + /** + * + * + * @generated + */ + protected ComponentRealizationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getComponentRealization(); + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.COMPONENT_REALIZATION__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.COMPONENT_REALIZATION__SOURCE, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Client(), + UMLPackage.eINSTANCE + .getComponentRealization_Abstraction()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.COMPONENT_REALIZATION__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.COMPONENT_REALIZATION__TARGET, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Supplier(), + UMLPackage.eINSTANCE + .getComponentRealization_RealizingClassifier()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getClients() { + List client = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__CLIENT); + if (client == null) { + eVirtualSet( + UMLPackage.COMPONENT_REALIZATION__CLIENT, + client = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + NamedElement.class, this, + UMLPackage.COMPONENT_REALIZATION__CLIENT, + new int[]{UMLPackage.COMPONENT_REALIZATION__ABSTRACTION}, + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY)); + } + return client; + } + + /** + * + * + * @generated + */ + public List getSuppliers() { + List supplier = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__SUPPLIER); + if (supplier == null) { + eVirtualSet( + UMLPackage.COMPONENT_REALIZATION__SUPPLIER, + supplier = new SupersetEObjectResolvingEList( + NamedElement.class, + this, + UMLPackage.COMPONENT_REALIZATION__SUPPLIER, + new int[]{UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER})); + } + return supplier; + } + + /** + * + * + * @generated + */ + public Component getAbstraction() { + if (eContainerFeatureID != UMLPackage.COMPONENT_REALIZATION__ABSTRACTION) + return null; + return (Component) eContainer; + } + + /** + * + * + * @generated + */ + public void setAbstraction(Component newAbstraction) { + if (newAbstraction != null && !getClients().contains(newAbstraction)) { + getClients().add(newAbstraction); + } + if (newAbstraction != eContainer + || (eContainerFeatureID != UMLPackage.COMPONENT_REALIZATION__ABSTRACTION && newAbstraction != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newAbstraction)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newAbstraction != null) + msgs = ((InternalEObject) newAbstraction).eInverseAdd(this, + UMLPackage.COMPONENT__REALIZATION, Component.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newAbstraction, + UMLPackage.COMPONENT_REALIZATION__ABSTRACTION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.COMPONENT_REALIZATION__ABSTRACTION, newAbstraction, + newAbstraction)); + + } + + /** + * + * + * @generated + */ + public Classifier getRealizingClassifier() { + Classifier realizingClassifier = (Classifier) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER); + if (realizingClassifier != null && realizingClassifier.eIsProxy()) { + Classifier oldRealizingClassifier = realizingClassifier; + realizingClassifier = (Classifier) eResolveProxy((InternalEObject) realizingClassifier); + if (realizingClassifier != oldRealizingClassifier) { + eVirtualSet( + UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER, + realizingClassifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER, + oldRealizingClassifier, realizingClassifier)); + } + } + return realizingClassifier; + } + + /** + * + * + * @generated + */ + public Classifier basicGetRealizingClassifier() { + return (Classifier) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER); + } + + /** + * + * + * @generated + */ + public void setRealizingClassifier(Classifier newRealizingClassifier) { + if (newRealizingClassifier != null + && !getSuppliers().contains(newRealizingClassifier)) { + getSuppliers().add(newRealizingClassifier); + } + Classifier realizingClassifier = newRealizingClassifier; + Object oldRealizingClassifier = eVirtualSet( + UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER, + realizingClassifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER, + oldRealizingClassifier == EVIRTUAL_NO_VALUE + ? null + : oldRealizingClassifier, realizingClassifier)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COMPONENT_REALIZATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.COMPONENT_REALIZATION__CLIENT : + return ((InternalEList) getClients()).basicAdd(otherEnd, + msgs); + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.COMPONENT_REALIZATION__ABSTRACTION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.COMPONENT_REALIZATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT_REALIZATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.COMPONENT_REALIZATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.COMPONENT_REALIZATION__CLIENT : + return ((InternalEList) getClients()).basicRemove(otherEnd, + msgs); + case UMLPackage.COMPONENT_REALIZATION__MAPPING : + return basicSetMapping(null, msgs); + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + return eBasicSetContainer(null, + UMLPackage.COMPONENT_REALIZATION__ABSTRACTION, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + return eContainer.eInverseRemove(this, + UMLPackage.COMPONENT__REALIZATION, Component.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT_REALIZATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.COMPONENT_REALIZATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.COMPONENT_REALIZATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.COMPONENT_REALIZATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.COMPONENT_REALIZATION__NAME : + return getName(); + case UMLPackage.COMPONENT_REALIZATION__VISIBILITY : + return getVisibility(); + case UMLPackage.COMPONENT_REALIZATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.COMPONENT_REALIZATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.COMPONENT_REALIZATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.COMPONENT_REALIZATION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.COMPONENT_REALIZATION__SOURCE : + return getSources(); + case UMLPackage.COMPONENT_REALIZATION__TARGET : + return getTargets(); + case UMLPackage.COMPONENT_REALIZATION__SUPPLIER : + return getSuppliers(); + case UMLPackage.COMPONENT_REALIZATION__CLIENT : + return getClients(); + case UMLPackage.COMPONENT_REALIZATION__MAPPING : + return getMapping(); + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + return getAbstraction(); + case UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER : + if (resolve) + return getRealizingClassifier(); + return basicGetRealizingClassifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT_REALIZATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__NAME : + setName((String) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__MAPPING : + setMapping((OpaqueExpression) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + setAbstraction((Component) newValue); + return; + case UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER : + setRealizingClassifier((Classifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT_REALIZATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.COMPONENT_REALIZATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.COMPONENT_REALIZATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.COMPONENT_REALIZATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.COMPONENT_REALIZATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.COMPONENT_REALIZATION__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.COMPONENT_REALIZATION__CLIENT : + getClients().clear(); + return; + case UMLPackage.COMPONENT_REALIZATION__MAPPING : + setMapping((OpaqueExpression) null); + return; + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + setAbstraction((Component) null); + return; + case UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER : + setRealizingClassifier((Classifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.COMPONENT_REALIZATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.COMPONENT_REALIZATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.COMPONENT_REALIZATION__OWNER : + return isSetOwner(); + case UMLPackage.COMPONENT_REALIZATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.COMPONENT_REALIZATION__NAME : + String name = eVirtualIsSet(UMLPackage.COMPONENT_REALIZATION__NAME) + ? (String) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.COMPONENT_REALIZATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.COMPONENT_REALIZATION__VISIBILITY) + && eVirtualGet(UMLPackage.COMPONENT_REALIZATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.COMPONENT_REALIZATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.COMPONENT_REALIZATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.COMPONENT_REALIZATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.COMPONENT_REALIZATION__NAME_EXPRESSION) != null; + case UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.COMPONENT_REALIZATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.COMPONENT_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.COMPONENT_REALIZATION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.COMPONENT_REALIZATION__SOURCE : + return isSetSources(); + case UMLPackage.COMPONENT_REALIZATION__TARGET : + return isSetTargets(); + case UMLPackage.COMPONENT_REALIZATION__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.COMPONENT_REALIZATION__CLIENT : + List client = (List) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__CLIENT); + return client != null && !client.isEmpty(); + case UMLPackage.COMPONENT_REALIZATION__MAPPING : + return eVirtualGet(UMLPackage.COMPONENT_REALIZATION__MAPPING) != null; + case UMLPackage.COMPONENT_REALIZATION__ABSTRACTION : + return getAbstraction() != null; + case UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER : + return eVirtualGet(UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE + .getComponentRealization_Abstraction()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Component abstraction = getAbstraction(); + if (abstraction != null) { + return abstraction; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getComponentRealization_Abstraction()); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE + .getComponentRealization_RealizingClassifier()); + } + +} //ComponentRealizationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java new file mode 100644 index 00000000..1734f7f2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java @@ -0,0 +1,890 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConditionalNodeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Clause; +import org.eclipse.uml2.uml.ConditionalNode; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ConditionalNodeOperations; + +/** + * + * An implementation of the model object 'Conditional Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#isDeterminate Is Determinate}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#isAssured Is Assured}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getClauses Clause}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getResults Result}
  • + *
+ *

+ * + * @generated + */ +public class ConditionalNodeImpl + extends StructuredActivityNodeImpl + implements ConditionalNode { + + /** + * The default value of the '{@link #isDeterminate() Is Determinate}' attribute. + * + * + * @see #isDeterminate() + * @generated + * @ordered + */ + protected static final boolean IS_DETERMINATE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDeterminate() Is Determinate}' attribute. + * + * + * @see #isDeterminate() + * @generated + * @ordered + */ + protected static final int IS_DETERMINATE_EFLAG = 1 << 10; + + /** + * The default value of the '{@link #isAssured() Is Assured}' attribute. + * + * + * @see #isAssured() + * @generated + * @ordered + */ + protected static final boolean IS_ASSURED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isAssured() Is Assured}' attribute. + * + * + * @see #isAssured() + * @generated + * @ordered + */ + protected static final int IS_ASSURED_EFLAG = 1 << 11; + + /** + * + * + * @generated + */ + protected ConditionalNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConditionalNode(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.CONDITIONAL_NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.CONDITIONAL_NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExecutableNode_Handler(), + UMLPackage.eINSTANCE.getAction_Output(), + UMLPackage.eINSTANCE.getAction_Input(), + UMLPackage.eINSTANCE.getAction_LocalPrecondition(), + UMLPackage.eINSTANCE.getAction_LocalPostcondition(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getActivityGroup_Subgroup(), + UMLPackage.eINSTANCE.getConditionalNode_Clause()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.CONDITIONAL_NODE__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.CONDITIONAL_NODE__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getConditionalNode_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public boolean isDeterminate() { + return (eFlags & IS_DETERMINATE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDeterminate(boolean newIsDeterminate) { + boolean oldIsDeterminate = (eFlags & IS_DETERMINATE_EFLAG) != 0; + if (newIsDeterminate) + eFlags |= IS_DETERMINATE_EFLAG; + else + eFlags &= ~IS_DETERMINATE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONDITIONAL_NODE__IS_DETERMINATE, oldIsDeterminate, + newIsDeterminate)); + + } + + /** + * + * + * @generated + */ + public boolean isAssured() { + return (eFlags & IS_ASSURED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsAssured(boolean newIsAssured) { + boolean oldIsAssured = (eFlags & IS_ASSURED_EFLAG) != 0; + if (newIsAssured) + eFlags |= IS_ASSURED_EFLAG; + else + eFlags &= ~IS_ASSURED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONDITIONAL_NODE__IS_ASSURED, oldIsAssured, + newIsAssured)); + + } + + /** + * + * + * @generated + */ + public List getClauses() { + List clause = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__CLAUSE); + if (clause == null) { + eVirtualSet(UMLPackage.CONDITIONAL_NODE__CLAUSE, + clause = new EObjectContainmentEList(Clause.class, this, + UMLPackage.CONDITIONAL_NODE__CLAUSE)); + } + return clause; + } + + /** + * + * + * @generated + */ + public Clause createClause() { + Clause newClause = UMLFactory.eINSTANCE.createClause(); + getClauses().add(newClause); + return newClause; + } + + /** + * + * + * @generated + */ + public List getResults() { + List result = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__RESULT); + if (result == null) { + eVirtualSet(UMLPackage.CONDITIONAL_NODE__RESULT, + result = new EObjectContainmentEList(OutputPin.class, this, + UMLPackage.CONDITIONAL_NODE__RESULT)); + } + return result; + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + getResults().add(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public OutputPin getResult(String name) { + for (Iterator i = getResults().iterator(); i.hasNext();) { + OutputPin result = (OutputPin) i.next(); + if (name.equals(result.getName())) { + return result; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateResultNoIncoming(DiagnosticChain diagnostics, + Map context) { + return ConditionalNodeOperations.validateResultNoIncoming(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONDITIONAL_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CONDITIONAL_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.CONDITIONAL_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CONDITIONAL_NODE__ACTIVITY, msgs); + case UMLPackage.CONDITIONAL_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY, msgs); + case UMLPackage.CONDITIONAL_NODE__VARIABLE : + return ((InternalEList) getVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONDITIONAL_NODE__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.CONDITIONAL_NODE__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + case UMLPackage.CONDITIONAL_NODE__CLAUSE : + return ((InternalEList) getClauses()).basicRemove(otherEnd, + msgs); + case UMLPackage.CONDITIONAL_NODE__RESULT : + return ((InternalEList) getResults()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONDITIONAL_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONDITIONAL_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONDITIONAL_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONDITIONAL_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONDITIONAL_NODE__NAME : + return getName(); + case UMLPackage.CONDITIONAL_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.CONDITIONAL_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONDITIONAL_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONDITIONAL_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONDITIONAL_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONDITIONAL_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CONDITIONAL_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CONDITIONAL_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.CONDITIONAL_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.CONDITIONAL_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CONDITIONAL_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.CONDITIONAL_NODE__INCOMING : + return getIncomings(); + case UMLPackage.CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CONDITIONAL_NODE__HANDLER : + return getHandlers(); + case UMLPackage.CONDITIONAL_NODE__OUTPUT : + return getOutputs(); + case UMLPackage.CONDITIONAL_NODE__INPUT : + return getInputs(); + case UMLPackage.CONDITIONAL_NODE__CONTEXT : + return getContext(); + case UMLPackage.CONDITIONAL_NODE__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CONDITIONAL_NODE__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CONDITIONAL_NODE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.CONDITIONAL_NODE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.CONDITIONAL_NODE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.CONDITIONAL_NODE__MEMBER : + return getMembers(); + case UMLPackage.CONDITIONAL_NODE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.CONDITIONAL_NODE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.CONDITIONAL_NODE__SUBGROUP : + return getSubgroups(); + case UMLPackage.CONDITIONAL_NODE__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.CONDITIONAL_NODE__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.CONDITIONAL_NODE__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.CONDITIONAL_NODE__VARIABLE : + return getVariables(); + case UMLPackage.CONDITIONAL_NODE__NODE : + return getNodes(); + case UMLPackage.CONDITIONAL_NODE__MUST_ISOLATE : + return isMustIsolate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONDITIONAL_NODE__EDGE : + return getEdges(); + case UMLPackage.CONDITIONAL_NODE__IS_DETERMINATE : + return isDeterminate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONDITIONAL_NODE__IS_ASSURED : + return isAssured() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONDITIONAL_NODE__CLAUSE : + return getClauses(); + case UMLPackage.CONDITIONAL_NODE__RESULT : + return getResults(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONDITIONAL_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONDITIONAL_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__VARIABLE : + getVariables().clear(); + getVariables().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__MUST_ISOLATE : + setMustIsolate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONDITIONAL_NODE__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__IS_DETERMINATE : + setIsDeterminate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONDITIONAL_NODE__IS_ASSURED : + setIsAssured(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONDITIONAL_NODE__CLAUSE : + getClauses().clear(); + getClauses().addAll((Collection) newValue); + return; + case UMLPackage.CONDITIONAL_NODE__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONDITIONAL_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONDITIONAL_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONDITIONAL_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONDITIONAL_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CONDITIONAL_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CONDITIONAL_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CONDITIONAL_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.CONDITIONAL_NODE__VARIABLE : + getVariables().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__NODE : + getNodes().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__MUST_ISOLATE : + setMustIsolate(MUST_ISOLATE_EDEFAULT); + return; + case UMLPackage.CONDITIONAL_NODE__EDGE : + getEdges().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__IS_DETERMINATE : + setIsDeterminate(IS_DETERMINATE_EDEFAULT); + return; + case UMLPackage.CONDITIONAL_NODE__IS_ASSURED : + setIsAssured(IS_ASSURED_EDEFAULT); + return; + case UMLPackage.CONDITIONAL_NODE__CLAUSE : + getClauses().clear(); + return; + case UMLPackage.CONDITIONAL_NODE__RESULT : + getResults().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONDITIONAL_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONDITIONAL_NODE__OWNER : + return isSetOwner(); + case UMLPackage.CONDITIONAL_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.CONDITIONAL_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.CONDITIONAL_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONDITIONAL_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONDITIONAL_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.CONDITIONAL_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONDITIONAL_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONDITIONAL_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONDITIONAL_NODE__NAME_EXPRESSION) != null; + case UMLPackage.CONDITIONAL_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CONDITIONAL_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CONDITIONAL_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CONDITIONAL_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CONDITIONAL_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CONDITIONAL_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.CONDITIONAL_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__OUTPUT : + return isSetOutputs(); + case UMLPackage.CONDITIONAL_NODE__INPUT : + return isSetInputs(); + case UMLPackage.CONDITIONAL_NODE__CONTEXT : + return getContext() != null; + case UMLPackage.CONDITIONAL_NODE__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__MEMBER : + return isSetMembers(); + case UMLPackage.CONDITIONAL_NODE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.CONDITIONAL_NODE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.CONDITIONAL_NODE__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.CONDITIONAL_NODE__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.CONDITIONAL_NODE__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.CONDITIONAL_NODE__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.CONDITIONAL_NODE__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.CONDITIONAL_NODE__VARIABLE : + List variable = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__VARIABLE); + return variable != null && !variable.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__NODE : + List node = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__MUST_ISOLATE : + return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT; + case UMLPackage.CONDITIONAL_NODE__EDGE : + List edge = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__EDGE); + return edge != null && !edge.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__IS_DETERMINATE : + return ((eFlags & IS_DETERMINATE_EFLAG) != 0) != IS_DETERMINATE_EDEFAULT; + case UMLPackage.CONDITIONAL_NODE__IS_ASSURED : + return ((eFlags & IS_ASSURED_EFLAG) != 0) != IS_ASSURED_EDEFAULT; + case UMLPackage.CONDITIONAL_NODE__CLAUSE : + List clause = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__CLAUSE); + return clause != null && !clause.isEmpty(); + case UMLPackage.CONDITIONAL_NODE__RESULT : + List result = (List) eVirtualGet(UMLPackage.CONDITIONAL_NODE__RESULT); + return result != null && !result.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDeterminate: "); //$NON-NLS-1$ + result.append((eFlags & IS_DETERMINATE_EFLAG) != 0); + result.append(", isAssured: "); //$NON-NLS-1$ + result.append((eFlags & IS_ASSURED_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getConditionalNode_Clause()); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getConditionalNode_Result()); + } + +} //ConditionalNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java new file mode 100644 index 00000000..8857a433 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java @@ -0,0 +1,612 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectableElementImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; + +/** + * + * An implementation of the model object 'Connectable Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl#getEnds End}
  • + *
+ *

+ * + * @generated + */ +public abstract class ConnectableElementImpl + extends TypedElementImpl + implements ConnectableElement { + + /** + * + * + * @generated + */ + protected ConnectableElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConnectableElement(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + ConnectableElementTemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter) + .eInverseAdd( + this, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + ConnectableElementTemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter, newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public boolean isSetTemplateParameter() { + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER) != null; + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public List getEnds() { + List end = (List) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__END); + if (end == null) { + eVirtualSet(UMLPackage.CONNECTABLE_ELEMENT__END, + end = new EObjectWithInverseResolvingEList(ConnectorEnd.class, + this, UMLPackage.CONNECTABLE_ELEMENT__END, + UMLPackage.CONNECTOR_END__ROLE)); + } + return end; + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.CONNECTABLE_ELEMENT__END : + return ((InternalEList) getEnds()).basicAdd(otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.CONNECTABLE_ELEMENT__END : + return ((InternalEList) getEnds()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTABLE_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONNECTABLE_ELEMENT__NAME : + return getName(); + case UMLPackage.CONNECTABLE_ELEMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.CONNECTABLE_ELEMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONNECTABLE_ELEMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONNECTABLE_ELEMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONNECTABLE_ELEMENT__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.CONNECTABLE_ELEMENT__END : + return getEnds(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__TYPE : + setType((Type) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CONNECTABLE_ELEMENT__END : + getEnds().clear(); + getEnds().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONNECTABLE_ELEMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONNECTABLE_ELEMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONNECTABLE_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONNECTABLE_ELEMENT__TYPE : + setType((Type) null); + return; + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CONNECTABLE_ELEMENT__END : + getEnds().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTABLE_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.CONNECTABLE_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONNECTABLE_ELEMENT__NAME : + String name = eVirtualIsSet(UMLPackage.CONNECTABLE_ELEMENT__NAME) + ? (String) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONNECTABLE_ELEMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONNECTABLE_ELEMENT__VISIBILITY) + && eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONNECTABLE_ELEMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONNECTABLE_ELEMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONNECTABLE_ELEMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__NAME_EXPRESSION) != null; + case UMLPackage.CONNECTABLE_ELEMENT__TYPE : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TYPE) != null; + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.CONNECTABLE_ELEMENT__END : + List end = (List) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__END); + return end != null && !end.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + +} //ConnectableElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementTemplateParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementTemplateParameterImpl.java new file mode 100644 index 00000000..4d912614 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementTemplateParameterImpl.java @@ -0,0 +1,230 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectableElementTemplateParameterImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Connectable Element Template Parameter'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectableElementTemplateParameterImpl#getParameteredElement Parametered Element}
  • + *
+ *

+ * + * @generated + */ +public class ConnectableElementTemplateParameterImpl + extends TemplateParameterImpl + implements ConnectableElementTemplateParameter { + + /** + * + * + * @generated + */ + protected ConnectableElementTemplateParameterImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConnectableElementTemplateParameter(); + } + + /** + * + * + * @generated + */ + public ParameterableElement getParameteredElement() { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (parameteredElement != null && parameteredElement.eIsProxy()) { + ParameterableElement oldParameteredElement = parameteredElement; + parameteredElement = (ParameterableElement) eResolveProxy((InternalEObject) parameteredElement); + if (parameteredElement != oldParameteredElement) { + eVirtualSet( + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + parameteredElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement, parameteredElement)); + } + } + return parameteredElement; + } + + /** + * + * + * @generated + */ + public ParameterableElement basicGetParameteredElement() { + return (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetParameteredElement( + ParameterableElement newParameteredElement, NotificationChain msgs) { + Object oldParameteredElement = eVirtualSet( + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl( + this, + Notification.SET, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement == EVIRTUAL_NO_VALUE + ? null + : oldParameteredElement, newParameteredElement); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setParameteredElement(ParameterableElement newParameteredElement) { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (newParameteredElement != parameteredElement) { + NotificationChain msgs = null; + if (parameteredElement != null) + msgs = ((InternalEObject) parameteredElement).eInverseRemove( + this, UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + ConnectableElement.class, msgs); + if (newParameteredElement != null) + msgs = ((InternalEObject) newParameteredElement).eInverseAdd( + this, UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, + ConnectableElement.class, msgs); + msgs = basicSetParameteredElement(newParameteredElement, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.SET, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement, newParameteredElement)); + + } + + /** + * + * + * @generated + */ + public boolean isSetParameteredElement() { + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__SIGNATURE : + return getSignature(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return getOwnedParameteredElement(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT : + if (resolve) + return getDefault(); + return basicGetDefault(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT : + return getOwnedDefault(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + if (resolve) + return getParameteredElement(); + return basicGetParameteredElement(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNER : + return isSetOwner(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__SIGNATURE : + return getSignature() != null; + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != null; + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT) != null; + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT) != null; + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ConnectableElementTemplateParameterImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java new file mode 100644 index 00000000..f5e327fc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java @@ -0,0 +1,536 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectionPointReferenceImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.ConnectionPointReference; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ConnectionPointReferenceOperations; + +/** + * + * An implementation of the model object 'Connection Point Reference'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl#getEntries Entry}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl#getExits Exit}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl#getState State}
  • + *
+ *

+ * + * @generated + */ +public class ConnectionPointReferenceImpl + extends VertexImpl + implements ConnectionPointReference { + + /** + * + * + * @generated + */ + protected ConnectionPointReferenceImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConnectionPointReference(); + } + + /** + * + * + * @generated + */ + public List getEntries() { + List entry = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY); + if (entry == null) { + eVirtualSet(UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY, + entry = new EObjectResolvingEList(Pseudostate.class, this, + UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY)); + } + return entry; + } + + /** + * + * + * @generated + */ + public Pseudostate getEntry(String name) { + for (Iterator i = getEntries().iterator(); i.hasNext();) { + Pseudostate entry = (Pseudostate) i.next(); + if (name.equals(entry.getName())) { + return entry; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getExits() { + List exit = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__EXIT); + if (exit == null) { + eVirtualSet(UMLPackage.CONNECTION_POINT_REFERENCE__EXIT, + exit = new EObjectResolvingEList(Pseudostate.class, this, + UMLPackage.CONNECTION_POINT_REFERENCE__EXIT)); + } + return exit; + } + + /** + * + * + * @generated + */ + public Pseudostate getExit(String name) { + for (Iterator i = getExits().iterator(); i.hasNext();) { + Pseudostate exit = (Pseudostate) i.next(); + if (name.equals(exit.getName())) { + return exit; + } + } + return null; + } + + /** + * + * + * @generated + */ + public State getState() { + if (eContainerFeatureID != UMLPackage.CONNECTION_POINT_REFERENCE__STATE) + return null; + return (State) eContainer; + } + + /** + * + * + * @generated + */ + public void setState(State newState) { + if (newState != eContainer + || (eContainerFeatureID != UMLPackage.CONNECTION_POINT_REFERENCE__STATE && newState != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newState)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newState != null) + msgs = ((InternalEObject) newState).eInverseAdd(this, + UMLPackage.STATE__CONNECTION, State.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newState, + UMLPackage.CONNECTION_POINT_REFERENCE__STATE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTION_POINT_REFERENCE__STATE, newState, + newState)); + + } + + /** + * + * + * @generated + */ + public boolean validateEntryPseudostates(DiagnosticChain diagnostics, + Map context) { + return ConnectionPointReferenceOperations.validateEntryPseudostates( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExitPseudostates(DiagnosticChain diagnostics, + Map context) { + return ConnectionPointReferenceOperations.validateExitPseudostates( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTION_POINT_REFERENCE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.CONNECTION_POINT_REFERENCE__STATE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTION_POINT_REFERENCE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + return eBasicSetContainer(null, + UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + return eBasicSetContainer(null, + UMLPackage.CONNECTION_POINT_REFERENCE__STATE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + return eContainer.eInverseRemove(this, + UMLPackage.REGION__SUBVERTEX, Region.class, msgs); + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + return eContainer.eInverseRemove(this, + UMLPackage.STATE__CONNECTION, State.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTION_POINT_REFERENCE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME : + return getName(); + case UMLPackage.CONNECTION_POINT_REFERENCE__VISIBILITY : + return getVisibility(); + case UMLPackage.CONNECTION_POINT_REFERENCE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING : + return getOutgoings(); + case UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING : + return getIncomings(); + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + return getContainer(); + case UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY : + return getEntries(); + case UMLPackage.CONNECTION_POINT_REFERENCE__EXIT : + return getExits(); + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + return getState(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTION_POINT_REFERENCE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME : + setName((String) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + setContainer((Region) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY : + getEntries().clear(); + getEntries().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__EXIT : + getExits().clear(); + getExits().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + setState((State) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTION_POINT_REFERENCE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + setContainer((Region) null); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY : + getEntries().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__EXIT : + getExits().clear(); + return; + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + setState((State) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTION_POINT_REFERENCE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNER : + return isSetOwner(); + case UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME : + String name = eVirtualIsSet(UMLPackage.CONNECTION_POINT_REFERENCE__NAME) + ? (String) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONNECTION_POINT_REFERENCE__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONNECTION_POINT_REFERENCE__VISIBILITY) + && eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONNECTION_POINT_REFERENCE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONNECTION_POINT_REFERENCE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__NAME_EXPRESSION) != null; + case UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__CONTAINER : + return getContainer() != null; + case UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY : + List entry = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__ENTRY); + return entry != null && !entry.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__EXIT : + List exit = (List) eVirtualGet(UMLPackage.CONNECTION_POINT_REFERENCE__EXIT); + return exit != null && !exit.isEmpty(); + case UMLPackage.CONNECTION_POINT_REFERENCE__STATE : + return getState() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + State state = getState(); + if (state != null) { + return state; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getConnectionPointReference_State()); + } + +} //ConnectionPointReferenceImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java new file mode 100644 index 00000000..00d311f4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java @@ -0,0 +1,502 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectorEndImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +import org.eclipse.uml2.uml.internal.operations.ConnectorEndOperations; + +/** + * + * An implementation of the model object 'Connector End'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl#getDefiningEnd Defining End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl#getPartWithPort Part With Port}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl#getRole Role}
  • + *
+ *

+ * + * @generated + */ +public class ConnectorEndImpl + extends MultiplicityElementImpl + implements ConnectorEnd { + + /** + * + * + * @generated + */ + protected ConnectorEndImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConnectorEnd(); + } + + /** + * + * + * @generated + */ + public Property getDefiningEnd() { + Property definingEnd = basicGetDefiningEnd(); + return definingEnd == null + ? null + : (definingEnd.eIsProxy() + ? (Property) eResolveProxy((InternalEObject) definingEnd) + : definingEnd); + } + + /** + * + * + * @generated + */ + public Property basicGetDefiningEnd() { + // TODO: implement this method to return the 'Defining End' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Property getPartWithPort() { + Property partWithPort = (Property) eVirtualGet(UMLPackage.CONNECTOR_END__PART_WITH_PORT); + if (partWithPort != null && partWithPort.eIsProxy()) { + Property oldPartWithPort = partWithPort; + partWithPort = (Property) eResolveProxy((InternalEObject) partWithPort); + if (partWithPort != oldPartWithPort) { + eVirtualSet(UMLPackage.CONNECTOR_END__PART_WITH_PORT, + partWithPort); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CONNECTOR_END__PART_WITH_PORT, + oldPartWithPort, partWithPort)); + } + } + return partWithPort; + } + + /** + * + * + * @generated + */ + public Property basicGetPartWithPort() { + return (Property) eVirtualGet(UMLPackage.CONNECTOR_END__PART_WITH_PORT); + } + + /** + * + * + * @generated + */ + public void setPartWithPort(Property newPartWithPort) { + Property partWithPort = newPartWithPort; + Object oldPartWithPort = eVirtualSet( + UMLPackage.CONNECTOR_END__PART_WITH_PORT, partWithPort); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTOR_END__PART_WITH_PORT, + oldPartWithPort == EVIRTUAL_NO_VALUE + ? null + : oldPartWithPort, partWithPort)); + + } + + /** + * + * + * @generated + */ + public ConnectableElement getRole() { + ConnectableElement role = (ConnectableElement) eVirtualGet(UMLPackage.CONNECTOR_END__ROLE); + if (role != null && role.eIsProxy()) { + ConnectableElement oldRole = role; + role = (ConnectableElement) eResolveProxy((InternalEObject) role); + if (role != oldRole) { + eVirtualSet(UMLPackage.CONNECTOR_END__ROLE, role); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CONNECTOR_END__ROLE, oldRole, role)); + } + } + return role; + } + + /** + * + * + * @generated + */ + public ConnectableElement basicGetRole() { + return (ConnectableElement) eVirtualGet(UMLPackage.CONNECTOR_END__ROLE); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRole(ConnectableElement newRole, + NotificationChain msgs) { + Object oldRole = eVirtualSet(UMLPackage.CONNECTOR_END__ROLE, newRole); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CONNECTOR_END__ROLE, + oldRole == EVIRTUAL_NO_VALUE + ? null + : oldRole, newRole); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setRole(ConnectableElement newRole) { + ConnectableElement role = (ConnectableElement) eVirtualGet(UMLPackage.CONNECTOR_END__ROLE); + if (newRole != role) { + NotificationChain msgs = null; + if (role != null) + msgs = ((InternalEObject) role).eInverseRemove(this, + UMLPackage.CONNECTABLE_ELEMENT__END, + ConnectableElement.class, msgs); + if (newRole != null) + msgs = ((InternalEObject) newRole).eInverseAdd(this, + UMLPackage.CONNECTABLE_ELEMENT__END, + ConnectableElement.class, msgs); + msgs = basicSetRole(newRole, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTOR_END__ROLE, newRole, newRole)); + + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ConnectorEndOperations.validateMultiplicity(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validatePartWithPortEmpty(DiagnosticChain diagnostics, + Map context) { + return ConnectorEndOperations.validatePartWithPortEmpty(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRoleAndPartWithPort(DiagnosticChain diagnostics, + Map context) { + return ConnectorEndOperations.validateRoleAndPartWithPort(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSelfPartWithPort(DiagnosticChain diagnostics, + Map context) { + return ConnectorEndOperations.validateSelfPartWithPort(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTOR_END__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONNECTOR_END__ROLE : + ConnectableElement role = (ConnectableElement) eVirtualGet(UMLPackage.CONNECTOR_END__ROLE); + if (role != null) + msgs = ((InternalEObject) role).eInverseRemove(this, + UMLPackage.CONNECTABLE_ELEMENT__END, + ConnectableElement.class, msgs); + return basicSetRole((ConnectableElement) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTOR_END__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTOR_END__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTOR_END__UPPER_VALUE : + return basicSetUpperValue(null, msgs); + case UMLPackage.CONNECTOR_END__LOWER_VALUE : + return basicSetLowerValue(null, msgs); + case UMLPackage.CONNECTOR_END__ROLE : + return basicSetRole(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR_END__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONNECTOR_END__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONNECTOR_END__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONNECTOR_END__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONNECTOR_END__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONNECTOR_END__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONNECTOR_END__UPPER : + return new Integer(getUpper()); + case UMLPackage.CONNECTOR_END__LOWER : + return new Integer(getLower()); + case UMLPackage.CONNECTOR_END__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.CONNECTOR_END__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.CONNECTOR_END__DEFINING_END : + if (resolve) + return getDefiningEnd(); + return basicGetDefiningEnd(); + case UMLPackage.CONNECTOR_END__PART_WITH_PORT : + if (resolve) + return getPartWithPort(); + return basicGetPartWithPort(); + case UMLPackage.CONNECTOR_END__ROLE : + if (resolve) + return getRole(); + return basicGetRole(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR_END__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR_END__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR_END__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONNECTOR_END__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONNECTOR_END__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.CONNECTOR_END__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.CONNECTOR_END__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.CONNECTOR_END__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + case UMLPackage.CONNECTOR_END__PART_WITH_PORT : + setPartWithPort((Property) newValue); + return; + case UMLPackage.CONNECTOR_END__ROLE : + setRole((ConnectableElement) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR_END__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONNECTOR_END__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONNECTOR_END__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.CONNECTOR_END__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.CONNECTOR_END__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.CONNECTOR_END__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.CONNECTOR_END__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.CONNECTOR_END__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + case UMLPackage.CONNECTOR_END__PART_WITH_PORT : + setPartWithPort((Property) null); + return; + case UMLPackage.CONNECTOR_END__ROLE : + setRole((ConnectableElement) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR_END__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONNECTOR_END__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONNECTOR_END__OWNER : + return isSetOwner(); + case UMLPackage.CONNECTOR_END__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONNECTOR_END__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONNECTOR_END__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.CONNECTOR_END__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.CONNECTOR_END__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.CONNECTOR_END__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.CONNECTOR_END__UPPER_VALUE : + return eVirtualGet(UMLPackage.CONNECTOR_END__UPPER_VALUE) != null; + case UMLPackage.CONNECTOR_END__LOWER_VALUE : + return eVirtualGet(UMLPackage.CONNECTOR_END__LOWER_VALUE) != null; + case UMLPackage.CONNECTOR_END__DEFINING_END : + return basicGetDefiningEnd() != null; + case UMLPackage.CONNECTOR_END__PART_WITH_PORT : + return eVirtualGet(UMLPackage.CONNECTOR_END__PART_WITH_PORT) != null; + case UMLPackage.CONNECTOR_END__ROLE : + return eVirtualGet(UMLPackage.CONNECTOR_END__ROLE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ConnectorEndImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java new file mode 100644 index 00000000..bc1d81e6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java @@ -0,0 +1,685 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectorImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.ConnectorKind; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ConnectorOperations; + +/** + * + * An implementation of the model object 'Connector'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getRedefinedConnectors Redefined Connector}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getEnds End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getKind Kind}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getContracts Contract}
  • + *
+ *

+ * + * @generated + */ +public class ConnectorImpl + extends FeatureImpl + implements Connector { + + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final ConnectorKind KIND_EDEFAULT = ConnectorKind.ASSEMBLY_LITERAL; + + /** + * + * + * @generated + */ + protected ConnectorImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConnector(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.CONNECTOR__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.CONNECTOR__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.CONNECTOR__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getConnector_RedefinedConnector()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.CONNECTOR__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.CONNECTOR__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.CONNECTOR__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getConnector_End()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Association getType() { + Association type = (Association) eVirtualGet(UMLPackage.CONNECTOR__TYPE); + if (type != null && type.eIsProxy()) { + Association oldType = type; + type = (Association) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.CONNECTOR__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CONNECTOR__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Association basicGetType() { + return (Association) eVirtualGet(UMLPackage.CONNECTOR__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Association newType) { + Association type = newType; + Object oldType = eVirtualSet(UMLPackage.CONNECTOR__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTOR__TYPE, oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public List getRedefinedConnectors() { + List redefinedConnector = (List) eVirtualGet(UMLPackage.CONNECTOR__REDEFINED_CONNECTOR); + if (redefinedConnector == null) { + eVirtualSet(UMLPackage.CONNECTOR__REDEFINED_CONNECTOR, + redefinedConnector = new EObjectResolvingEList(Connector.class, + this, UMLPackage.CONNECTOR__REDEFINED_CONNECTOR)); + } + return redefinedConnector; + } + + /** + * + * + * @generated + */ + public Connector getRedefinedConnector(String name) { + for (Iterator i = getRedefinedConnectors().iterator(); i.hasNext();) { + Connector redefinedConnector = (Connector) i.next(); + if (name.equals(redefinedConnector.getName())) { + return redefinedConnector; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getEnds() { + List end = (List) eVirtualGet(UMLPackage.CONNECTOR__END); + if (end == null) { + eVirtualSet(UMLPackage.CONNECTOR__END, + end = new EObjectContainmentEList(ConnectorEnd.class, this, + UMLPackage.CONNECTOR__END)); + } + return end; + } + + /** + * + * + * @generated + */ + public ConnectorEnd createEnd() { + ConnectorEnd newEnd = UMLFactory.eINSTANCE.createConnectorEnd(); + getEnds().add(newEnd); + return newEnd; + } + + /** + * + * + * @generated + */ + public ConnectorKind getKind() { + ConnectorKind kind = (ConnectorKind) eVirtualGet(UMLPackage.CONNECTOR__KIND); + return kind == null + ? KIND_EDEFAULT + : kind; + } + + /** + * + * + * @generated + */ + public void setKind(ConnectorKind newKind) { + ConnectorKind kind = newKind == null + ? KIND_EDEFAULT + : newKind; + Object oldKind = eVirtualSet(UMLPackage.CONNECTOR__KIND, kind); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONNECTOR__KIND, oldKind == EVIRTUAL_NO_VALUE + ? KIND_EDEFAULT + : oldKind, kind)); + + } + + /** + * + * + * @generated + */ + public List getContracts() { + List contract = (List) eVirtualGet(UMLPackage.CONNECTOR__CONTRACT); + if (contract == null) { + eVirtualSet(UMLPackage.CONNECTOR__CONTRACT, + contract = new EObjectResolvingEList(Behavior.class, this, + UMLPackage.CONNECTOR__CONTRACT)); + } + return contract; + } + + /** + * + * + * @generated + */ + public Behavior getContract(String name) { + for (Iterator i = getContracts().iterator(); i.hasNext();) { + Behavior contract = (Behavior) i.next(); + if (name.equals(contract.getName())) { + return contract; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateTypes(DiagnosticChain diagnostics, Map context) { + return ConnectorOperations.validateTypes(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCompatible(DiagnosticChain diagnostics, Map context) { + return ConnectorOperations.validateCompatible(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateRoles(DiagnosticChain diagnostics, Map context) { + return ConnectorOperations.validateRoles(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBetweenInterfacesPorts(DiagnosticChain diagnostics, + Map context) { + return ConnectorOperations.validateBetweenInterfacesPorts(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBetweenInterfacePortImplements( + DiagnosticChain diagnostics, Map context) { + return ConnectorOperations.validateBetweenInterfacePortImplements(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBetweenInterfacePortSignature( + DiagnosticChain diagnostics, Map context) { + return ConnectorOperations.validateBetweenInterfacePortSignature(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUnionSignatureCompatible( + DiagnosticChain diagnostics, Map context) { + return ConnectorOperations.validateUnionSignatureCompatible(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssemblyConnector(DiagnosticChain diagnostics, + Map context) { + return ConnectorOperations.validateAssemblyConnector(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONNECTOR__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTOR__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONNECTOR__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONNECTOR__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CONNECTOR__END : + return ((InternalEList) getEnds()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONNECTOR__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONNECTOR__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONNECTOR__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONNECTOR__NAME : + return getName(); + case UMLPackage.CONNECTOR__VISIBILITY : + return getVisibility(); + case UMLPackage.CONNECTOR__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONNECTOR__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONNECTOR__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONNECTOR__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONNECTOR__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONNECTOR__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CONNECTOR__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CONNECTOR__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CONNECTOR__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.CONNECTOR__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.CONNECTOR__REDEFINED_CONNECTOR : + return getRedefinedConnectors(); + case UMLPackage.CONNECTOR__END : + return getEnds(); + case UMLPackage.CONNECTOR__KIND : + return getKind(); + case UMLPackage.CONNECTOR__CONTRACT : + return getContracts(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR__NAME : + setName((String) newValue); + return; + case UMLPackage.CONNECTOR__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONNECTOR__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONNECTOR__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONNECTOR__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CONNECTOR__TYPE : + setType((Association) newValue); + return; + case UMLPackage.CONNECTOR__REDEFINED_CONNECTOR : + getRedefinedConnectors().clear(); + getRedefinedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR__END : + getEnds().clear(); + getEnds().addAll((Collection) newValue); + return; + case UMLPackage.CONNECTOR__KIND : + setKind((ConnectorKind) newValue); + return; + case UMLPackage.CONNECTOR__CONTRACT : + getContracts().clear(); + getContracts().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONNECTOR__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONNECTOR__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONNECTOR__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONNECTOR__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONNECTOR__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONNECTOR__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CONNECTOR__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.CONNECTOR__TYPE : + setType((Association) null); + return; + case UMLPackage.CONNECTOR__REDEFINED_CONNECTOR : + getRedefinedConnectors().clear(); + return; + case UMLPackage.CONNECTOR__END : + getEnds().clear(); + return; + case UMLPackage.CONNECTOR__KIND : + setKind(KIND_EDEFAULT); + return; + case UMLPackage.CONNECTOR__CONTRACT : + getContracts().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONNECTOR__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONNECTOR__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONNECTOR__OWNER : + return isSetOwner(); + case UMLPackage.CONNECTOR__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONNECTOR__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONNECTOR__NAME : + String name = eVirtualIsSet(UMLPackage.CONNECTOR__NAME) + ? (String) eVirtualGet(UMLPackage.CONNECTOR__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONNECTOR__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONNECTOR__VISIBILITY) + && eVirtualGet(UMLPackage.CONNECTOR__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONNECTOR__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONNECTOR__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONNECTOR__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONNECTOR__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONNECTOR__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONNECTOR__NAME_EXPRESSION) != null; + case UMLPackage.CONNECTOR__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CONNECTOR__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CONNECTOR__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CONNECTOR__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.CONNECTOR__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.CONNECTOR__TYPE : + return eVirtualGet(UMLPackage.CONNECTOR__TYPE) != null; + case UMLPackage.CONNECTOR__REDEFINED_CONNECTOR : + List redefinedConnector = (List) eVirtualGet(UMLPackage.CONNECTOR__REDEFINED_CONNECTOR); + return redefinedConnector != null + && !redefinedConnector.isEmpty(); + case UMLPackage.CONNECTOR__END : + List end = (List) eVirtualGet(UMLPackage.CONNECTOR__END); + return end != null && !end.isEmpty(); + case UMLPackage.CONNECTOR__KIND : + return eVirtualIsSet(UMLPackage.CONNECTOR__KIND) + && eVirtualGet(UMLPackage.CONNECTOR__KIND) != KIND_EDEFAULT; + case UMLPackage.CONNECTOR__CONTRACT : + List contract = (List) eVirtualGet(UMLPackage.CONNECTOR__CONTRACT); + return contract != null && !contract.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (kind: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.CONNECTOR__KIND) + ? eVirtualGet(UMLPackage.CONNECTOR__KIND) + : KIND_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getConnector_RedefinedConnector()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getConnector_End()); + } + +} //ConnectorImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java new file mode 100644 index 00000000..e68c1be7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java @@ -0,0 +1,352 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConsiderIgnoreFragmentImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.uml.ConsiderIgnoreFragment; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionOperatorKind; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ConsiderIgnoreFragmentOperations; + +/** + * + * An implementation of the model object 'Consider Ignore Fragment'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl#getMessages Message}
  • + *
+ *

+ * + * @generated + */ +public class ConsiderIgnoreFragmentImpl + extends CombinedFragmentImpl + implements ConsiderIgnoreFragment { + + /** + * + * + * @generated + */ + protected ConsiderIgnoreFragmentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConsiderIgnoreFragment(); + } + + /** + * + * + * @generated + */ + public List getMessages() { + List message = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE); + if (message == null) { + eVirtualSet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE, + message = new EObjectResolvingEList(NamedElement.class, this, + UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE)); + } + return message; + } + + /** + * + * + * @generated + */ + public NamedElement getMessage(String name) { + for (Iterator i = getMessages().iterator(); i.hasNext();) { + NamedElement message = (NamedElement) i.next(); + if (name.equals(message.getName())) { + return message; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateConsiderOrIgnore(DiagnosticChain diagnostics, + Map context) { + return ConsiderIgnoreFragmentOperations.validateConsiderOrIgnore(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateType(DiagnosticChain diagnostics, Map context) { + return ConsiderIgnoreFragmentOperations.validateType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME : + return getName(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__COVERED : + return getCovereds(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR : + return getInteractionOperator(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OPERAND : + return getOperands(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CFRAGMENT_GATE : + return getCfragmentGates(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE : + return getMessages(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR : + setInteractionOperator((InteractionOperatorKind) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OPERAND : + getOperands().clear(); + getOperands().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CFRAGMENT_GATE : + getCfragmentGates().clear(); + getCfragmentGates().addAll((Collection) newValue); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE : + getMessages().clear(); + getMessages().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__COVERED : + getCovereds().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR : + setInteractionOperator(INTERACTION_OPERATOR_EDEFAULT); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OPERAND : + getOperands().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CFRAGMENT_GATE : + getCfragmentGates().clear(); + return; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE : + getMessages().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNER : + return isSetOwner(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME : + String name = eVirtualIsSet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME) + ? (String) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__VISIBILITY) + && eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__NAME_EXPRESSION) != null; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__COVERED : + List covered = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR : + return eVirtualIsSet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR) + && eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__INTERACTION_OPERATOR) != INTERACTION_OPERATOR_EDEFAULT; + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__OPERAND : + List operand = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__OPERAND); + return operand != null && !operand.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__CFRAGMENT_GATE : + List cfragmentGate = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__CFRAGMENT_GATE); + return cfragmentGate != null && !cfragmentGate.isEmpty(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE : + List message = (List) eVirtualGet(UMLPackage.CONSIDER_IGNORE_FRAGMENT__MESSAGE); + return message != null && !message.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //ConsiderIgnoreFragmentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java new file mode 100644 index 00000000..616f72c0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java @@ -0,0 +1,619 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConstraintImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ConstraintOperations; + +/** + * + * An implementation of the model object 'Constraint'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getConstrainedElements Constrained Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getSpecification Specification}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getContext Context}
  • + *
+ *

+ * + * @generated + */ +public class ConstraintImpl + extends PackageableElementImpl + implements Constraint { + + /** + * + * + * @generated + */ + protected ConstraintImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getConstraint(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.CONSTRAINT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.CONSTRAINT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.CONSTRAINT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getConstraint_Specification()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getConstrainedElements() { + List constrainedElement = (List) eVirtualGet(UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT); + if (constrainedElement == null) { + eVirtualSet(UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT, + constrainedElement = new EObjectResolvingEList(Element.class, + this, UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT)); + } + return constrainedElement; + } + + /** + * + * + * @generated + */ + public ValueSpecification getSpecification() { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.CONSTRAINT__SPECIFICATION); + return specification; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSpecification( + ValueSpecification newSpecification, NotificationChain msgs) { + Object oldSpecification = eVirtualSet( + UMLPackage.CONSTRAINT__SPECIFICATION, newSpecification); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CONSTRAINT__SPECIFICATION, + oldSpecification == EVIRTUAL_NO_VALUE + ? null + : oldSpecification, newSpecification); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSpecification(ValueSpecification newSpecification) { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.CONSTRAINT__SPECIFICATION); + if (newSpecification != specification) { + NotificationChain msgs = null; + if (specification != null) + msgs = ((InternalEObject) specification).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CONSTRAINT__SPECIFICATION, null, msgs); + if (newSpecification != null) + msgs = ((InternalEObject) newSpecification).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CONSTRAINT__SPECIFICATION, null, msgs); + msgs = basicSetSpecification(newSpecification, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONSTRAINT__SPECIFICATION, newSpecification, + newSpecification)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createSpecification(EClass eClass) { + ValueSpecification newSpecification = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setSpecification(newSpecification); + return newSpecification; + } + + /** + * + * + * @generated + */ + public Namespace getContext() { + if (eContainerFeatureID != UMLPackage.CONSTRAINT__CONTEXT) + return null; + return (Namespace) eContainer; + } + + /** + * + * + * @generated + */ + public void setContext(Namespace newContext) { + if (newContext != eContainer + || (eContainerFeatureID != UMLPackage.CONSTRAINT__CONTEXT && newContext != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newContext)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newContext != null) + msgs = ((InternalEObject) newContext).eInverseAdd(this, + UMLPackage.NAMESPACE__OWNED_RULE, Namespace.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newContext, + UMLPackage.CONSTRAINT__CONTEXT, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONSTRAINT__CONTEXT, newContext, newContext)); + + } + + /** + * + * + * @generated + */ + public boolean validateNotApplyToSelf(DiagnosticChain diagnostics, + Map context) { + return ConstraintOperations.validateNotApplyToSelf(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationBoolean( + DiagnosticChain diagnostics, Map context) { + return ConstraintOperations.validateValueSpecificationBoolean(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBooleanValue(DiagnosticChain diagnostics, Map context) { + return ConstraintOperations.validateBooleanValue(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNoSideEffects(DiagnosticChain diagnostics, + Map context) { + return ConstraintOperations.validateNoSideEffects(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotAppliedToSelf(DiagnosticChain diagnostics, + Map context) { + return ConstraintOperations.validateNotAppliedToSelf(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONSTRAINT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.CONSTRAINT__CONTEXT : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.CONSTRAINT__CONTEXT, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CONSTRAINT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONSTRAINT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CONSTRAINT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.CONSTRAINT__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.CONSTRAINT__CONTEXT : + return eBasicSetContainer(null, + UMLPackage.CONSTRAINT__CONTEXT, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.CONSTRAINT__CONTEXT : + return eContainer + .eInverseRemove(this, UMLPackage.NAMESPACE__OWNED_RULE, + Namespace.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSTRAINT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONSTRAINT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONSTRAINT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONSTRAINT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONSTRAINT__NAME : + return getName(); + case UMLPackage.CONSTRAINT__VISIBILITY : + return getVisibility(); + case UMLPackage.CONSTRAINT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONSTRAINT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONSTRAINT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT : + return getConstrainedElements(); + case UMLPackage.CONSTRAINT__SPECIFICATION : + return getSpecification(); + case UMLPackage.CONSTRAINT__CONTEXT : + return getContext(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSTRAINT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONSTRAINT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONSTRAINT__NAME : + setName((String) newValue); + return; + case UMLPackage.CONSTRAINT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONSTRAINT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT : + getConstrainedElements().clear(); + getConstrainedElements().addAll((Collection) newValue); + return; + case UMLPackage.CONSTRAINT__SPECIFICATION : + setSpecification((ValueSpecification) newValue); + return; + case UMLPackage.CONSTRAINT__CONTEXT : + setContext((Namespace) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSTRAINT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONSTRAINT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONSTRAINT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONSTRAINT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONSTRAINT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT : + getConstrainedElements().clear(); + return; + case UMLPackage.CONSTRAINT__SPECIFICATION : + setSpecification((ValueSpecification) null); + return; + case UMLPackage.CONSTRAINT__CONTEXT : + setContext((Namespace) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONSTRAINT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONSTRAINT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONSTRAINT__OWNER : + return isSetOwner(); + case UMLPackage.CONSTRAINT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONSTRAINT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONSTRAINT__NAME : + String name = eVirtualIsSet(UMLPackage.CONSTRAINT__NAME) + ? (String) eVirtualGet(UMLPackage.CONSTRAINT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONSTRAINT__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONSTRAINT__VISIBILITY) + && eVirtualGet(UMLPackage.CONSTRAINT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONSTRAINT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONSTRAINT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONSTRAINT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONSTRAINT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONSTRAINT__NAME_EXPRESSION) != null; + case UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.CONSTRAINT__TEMPLATE_PARAMETER) != null; + case UMLPackage.CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT : + List constrainedElement = (List) eVirtualGet(UMLPackage.CONSTRAINT__CONSTRAINED_ELEMENT); + return constrainedElement != null + && !constrainedElement.isEmpty(); + case UMLPackage.CONSTRAINT__SPECIFICATION : + return eVirtualGet(UMLPackage.CONSTRAINT__SPECIFICATION) != null; + case UMLPackage.CONSTRAINT__CONTEXT : + return getContext() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getConstraint_Specification()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Namespace context = getContext(); + if (context != null) { + return context; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getConstraint_Context()); + } + +} //ConstraintImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java new file mode 100644 index 00000000..d9521513 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java @@ -0,0 +1,359 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ContinuationImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Continuation; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ContinuationOperations; + +/** + * + * An implementation of the model object 'Continuation'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ContinuationImpl#isSetting Setting}
  • + *
+ *

+ * + * @generated + */ +public class ContinuationImpl + extends InteractionFragmentImpl + implements Continuation { + + /** + * The default value of the '{@link #isSetting() Setting}' attribute. + * + * + * @see #isSetting() + * @generated + * @ordered + */ + protected static final boolean SETTING_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isSetting() Setting}' attribute. + * + * + * @see #isSetting() + * @generated + * @ordered + */ + protected static final int SETTING_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected ContinuationImpl() { + super(); + eFlags |= SETTING_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getContinuation(); + } + + /** + * + * + * @generated + */ + public boolean isSetting() { + return (eFlags & SETTING_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setSetting(boolean newSetting) { + boolean oldSetting = (eFlags & SETTING_EFLAG) != 0; + if (newSetting) + eFlags |= SETTING_EFLAG; + else + eFlags &= ~SETTING_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CONTINUATION__SETTING, oldSetting, newSetting)); + + } + + /** + * + * + * @generated + */ + public boolean validateSameName(DiagnosticChain diagnostics, Map context) { + return ContinuationOperations.validateSameName(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGlobal(DiagnosticChain diagnostics, Map context) { + return ContinuationOperations + .validateGlobal(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateFirstOrLastInteractionFragment( + DiagnosticChain diagnostics, Map context) { + return ContinuationOperations.validateFirstOrLastInteractionFragment( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONTINUATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CONTINUATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CONTINUATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CONTINUATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CONTINUATION__NAME : + return getName(); + case UMLPackage.CONTINUATION__VISIBILITY : + return getVisibility(); + case UMLPackage.CONTINUATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CONTINUATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CONTINUATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CONTINUATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CONTINUATION__COVERED : + return getCovereds(); + case UMLPackage.CONTINUATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.CONTINUATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.CONTINUATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.CONTINUATION__SETTING : + return isSetting() + ? Boolean.TRUE + : Boolean.FALSE; + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONTINUATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CONTINUATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CONTINUATION__NAME : + setName((String) newValue); + return; + case UMLPackage.CONTINUATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CONTINUATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CONTINUATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CONTINUATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.CONTINUATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.CONTINUATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.CONTINUATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.CONTINUATION__SETTING : + setSetting(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONTINUATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CONTINUATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CONTINUATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CONTINUATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CONTINUATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CONTINUATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CONTINUATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.CONTINUATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.CONTINUATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.CONTINUATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.CONTINUATION__SETTING : + setSetting(SETTING_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CONTINUATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CONTINUATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CONTINUATION__OWNER : + return isSetOwner(); + case UMLPackage.CONTINUATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CONTINUATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CONTINUATION__NAME : + String name = eVirtualIsSet(UMLPackage.CONTINUATION__NAME) + ? (String) eVirtualGet(UMLPackage.CONTINUATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CONTINUATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CONTINUATION__VISIBILITY) + && eVirtualGet(UMLPackage.CONTINUATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CONTINUATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CONTINUATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CONTINUATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CONTINUATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CONTINUATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CONTINUATION__NAME_EXPRESSION) != null; + case UMLPackage.CONTINUATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.CONTINUATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.CONTINUATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.CONTINUATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.CONTINUATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.CONTINUATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.CONTINUATION__SETTING : + return ((eFlags & SETTING_EFLAG) != 0) != SETTING_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (setting: "); //$NON-NLS-1$ + result.append((eFlags & SETTING_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //ContinuationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java new file mode 100644 index 00000000..a8d8867a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ControlFlowImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ControlFlow; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ControlFlowOperations; + +/** + * + * An implementation of the model object 'Control Flow'. + * + *

+ *

+ * + * @generated + */ +public class ControlFlowImpl + extends ActivityEdgeImpl + implements ControlFlow { + + /** + * + * + * @generated + */ + protected ControlFlowImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getControlFlow(); + } + + /** + * + * + * @generated + */ + public boolean validateObjectNodes(DiagnosticChain diagnostics, Map context) { + return ControlFlowOperations.validateObjectNodes(this, diagnostics, + context); + } + +} //ControlFlowImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlNodeImpl.java new file mode 100644 index 00000000..a86801bb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlNodeImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ControlNodeImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ControlNode; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Control Node'. + * + *

+ *

+ * + * @generated + */ +public abstract class ControlNodeImpl + extends ActivityNodeImpl + implements ControlNode { + + /** + * + * + * @generated + */ + protected ControlNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getControlNode(); + } + +} //ControlNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java new file mode 100644 index 00000000..1e59f452 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateLinkActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; + +import org.eclipse.uml2.uml.CreateLinkAction; +import org.eclipse.uml2.uml.LinkEndCreationData; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.CreateLinkActionOperations; + +/** + * + * An implementation of the model object 'Create Link Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl#getEndData End Data}
  • + *
+ *

+ * + * @generated + */ +public class CreateLinkActionImpl + extends WriteLinkActionImpl + implements CreateLinkAction { + + /** + * + * + * @generated + */ + protected CreateLinkActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCreateLinkAction(); + } + + /** + * + * + * @generated + */ + public List getEndData() { + List endData = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__END_DATA); + if (endData == null) { + eVirtualSet(UMLPackage.CREATE_LINK_ACTION__END_DATA, + endData = new EObjectContainmentEList( + LinkEndCreationData.class, this, + UMLPackage.CREATE_LINK_ACTION__END_DATA)); + } + return endData; + } + + /** + * + * + * @generated + */ + public LinkEndData createEndData() { + LinkEndCreationData newEndData = UMLFactory.eINSTANCE + .createLinkEndCreationData(); + getEndData().add(newEndData); + return newEndData; + } + + /** + * + * + * @generated + */ + public boolean isSetEndData() { + List endData = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationNotAbstract(DiagnosticChain diagnostics, + Map context) { + return CreateLinkActionOperations.validateAssociationNotAbstract(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_LINK_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CREATE_LINK_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CREATE_LINK_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CREATE_LINK_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CREATE_LINK_ACTION__NAME : + return getName(); + case UMLPackage.CREATE_LINK_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CREATE_LINK_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CREATE_LINK_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CREATE_LINK_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CREATE_LINK_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CREATE_LINK_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CREATE_LINK_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CREATE_LINK_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CREATE_LINK_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CREATE_LINK_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CREATE_LINK_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CREATE_LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CREATE_LINK_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CREATE_LINK_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CREATE_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CREATE_LINK_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CREATE_LINK_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CREATE_LINK_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CREATE_LINK_ACTION__INPUT : + return getInputs(); + case UMLPackage.CREATE_LINK_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CREATE_LINK_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CREATE_LINK_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CREATE_LINK_ACTION__END_DATA : + return getEndData(); + case UMLPackage.CREATE_LINK_ACTION__INPUT_VALUE : + return getInputValues(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_LINK_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CREATE_LINK_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CREATE_LINK_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CREATE_LINK_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CREATE_LINK_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CREATE_LINK_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CREATE_LINK_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CREATE_LINK_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CREATE_LINK_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CREATE_LINK_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CREATE_LINK_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CREATE_LINK_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CREATE_LINK_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CREATE_LINK_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CREATE_LINK_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CREATE_LINK_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CREATE_LINK_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CREATE_LINK_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CREATE_LINK_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CREATE_LINK_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CREATE_LINK_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__END_DATA : + List endData = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + case UMLPackage.CREATE_LINK_ACTION__INPUT_VALUE : + List inputValue = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__INPUT_VALUE); + return inputValue != null && !inputValue.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //CreateLinkActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java new file mode 100644 index 00000000..26666b1a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java @@ -0,0 +1,604 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateLinkObjectActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.CreateLinkObjectAction; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CreateLinkObjectActionOperations; + +/** + * + * An implementation of the model object 'Create Link Object Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CreateLinkObjectActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CreateLinkObjectActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class CreateLinkObjectActionImpl + extends CreateLinkActionImpl + implements CreateLinkObjectAction { + + /** + * + * + * @generated + */ + protected CreateLinkObjectActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCreateLinkObjectAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getCreateLinkObjectAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet( + UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT, newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT, null, + msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT, null, + msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT, newResult, + newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateAssociationClass(DiagnosticChain diagnostics, + Map context) { + return CreateLinkObjectActionOperations.validateAssociationClass(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOfResult(DiagnosticChain diagnostics, Map context) { + return CreateLinkObjectActionOperations.validateTypeOfResult(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return CreateLinkObjectActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CREATE_LINK_OBJECT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__END_DATA : + return ((InternalEList) getEndData()).basicRemove(otherEnd, + msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT_VALUE : + return ((InternalEList) getInputValues()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_LINK_OBJECT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME : + return getName(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT : + return getInputs(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__END_DATA : + return getEndData(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT_VALUE : + return getInputValues(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_LINK_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__END_DATA : + getEndData().clear(); + getEndData().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT_VALUE : + getInputValues().clear(); + getInputValues().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_LINK_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__END_DATA : + getEndData().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT_VALUE : + getInputValues().clear(); + return; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_LINK_OBJECT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CREATE_LINK_OBJECT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__END_DATA : + List endData = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT_VALUE : + List inputValue = (List) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__INPUT_VALUE); + return inputValue != null && !inputValue.isEmpty(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT : + return eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getCreateLinkObjectAction_Result()); + } + +} //CreateLinkObjectActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java new file mode 100644 index 00000000..42e95eb3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java @@ -0,0 +1,644 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateObjectActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.CreateObjectAction; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.CreateObjectActionOperations; + +/** + * + * An implementation of the model object 'Create Object Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl#getClassifier Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class CreateObjectActionImpl + extends ActionImpl + implements CreateObjectAction { + + /** + * + * + * @generated + */ + protected CreateObjectActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCreateObjectAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.CREATE_OBJECT_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.CREATE_OBJECT_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getCreateObjectAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public Classifier getClassifier() { + Classifier classifier = (Classifier) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER); + if (classifier != null && classifier.eIsProxy()) { + Classifier oldClassifier = classifier; + classifier = (Classifier) eResolveProxy((InternalEObject) classifier); + if (classifier != oldClassifier) { + eVirtualSet(UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER, + classifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER, + oldClassifier, classifier)); + } + } + return classifier; + } + + /** + * + * + * @generated + */ + public Classifier basicGetClassifier() { + return (Classifier) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER); + } + + /** + * + * + * @generated + */ + public void setClassifier(Classifier newClassifier) { + Classifier classifier = newClassifier; + Object oldClassifier = eVirtualSet( + UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER, classifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER, + oldClassifier == EVIRTUAL_NO_VALUE + ? null + : oldClassifier, classifier)); + + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet(UMLPackage.CREATE_OBJECT_ACTION__RESULT, + newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.CREATE_OBJECT_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CREATE_OBJECT_ACTION__RESULT, null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.CREATE_OBJECT_ACTION__RESULT, null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.CREATE_OBJECT_ACTION__RESULT, newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateClassifierNotAbstract(DiagnosticChain diagnostics, + Map context) { + return CreateObjectActionOperations.validateClassifierNotAbstract(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClassifierNotAssociationClass( + DiagnosticChain diagnostics, Map context) { + return CreateObjectActionOperations + .validateClassifierNotAssociationClass(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return CreateObjectActionOperations.validateSameType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return CreateObjectActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.CREATE_OBJECT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.CREATE_OBJECT_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_OBJECT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.CREATE_OBJECT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.CREATE_OBJECT_ACTION__NAME : + return getName(); + case UMLPackage.CREATE_OBJECT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.CREATE_OBJECT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.CREATE_OBJECT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.CREATE_OBJECT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.CREATE_OBJECT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.CREATE_OBJECT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.CREATE_OBJECT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.CREATE_OBJECT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.CREATE_OBJECT_ACTION__INPUT : + return getInputs(); + case UMLPackage.CREATE_OBJECT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER : + if (resolve) + return getClassifier(); + return basicGetClassifier(); + case UMLPackage.CREATE_OBJECT_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.CREATE_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER : + setClassifier((Classifier) newValue); + return; + case UMLPackage.CREATE_OBJECT_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.CREATE_OBJECT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.CREATE_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.CREATE_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER : + setClassifier((Classifier) null); + return; + case UMLPackage.CREATE_OBJECT_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.CREATE_OBJECT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.CREATE_OBJECT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.CREATE_OBJECT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.CREATE_OBJECT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.CREATE_OBJECT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.CREATE_OBJECT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.CREATE_OBJECT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.CREATE_OBJECT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.CREATE_OBJECT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.CREATE_OBJECT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.CREATE_OBJECT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.CREATE_OBJECT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.CREATE_OBJECT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER : + return eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER) != null; + case UMLPackage.CREATE_OBJECT_ACTION__RESULT : + return eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getCreateObjectAction_Result()); + } + +} //CreateObjectActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreationEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreationEventImpl.java new file mode 100644 index 00000000..de87c315 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreationEventImpl.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreationEventImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.CreationEvent; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.CreationEventOperations; + +/** + * + * An implementation of the model object 'Creation Event'. + * + *

+ *

+ * + * @generated + */ +public class CreationEventImpl + extends EventImpl + implements CreationEvent { + + /** + * + * + * @generated + */ + protected CreationEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getCreationEvent(); + } + + /** + * + * + * @generated + */ + public boolean validateNoOccurrenceAbove(DiagnosticChain diagnostics, + Map context) { + return CreationEventOperations.validateNoOccurrenceAbove(this, + diagnostics, context); + } + +} //CreationEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataStoreNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataStoreNodeImpl.java new file mode 100644 index 00000000..49a8937a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataStoreNodeImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DataStoreNodeImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.DataStoreNode; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Data Store Node'. + * + *

+ *

+ * + * @generated + */ +public class DataStoreNodeImpl + extends CentralBufferNodeImpl + implements DataStoreNode { + + /** + * + * + * @generated + */ + protected DataStoreNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDataStoreNode(); + } + +} //DataStoreNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java new file mode 100644 index 00000000..2ccf441b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java @@ -0,0 +1,870 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DataTypeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.DataTypeOperations; + +/** + * + * An implementation of the model object 'Data Type'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedOperations Owned Operation}
  • + *
+ *

+ * + * @generated + */ +public class DataTypeImpl + extends ClassifierImpl + implements DataType { + + /** + * + * + * @generated + */ + protected DataTypeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDataType(); + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.DATA_TYPE__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.DATA_TYPE__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.DATA_TYPE__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getDataType_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.DATA_TYPE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.DATA_TYPE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE.getDataType_OwnedAttribute(), + UMLPackage.eINSTANCE.getDataType_OwnedOperation()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.DATA_TYPE__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.DATA_TYPE__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.DATA_TYPE__FEATURE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE.getDataType_OwnedOperation()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentWithInverseEList( + Property.class, this, + UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE, + UMLPackage.PROPERTY__DATATYPE)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedOperations() { + List ownedOperation = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_OPERATION); + if (ownedOperation == null) { + eVirtualSet(UMLPackage.DATA_TYPE__OWNED_OPERATION, + ownedOperation = new EObjectContainmentWithInverseEList( + Operation.class, this, + UMLPackage.DATA_TYPE__OWNED_OPERATION, + UMLPackage.OPERATION__DATATYPE)); + } + return ownedOperation; + } + + /** + * + * + * @generated + */ + public Operation createOwnedOperation() { + Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation(); + getOwnedOperations().add(newOwnedOperation); + return newOwnedOperation; + } + + /** + * + * + * @generated + */ + public Operation getOwnedOperation(String name) { + for (Iterator i = getOwnedOperations().iterator(); i.hasNext();) { + Operation ownedOperation = (Operation) i.next(); + if (name.equals(ownedOperation.getName())) { + return ownedOperation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List inherit(List inhs) { + return DataTypeOperations.inherit(this, inhs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DATA_TYPE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.DATA_TYPE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.DATA_TYPE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.DATA_TYPE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.DATA_TYPE__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicAdd( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DATA_TYPE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DATA_TYPE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.DATA_TYPE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.DATA_TYPE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.DATA_TYPE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.DATA_TYPE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DATA_TYPE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DATA_TYPE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DATA_TYPE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DATA_TYPE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DATA_TYPE__NAME : + return getName(); + case UMLPackage.DATA_TYPE__VISIBILITY : + return getVisibility(); + case UMLPackage.DATA_TYPE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DATA_TYPE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DATA_TYPE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DATA_TYPE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.DATA_TYPE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.DATA_TYPE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.DATA_TYPE__MEMBER : + return getMembers(); + case UMLPackage.DATA_TYPE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.DATA_TYPE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.DATA_TYPE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DATA_TYPE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.DATA_TYPE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DATA_TYPE__PACKAGE : + return getPackage(); + case UMLPackage.DATA_TYPE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.DATA_TYPE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DATA_TYPE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.DATA_TYPE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.DATA_TYPE__FEATURE : + return getFeatures(); + case UMLPackage.DATA_TYPE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.DATA_TYPE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.DATA_TYPE__GENERAL : + return getGenerals(); + case UMLPackage.DATA_TYPE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.DATA_TYPE__USE_CASE : + return getUseCases(); + case UMLPackage.DATA_TYPE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.DATA_TYPE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.DATA_TYPE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.DATA_TYPE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.DATA_TYPE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.DATA_TYPE__OWNED_OPERATION : + return getOwnedOperations(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DATA_TYPE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__NAME : + setName((String) newValue); + return; + case UMLPackage.DATA_TYPE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DATA_TYPE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DATA_TYPE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.DATA_TYPE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.DATA_TYPE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DATA_TYPE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.DATA_TYPE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.DATA_TYPE__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DATA_TYPE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DATA_TYPE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DATA_TYPE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DATA_TYPE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DATA_TYPE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DATA_TYPE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.DATA_TYPE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.DATA_TYPE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.DATA_TYPE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DATA_TYPE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.DATA_TYPE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.DATA_TYPE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.DATA_TYPE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.DATA_TYPE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.DATA_TYPE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.DATA_TYPE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.DATA_TYPE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.DATA_TYPE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.DATA_TYPE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.DATA_TYPE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.DATA_TYPE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.DATA_TYPE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.DATA_TYPE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.DATA_TYPE__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DATA_TYPE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DATA_TYPE__OWNER : + return isSetOwner(); + case UMLPackage.DATA_TYPE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DATA_TYPE__NAME : + String name = eVirtualIsSet(UMLPackage.DATA_TYPE__NAME) + ? (String) eVirtualGet(UMLPackage.DATA_TYPE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DATA_TYPE__VISIBILITY : + return eVirtualIsSet(UMLPackage.DATA_TYPE__VISIBILITY) + && eVirtualGet(UMLPackage.DATA_TYPE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DATA_TYPE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DATA_TYPE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DATA_TYPE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DATA_TYPE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DATA_TYPE__NAME_EXPRESSION) != null; + case UMLPackage.DATA_TYPE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.DATA_TYPE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.DATA_TYPE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.DATA_TYPE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.DATA_TYPE__MEMBER : + return isSetMembers(); + case UMLPackage.DATA_TYPE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.DATA_TYPE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.DATA_TYPE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.DATA_TYPE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DATA_TYPE__TEMPLATE_PARAMETER) != null; + case UMLPackage.DATA_TYPE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DATA_TYPE__PACKAGE : + return getPackage() != null; + case UMLPackage.DATA_TYPE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.DATA_TYPE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.DATA_TYPE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.DATA_TYPE__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.DATA_TYPE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.DATA_TYPE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.DATA_TYPE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.DATA_TYPE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.DATA_TYPE__FEATURE : + return isSetFeatures(); + case UMLPackage.DATA_TYPE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.DATA_TYPE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.DATA_TYPE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.DATA_TYPE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.DATA_TYPE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.DATA_TYPE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.DATA_TYPE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.DATA_TYPE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.DATA_TYPE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.DATA_TYPE__REPRESENTATION : + return eVirtualGet(UMLPackage.DATA_TYPE__REPRESENTATION) != null; + case UMLPackage.DATA_TYPE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.DATA_TYPE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.DATA_TYPE__OWNED_SIGNATURE) != null; + case UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.DATA_TYPE__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.DATA_TYPE__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() + || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedAttribute()) + || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedOperation()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedOperation()); + } + +} //DataTypeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java new file mode 100644 index 00000000..78dc3dee --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java @@ -0,0 +1,408 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DecisionNodeImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.DecisionNode; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.DecisionNodeOperations; + +/** + * + * An implementation of the model object 'Decision Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DecisionNodeImpl#getDecisionInput Decision Input}
  • + *
+ *

+ * + * @generated + */ +public class DecisionNodeImpl + extends ControlNodeImpl + implements DecisionNode { + + /** + * + * + * @generated + */ + protected DecisionNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDecisionNode(); + } + + /** + * + * + * @generated + */ + public Behavior getDecisionInput() { + Behavior decisionInput = (Behavior) eVirtualGet(UMLPackage.DECISION_NODE__DECISION_INPUT); + if (decisionInput != null && decisionInput.eIsProxy()) { + Behavior oldDecisionInput = decisionInput; + decisionInput = (Behavior) eResolveProxy((InternalEObject) decisionInput); + if (decisionInput != oldDecisionInput) { + eVirtualSet(UMLPackage.DECISION_NODE__DECISION_INPUT, + decisionInput); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.DECISION_NODE__DECISION_INPUT, + oldDecisionInput, decisionInput)); + } + } + return decisionInput; + } + + /** + * + * + * @generated + */ + public Behavior basicGetDecisionInput() { + return (Behavior) eVirtualGet(UMLPackage.DECISION_NODE__DECISION_INPUT); + } + + /** + * + * + * @generated + */ + public void setDecisionInput(Behavior newDecisionInput) { + Behavior decisionInput = newDecisionInput; + Object oldDecisionInput = eVirtualSet( + UMLPackage.DECISION_NODE__DECISION_INPUT, decisionInput); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DECISION_NODE__DECISION_INPUT, + oldDecisionInput == EVIRTUAL_NO_VALUE + ? null + : oldDecisionInput, decisionInput)); + + } + + /** + * + * + * @generated + */ + public boolean validateOneIncomingEdge(DiagnosticChain diagnostics, + Map context) { + return DecisionNodeOperations.validateOneIncomingEdge(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInputParameter(DiagnosticChain diagnostics, + Map context) { + return DecisionNodeOperations.validateInputParameter(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEdges(DiagnosticChain diagnostics, Map context) { + return DecisionNodeOperations.validateEdges(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DECISION_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DECISION_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DECISION_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DECISION_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DECISION_NODE__NAME : + return getName(); + case UMLPackage.DECISION_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.DECISION_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DECISION_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DECISION_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DECISION_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DECISION_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DECISION_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.DECISION_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.DECISION_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.DECISION_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.DECISION_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.DECISION_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.DECISION_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.DECISION_NODE__INCOMING : + return getIncomings(); + case UMLPackage.DECISION_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.DECISION_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.DECISION_NODE__DECISION_INPUT : + if (resolve) + return getDecisionInput(); + return basicGetDecisionInput(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DECISION_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.DECISION_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DECISION_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DECISION_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DECISION_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.DECISION_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.DECISION_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.DECISION_NODE__DECISION_INPUT : + setDecisionInput((Behavior) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DECISION_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DECISION_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DECISION_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DECISION_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DECISION_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DECISION_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DECISION_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.DECISION_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.DECISION_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.DECISION_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.DECISION_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.DECISION_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.DECISION_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.DECISION_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.DECISION_NODE__DECISION_INPUT : + setDecisionInput((Behavior) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DECISION_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DECISION_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DECISION_NODE__OWNER : + return isSetOwner(); + case UMLPackage.DECISION_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DECISION_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DECISION_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.DECISION_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.DECISION_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DECISION_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.DECISION_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.DECISION_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DECISION_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DECISION_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DECISION_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DECISION_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DECISION_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DECISION_NODE__NAME_EXPRESSION) != null; + case UMLPackage.DECISION_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.DECISION_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.DECISION_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.DECISION_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.DECISION_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.DECISION_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.DECISION_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.DECISION_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.DECISION_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.DECISION_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.DECISION_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.DECISION_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.DECISION_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.DECISION_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.DECISION_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.DECISION_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.DECISION_NODE__DECISION_INPUT : + return eVirtualGet(UMLPackage.DECISION_NODE__DECISION_INPUT) != null; + } + return eDynamicIsSet(eFeature); + } + +} //DecisionNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DependencyImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DependencyImpl.java new file mode 100644 index 00000000..2c56cb67 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DependencyImpl.java @@ -0,0 +1,548 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DependencyImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Dependency'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getClients Client}
  • + *
+ *

+ * + * @generated + */ +public class DependencyImpl + extends PackageableElementImpl + implements Dependency { + + /** + * + * + * @generated + */ + protected DependencyImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDependency(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.DEPENDENCY__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.DEPENDENCY__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.DEPENDENCY__RELATED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDirectedRelationship_Source(), + UMLPackage.eINSTANCE.getDirectedRelationship_Target()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.DEPENDENCY__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.DEPENDENCY__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.DEPENDENCY__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getDependency_Client()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.DEPENDENCY__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.DEPENDENCY__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.DEPENDENCY__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getDependency_Supplier()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSuppliers() { + List supplier = (List) eVirtualGet(UMLPackage.DEPENDENCY__SUPPLIER); + if (supplier == null) { + eVirtualSet(UMLPackage.DEPENDENCY__SUPPLIER, + supplier = new EObjectResolvingEList(NamedElement.class, this, + UMLPackage.DEPENDENCY__SUPPLIER)); + } + return supplier; + } + + /** + * + * + * @generated + */ + public NamedElement getSupplier(String name) { + for (Iterator i = getSuppliers().iterator(); i.hasNext();) { + NamedElement supplier = (NamedElement) i.next(); + if (name.equals(supplier.getName())) { + return supplier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getClients() { + List client = (List) eVirtualGet(UMLPackage.DEPENDENCY__CLIENT); + if (client == null) { + eVirtualSet(UMLPackage.DEPENDENCY__CLIENT, + client = new EObjectWithInverseResolvingEList.ManyInverse( + NamedElement.class, this, UMLPackage.DEPENDENCY__CLIENT, + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY)); + } + return client; + } + + /** + * + * + * @generated + */ + public NamedElement getClient(String name) { + for (Iterator i = getClients().iterator(); i.hasNext();) { + NamedElement client = (NamedElement) i.next(); + if (name.equals(client.getName())) { + return client; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPENDENCY__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.DEPENDENCY__CLIENT : + return ((InternalEList) getClients()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPENDENCY__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPENDENCY__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DEPENDENCY__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.DEPENDENCY__CLIENT : + return ((InternalEList) getClients()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPENDENCY__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DEPENDENCY__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DEPENDENCY__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DEPENDENCY__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DEPENDENCY__NAME : + return getName(); + case UMLPackage.DEPENDENCY__VISIBILITY : + return getVisibility(); + case UMLPackage.DEPENDENCY__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DEPENDENCY__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DEPENDENCY__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DEPENDENCY__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.DEPENDENCY__SOURCE : + return getSources(); + case UMLPackage.DEPENDENCY__TARGET : + return getTargets(); + case UMLPackage.DEPENDENCY__SUPPLIER : + return getSuppliers(); + case UMLPackage.DEPENDENCY__CLIENT : + return getClients(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPENDENCY__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DEPENDENCY__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DEPENDENCY__NAME : + setName((String) newValue); + return; + case UMLPackage.DEPENDENCY__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DEPENDENCY__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DEPENDENCY__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.DEPENDENCY__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPENDENCY__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DEPENDENCY__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DEPENDENCY__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DEPENDENCY__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DEPENDENCY__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DEPENDENCY__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.DEPENDENCY__CLIENT : + getClients().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPENDENCY__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DEPENDENCY__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DEPENDENCY__OWNER : + return isSetOwner(); + case UMLPackage.DEPENDENCY__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DEPENDENCY__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DEPENDENCY__NAME : + String name = eVirtualIsSet(UMLPackage.DEPENDENCY__NAME) + ? (String) eVirtualGet(UMLPackage.DEPENDENCY__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DEPENDENCY__VISIBILITY : + return eVirtualIsSet(UMLPackage.DEPENDENCY__VISIBILITY) + && eVirtualGet(UMLPackage.DEPENDENCY__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DEPENDENCY__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DEPENDENCY__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DEPENDENCY__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DEPENDENCY__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DEPENDENCY__NAME_EXPRESSION) != null; + case UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DEPENDENCY__TEMPLATE_PARAMETER) != null; + case UMLPackage.DEPENDENCY__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DEPENDENCY__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.DEPENDENCY__SOURCE : + return isSetSources(); + case UMLPackage.DEPENDENCY__TARGET : + return isSetTargets(); + case UMLPackage.DEPENDENCY__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.DEPENDENCY__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.DEPENDENCY__CLIENT : + List client = (List) eVirtualGet(UMLPackage.DEPENDENCY__CLIENT); + return client != null && !client.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case UMLPackage.DEPENDENCY__RELATED_ELEMENT : + return UMLPackage.RELATIONSHIP__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (derivedFeatureID) { + case UMLPackage.DEPENDENCY__SOURCE : + return UMLPackage.DIRECTED_RELATIONSHIP__SOURCE; + case UMLPackage.DEPENDENCY__TARGET : + return UMLPackage.DIRECTED_RELATIONSHIP__TARGET; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return UMLPackage.DEPENDENCY__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (baseFeatureID) { + case UMLPackage.DIRECTED_RELATIONSHIP__SOURCE : + return UMLPackage.DEPENDENCY__SOURCE; + case UMLPackage.DIRECTED_RELATIONSHIP__TARGET : + return UMLPackage.DEPENDENCY__TARGET; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return isSetSources() || isSetTargets(); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return eIsSet(UMLPackage.eINSTANCE.getDependency_Client()); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return eIsSet(UMLPackage.eINSTANCE.getDependency_Supplier()); + } + +} //DependencyImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeployedArtifactImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeployedArtifactImpl.java new file mode 100644 index 00000000..c1366796 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeployedArtifactImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeployedArtifactImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.DeployedArtifact; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Deployed Artifact'. + * + *

+ *

+ * + * @generated + */ +public abstract class DeployedArtifactImpl + extends NamedElementImpl + implements DeployedArtifact { + + /** + * + * + * @generated + */ + protected DeployedArtifactImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDeployedArtifact(); + } + +} //DeployedArtifactImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentImpl.java new file mode 100644 index 00000000..62ecf50f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentImpl.java @@ -0,0 +1,676 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectResolvingEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.DeployedArtifact; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentSpecification; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Deployment'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getClients Client}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getDeployedArtifacts Deployed Artifact}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getConfigurations Configuration}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getLocation Location}
  • + *
+ *

+ * + * @generated + */ +public class DeploymentImpl + extends DependencyImpl + implements Deployment { + + /** + * + * + * @generated + */ + protected DeploymentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDeployment(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.DEPLOYMENT__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.DEPLOYMENT__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.DEPLOYMENT__TARGET, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Supplier(), + UMLPackage.eINSTANCE.getDeployment_DeployedArtifact()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.DEPLOYMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.DEPLOYMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.DEPLOYMENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getDeployment_Configuration()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.DEPLOYMENT__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.DEPLOYMENT__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.DEPLOYMENT__SOURCE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Client(), + UMLPackage.eINSTANCE.getDeployment_Location()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getSuppliers() { + List supplier = (List) eVirtualGet(UMLPackage.DEPLOYMENT__SUPPLIER); + if (supplier == null) { + eVirtualSet(UMLPackage.DEPLOYMENT__SUPPLIER, + supplier = new SupersetEObjectResolvingEList( + NamedElement.class, this, UMLPackage.DEPLOYMENT__SUPPLIER, + new int[]{UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT})); + } + return supplier; + } + + /** + * + * + * @generated + */ + public List getClients() { + List client = (List) eVirtualGet(UMLPackage.DEPLOYMENT__CLIENT); + if (client == null) { + eVirtualSet( + UMLPackage.DEPLOYMENT__CLIENT, + client = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + NamedElement.class, this, UMLPackage.DEPLOYMENT__CLIENT, + new int[]{UMLPackage.DEPLOYMENT__LOCATION}, + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY)); + } + return client; + } + + /** + * + * + * @generated + */ + public List getDeployedArtifacts() { + List deployedArtifact = (List) eVirtualGet(UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT); + if (deployedArtifact == null) { + eVirtualSet(UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT, + deployedArtifact = new SubsetEObjectResolvingEList( + DeployedArtifact.class, this, + UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT, + new int[]{UMLPackage.DEPLOYMENT__SUPPLIER})); + } + return deployedArtifact; + } + + /** + * + * + * @generated + */ + public DeployedArtifact getDeployedArtifact(String name) { + for (Iterator i = getDeployedArtifacts().iterator(); i.hasNext();) { + DeployedArtifact deployedArtifact = (DeployedArtifact) i.next(); + if (name.equals(deployedArtifact.getName())) { + return deployedArtifact; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getConfigurations() { + List configuration = (List) eVirtualGet(UMLPackage.DEPLOYMENT__CONFIGURATION); + if (configuration == null) { + eVirtualSet(UMLPackage.DEPLOYMENT__CONFIGURATION, + configuration = new EObjectContainmentWithInverseEList( + DeploymentSpecification.class, this, + UMLPackage.DEPLOYMENT__CONFIGURATION, + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT)); + } + return configuration; + } + + /** + * + * + * @generated + */ + public DeploymentSpecification createConfiguration() { + DeploymentSpecification newConfiguration = UMLFactory.eINSTANCE + .createDeploymentSpecification(); + getConfigurations().add(newConfiguration); + return newConfiguration; + } + + /** + * + * + * @generated + */ + public DeploymentSpecification getConfiguration(String name) { + for (Iterator i = getConfigurations().iterator(); i.hasNext();) { + DeploymentSpecification configuration = (DeploymentSpecification) i + .next(); + if (name.equals(configuration.getName())) { + return configuration; + } + } + return null; + } + + /** + * + * + * @generated + */ + public DeploymentTarget getLocation() { + if (eContainerFeatureID != UMLPackage.DEPLOYMENT__LOCATION) + return null; + return (DeploymentTarget) eContainer; + } + + /** + * + * + * @generated + */ + public void setLocation(DeploymentTarget newLocation) { + if (newLocation != null && !getClients().contains(newLocation)) { + getClients().add(newLocation); + } + if (newLocation != eContainer + || (eContainerFeatureID != UMLPackage.DEPLOYMENT__LOCATION && newLocation != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newLocation)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newLocation != null) + msgs = ((InternalEObject) newLocation).eInverseAdd(this, + UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT, + DeploymentTarget.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newLocation, + UMLPackage.DEPLOYMENT__LOCATION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DEPLOYMENT__LOCATION, newLocation, newLocation)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPLOYMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.DEPLOYMENT__CLIENT : + return ((InternalEList) getClients()).basicAdd(otherEnd, + msgs); + case UMLPackage.DEPLOYMENT__CONFIGURATION : + return ((InternalEList) getConfigurations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT__LOCATION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.DEPLOYMENT__LOCATION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPLOYMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DEPLOYMENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.DEPLOYMENT__CLIENT : + return ((InternalEList) getClients()).basicRemove(otherEnd, + msgs); + case UMLPackage.DEPLOYMENT__CONFIGURATION : + return ((InternalEList) getConfigurations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT__LOCATION : + return eBasicSetContainer(null, + UMLPackage.DEPLOYMENT__LOCATION, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.DEPLOYMENT__LOCATION : + return eContainer.eInverseRemove(this, + UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT, + DeploymentTarget.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DEPLOYMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DEPLOYMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DEPLOYMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DEPLOYMENT__NAME : + return getName(); + case UMLPackage.DEPLOYMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.DEPLOYMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DEPLOYMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DEPLOYMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DEPLOYMENT__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.DEPLOYMENT__SOURCE : + return getSources(); + case UMLPackage.DEPLOYMENT__TARGET : + return getTargets(); + case UMLPackage.DEPLOYMENT__SUPPLIER : + return getSuppliers(); + case UMLPackage.DEPLOYMENT__CLIENT : + return getClients(); + case UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT : + return getDeployedArtifacts(); + case UMLPackage.DEPLOYMENT__CONFIGURATION : + return getConfigurations(); + case UMLPackage.DEPLOYMENT__LOCATION : + return getLocation(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.DEPLOYMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DEPLOYMENT__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT : + getDeployedArtifacts().clear(); + getDeployedArtifacts().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__CONFIGURATION : + getConfigurations().clear(); + getConfigurations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT__LOCATION : + setLocation((DeploymentTarget) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DEPLOYMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DEPLOYMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DEPLOYMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DEPLOYMENT__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.DEPLOYMENT__CLIENT : + getClients().clear(); + return; + case UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT : + getDeployedArtifacts().clear(); + return; + case UMLPackage.DEPLOYMENT__CONFIGURATION : + getConfigurations().clear(); + return; + case UMLPackage.DEPLOYMENT__LOCATION : + setLocation((DeploymentTarget) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DEPLOYMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DEPLOYMENT__OWNER : + return isSetOwner(); + case UMLPackage.DEPLOYMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DEPLOYMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DEPLOYMENT__NAME : + String name = eVirtualIsSet(UMLPackage.DEPLOYMENT__NAME) + ? (String) eVirtualGet(UMLPackage.DEPLOYMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DEPLOYMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.DEPLOYMENT__VISIBILITY) + && eVirtualGet(UMLPackage.DEPLOYMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DEPLOYMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DEPLOYMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DEPLOYMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DEPLOYMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DEPLOYMENT__NAME_EXPRESSION) != null; + case UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DEPLOYMENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.DEPLOYMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DEPLOYMENT__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.DEPLOYMENT__SOURCE : + return isSetSources(); + case UMLPackage.DEPLOYMENT__TARGET : + return isSetTargets(); + case UMLPackage.DEPLOYMENT__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.DEPLOYMENT__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.DEPLOYMENT__CLIENT : + List client = (List) eVirtualGet(UMLPackage.DEPLOYMENT__CLIENT); + return client != null && !client.isEmpty(); + case UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT : + List deployedArtifact = (List) eVirtualGet(UMLPackage.DEPLOYMENT__DEPLOYED_ARTIFACT); + return deployedArtifact != null && !deployedArtifact.isEmpty(); + case UMLPackage.DEPLOYMENT__CONFIGURATION : + List configuration = (List) eVirtualGet(UMLPackage.DEPLOYMENT__CONFIGURATION); + return configuration != null && !configuration.isEmpty(); + case UMLPackage.DEPLOYMENT__LOCATION : + return getLocation() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getDeployment_DeployedArtifact()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getDeployment_Configuration()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE.getDeployment_Location()); + } + +} //DeploymentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java new file mode 100644 index 00000000..134f2ed1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java @@ -0,0 +1,969 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentSpecificationImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentSpecification; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.DeploymentSpecificationOperations; + +/** + * + * An implementation of the model object 'Deployment Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl#getDeploymentLocation Deployment Location}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl#getExecutionLocation Execution Location}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl#getDeployment Deployment}
  • + *
+ *

+ * + * @generated + */ +public class DeploymentSpecificationImpl + extends ArtifactImpl + implements DeploymentSpecification { + + /** + * The default value of the '{@link #getDeploymentLocation() Deployment Location}' attribute. + * + * + * @see #getDeploymentLocation() + * @generated + * @ordered + */ + protected static final String DEPLOYMENT_LOCATION_EDEFAULT = null; + + /** + * The default value of the '{@link #getExecutionLocation() Execution Location}' attribute. + * + * + * @see #getExecutionLocation() + * @generated + * @ordered + */ + protected static final String EXECUTION_LOCATION_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected DeploymentSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDeploymentSpecification(); + } + + /** + * + * + * @generated + */ + public String getDeploymentLocation() { + String deploymentLocation = (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION); + return deploymentLocation == null + ? DEPLOYMENT_LOCATION_EDEFAULT + : deploymentLocation; + } + + /** + * + * + * @generated + */ + public void setDeploymentLocation(String newDeploymentLocation) { + newDeploymentLocation = newDeploymentLocation == null + ? DEPLOYMENT_LOCATION_EDEFAULT + : newDeploymentLocation; + String deploymentLocation = newDeploymentLocation; + Object oldDeploymentLocation = eVirtualSet( + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION, + deploymentLocation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION, + oldDeploymentLocation == EVIRTUAL_NO_VALUE + ? DEPLOYMENT_LOCATION_EDEFAULT + : oldDeploymentLocation, deploymentLocation)); + + } + + /** + * + * + * @generated + */ + public String getExecutionLocation() { + String executionLocation = (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION); + return executionLocation == null + ? EXECUTION_LOCATION_EDEFAULT + : executionLocation; + } + + /** + * + * + * @generated + */ + public void setExecutionLocation(String newExecutionLocation) { + newExecutionLocation = newExecutionLocation == null + ? EXECUTION_LOCATION_EDEFAULT + : newExecutionLocation; + String executionLocation = newExecutionLocation; + Object oldExecutionLocation = eVirtualSet( + UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION, + executionLocation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION, + oldExecutionLocation == EVIRTUAL_NO_VALUE + ? EXECUTION_LOCATION_EDEFAULT + : oldExecutionLocation, executionLocation)); + + } + + /** + * + * + * @generated + */ + public Deployment getDeployment() { + if (eContainerFeatureID != UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT) + return null; + return (Deployment) eContainer; + } + + /** + * + * + * @generated + */ + public void setDeployment(Deployment newDeployment) { + if (newDeployment != eContainer + || (eContainerFeatureID != UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT && newDeployment != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newDeployment)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newDeployment != null) + msgs = ((InternalEObject) newDeployment).eInverseAdd(this, + UMLPackage.DEPLOYMENT__CONFIGURATION, Deployment.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newDeployment, + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT, newDeployment, + newDeployment)); + + } + + /** + * + * + * @generated + */ + public boolean validateDeployedElements(DiagnosticChain diagnostics, + Map context) { + return DeploymentSpecificationOperations.validateDeployedElements(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDeploymentTarget(DiagnosticChain diagnostics, + Map context) { + return DeploymentSpecificationOperations.validateDeploymentTarget(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT : + return ((InternalEList) getNestedArtifacts()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__MANIFESTATION : + return ((InternalEList) getManifestations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + return eBasicSetContainer(null, + UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + return eContainer.eInverseRemove(this, + UMLPackage.DEPLOYMENT__CONFIGURATION, Deployment.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME : + return getName(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__MEMBER : + return getMembers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE : + return getPackage(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__FEATURE : + return getFeatures(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERAL : + return getGenerals(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE : + return getUseCases(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__ATTRIBUTE : + return getAttributes(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__REPRESENTATION : + return getRepresentation(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__FILE_NAME : + return getFileName(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT : + return getNestedArtifacts(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__MANIFESTATION : + return getManifestations(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION : + return getDeploymentLocation(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION : + return getExecutionLocation(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + return getDeployment(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__FILE_NAME : + setFileName((String) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT : + getNestedArtifacts().clear(); + getNestedArtifacts().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__MANIFESTATION : + getManifestations().clear(); + getManifestations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION : + setDeploymentLocation((String) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION : + setExecutionLocation((String) newValue); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + setDeployment((Deployment) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__FILE_NAME : + setFileName(FILE_NAME_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT : + getNestedArtifacts().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__MANIFESTATION : + getManifestations().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION : + setDeploymentLocation(DEPLOYMENT_LOCATION_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION : + setExecutionLocation(EXECUTION_LOCATION_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + setDeployment((Deployment) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DEPLOYMENT_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DEPLOYMENT_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__MEMBER : + return isSetMembers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__PACKAGE : + return getPackage() != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__FEATURE : + return isSetFeatures(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__REPRESENTATION : + return eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__REPRESENTATION) != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_SIGNATURE) != null; + case UMLPackage.DEPLOYMENT_SPECIFICATION__FILE_NAME : + String fileName = eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__FILE_NAME) + ? (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__FILE_NAME) + : FILE_NAME_EDEFAULT; + return FILE_NAME_EDEFAULT == null + ? fileName != null + : !FILE_NAME_EDEFAULT.equals(fileName); + case UMLPackage.DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT : + List nestedArtifact = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__NESTED_ARTIFACT); + return nestedArtifact != null && !nestedArtifact.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__MANIFESTATION : + List manifestation = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__MANIFESTATION); + return manifestation != null && !manifestation.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION : + String deploymentLocation = eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION) + ? (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION) + : DEPLOYMENT_LOCATION_EDEFAULT; + return DEPLOYMENT_LOCATION_EDEFAULT == null + ? deploymentLocation != null + : !DEPLOYMENT_LOCATION_EDEFAULT.equals(deploymentLocation); + case UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION : + String executionLocation = eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION) + ? (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION) + : EXECUTION_LOCATION_EDEFAULT; + return EXECUTION_LOCATION_EDEFAULT == null + ? executionLocation != null + : !EXECUTION_LOCATION_EDEFAULT.equals(executionLocation); + case UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT : + return getDeployment() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (deploymentLocation: "); //$NON-NLS-1$ + result + .append(eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION) + ? eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION) + : DEPLOYMENT_LOCATION_EDEFAULT); + result.append(", executionLocation: "); //$NON-NLS-1$ + result + .append(eVirtualIsSet(UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION) + ? eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION) + : EXECUTION_LOCATION_EDEFAULT); + result.append(')'); + return result.toString(); + } + +} //DeploymentSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentTargetImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentTargetImpl.java new file mode 100644 index 00000000..f086cca7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentTargetImpl.java @@ -0,0 +1,409 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentTargetImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Deployment Target'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getDeployments Deployment}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getDeployedElements Deployed Element}
  • + *
+ *

+ * + * @generated + */ +public abstract class DeploymentTargetImpl + extends NamedElementImpl + implements DeploymentTarget { + + /** + * + * + * @generated + */ + protected DeploymentTargetImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDeploymentTarget(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.DEPLOYMENT_TARGET__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.DEPLOYMENT_TARGET__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getDeploymentTarget_Deployment()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, + UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY, + new int[]{UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public List getDeployments() { + List deployment = (List) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT); + if (deployment == null) { + eVirtualSet(UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT, + deployment = new SubsetEObjectContainmentWithInverseEList( + Deployment.class, this, + UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT, + new int[]{UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY}, + UMLPackage.DEPLOYMENT__LOCATION)); + } + return deployment; + } + + /** + * + * + * @generated + */ + public Deployment createDeployment() { + Deployment newDeployment = UMLFactory.eINSTANCE.createDeployment(); + getDeployments().add(newDeployment); + return newDeployment; + } + + /** + * + * + * @generated + */ + public Deployment getDeployment(String name) { + for (Iterator i = getDeployments().iterator(); i.hasNext();) { + Deployment deployment = (Deployment) i.next(); + if (name.equals(deployment.getName())) { + return deployment; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getDeployedElements() { + // TODO: implement this method to return the 'Deployed Element' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public PackageableElement getDeployedElement(String name) { + for (Iterator i = getDeployedElements().iterator(); i.hasNext();) { + PackageableElement deployedElement = (PackageableElement) i.next(); + if (name.equals(deployedElement.getName())) { + return deployedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPLOYMENT_TARGET__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DEPLOYMENT_TARGET__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_TARGET__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DEPLOYMENT_TARGET__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_TARGET__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DEPLOYMENT_TARGET__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DEPLOYMENT_TARGET__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DEPLOYMENT_TARGET__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DEPLOYMENT_TARGET__NAME : + return getName(); + case UMLPackage.DEPLOYMENT_TARGET__VISIBILITY : + return getVisibility(); + case UMLPackage.DEPLOYMENT_TARGET__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DEPLOYMENT_TARGET__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DEPLOYMENT_TARGET__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + return getDeployments(); + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYED_ELEMENT : + return getDeployedElements(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_TARGET__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_TARGET__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_TARGET__NAME : + setName((String) newValue); + return; + case UMLPackage.DEPLOYMENT_TARGET__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DEPLOYMENT_TARGET__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + getDeployments().clear(); + getDeployments().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_TARGET__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DEPLOYMENT_TARGET__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DEPLOYMENT_TARGET__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_TARGET__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DEPLOYMENT_TARGET__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + getDeployments().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DEPLOYMENT_TARGET__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DEPLOYMENT_TARGET__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DEPLOYMENT_TARGET__OWNER : + return isSetOwner(); + case UMLPackage.DEPLOYMENT_TARGET__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DEPLOYMENT_TARGET__NAME : + String name = eVirtualIsSet(UMLPackage.DEPLOYMENT_TARGET__NAME) + ? (String) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DEPLOYMENT_TARGET__VISIBILITY : + return eVirtualIsSet(UMLPackage.DEPLOYMENT_TARGET__VISIBILITY) + && eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DEPLOYMENT_TARGET__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DEPLOYMENT_TARGET__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DEPLOYMENT_TARGET__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__NAME_EXPRESSION) != null; + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getDeploymentTarget_Deployment()); + } + +} //DeploymentTargetImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyLinkActionImpl.java new file mode 100644 index 00000000..02311480 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyLinkActionImpl.java @@ -0,0 +1,268 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestroyLinkActionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; + +import org.eclipse.uml2.uml.DestroyLinkAction; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.LinkEndDestructionData; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Destroy Link Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl#getEndData End Data}
  • + *
+ *

+ * + * @generated + */ +public class DestroyLinkActionImpl + extends WriteLinkActionImpl + implements DestroyLinkAction { + + /** + * + * + * @generated + */ + protected DestroyLinkActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDestroyLinkAction(); + } + + /** + * + * + * @generated + */ + public List getEndData() { + List endData = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__END_DATA); + if (endData == null) { + eVirtualSet(UMLPackage.DESTROY_LINK_ACTION__END_DATA, + endData = new EObjectContainmentEList( + LinkEndDestructionData.class, this, + UMLPackage.DESTROY_LINK_ACTION__END_DATA)); + } + return endData; + } + + /** + * + * + * @generated + */ + public LinkEndData createEndData() { + LinkEndDestructionData newEndData = UMLFactory.eINSTANCE + .createLinkEndDestructionData(); + getEndData().add(newEndData); + return newEndData; + } + + /** + * + * + * @generated + */ + public boolean isSetEndData() { + List endData = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DESTROY_LINK_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DESTROY_LINK_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DESTROY_LINK_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DESTROY_LINK_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DESTROY_LINK_ACTION__NAME : + return getName(); + case UMLPackage.DESTROY_LINK_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.DESTROY_LINK_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DESTROY_LINK_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DESTROY_LINK_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DESTROY_LINK_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DESTROY_LINK_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DESTROY_LINK_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.DESTROY_LINK_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.DESTROY_LINK_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.DESTROY_LINK_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.DESTROY_LINK_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.DESTROY_LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.DESTROY_LINK_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.DESTROY_LINK_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.DESTROY_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.DESTROY_LINK_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.DESTROY_LINK_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.DESTROY_LINK_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.DESTROY_LINK_ACTION__INPUT : + return getInputs(); + case UMLPackage.DESTROY_LINK_ACTION__CONTEXT : + return getContext(); + case UMLPackage.DESTROY_LINK_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.DESTROY_LINK_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.DESTROY_LINK_ACTION__END_DATA : + return getEndData(); + case UMLPackage.DESTROY_LINK_ACTION__INPUT_VALUE : + return getInputValues(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DESTROY_LINK_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DESTROY_LINK_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.DESTROY_LINK_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.DESTROY_LINK_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DESTROY_LINK_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.DESTROY_LINK_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DESTROY_LINK_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DESTROY_LINK_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DESTROY_LINK_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.DESTROY_LINK_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.DESTROY_LINK_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.DESTROY_LINK_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.DESTROY_LINK_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.DESTROY_LINK_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.DESTROY_LINK_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.DESTROY_LINK_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.DESTROY_LINK_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.DESTROY_LINK_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.DESTROY_LINK_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__END_DATA : + List endData = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + case UMLPackage.DESTROY_LINK_ACTION__INPUT_VALUE : + List inputValue = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__INPUT_VALUE); + return inputValue != null && !inputValue.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //DestroyLinkActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java new file mode 100644 index 00000000..e972011e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java @@ -0,0 +1,709 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestroyObjectActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.DestroyObjectAction; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.DestroyObjectActionOperations; + +/** + * + * An implementation of the model object 'Destroy Object Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#isDestroyLinks Is Destroy Links}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#isDestroyOwnedObjects Is Destroy Owned Objects}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#getTarget Target}
  • + *
+ *

+ * + * @generated + */ +public class DestroyObjectActionImpl + extends ActionImpl + implements DestroyObjectAction { + + /** + * The default value of the '{@link #isDestroyLinks() Is Destroy Links}' attribute. + * + * + * @see #isDestroyLinks() + * @generated + * @ordered + */ + protected static final boolean IS_DESTROY_LINKS_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDestroyLinks() Is Destroy Links}' attribute. + * + * + * @see #isDestroyLinks() + * @generated + * @ordered + */ + protected static final int IS_DESTROY_LINKS_EFLAG = 1 << 9; + + /** + * The default value of the '{@link #isDestroyOwnedObjects() Is Destroy Owned Objects}' attribute. + * + * + * @see #isDestroyOwnedObjects() + * @generated + * @ordered + */ + protected static final boolean IS_DESTROY_OWNED_OBJECTS_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDestroyOwnedObjects() Is Destroy Owned Objects}' attribute. + * + * + * @see #isDestroyOwnedObjects() + * @generated + * @ordered + */ + protected static final int IS_DESTROY_OWNED_OBJECTS_EFLAG = 1 << 10; + + /** + * + * + * @generated + */ + protected DestroyObjectActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDestroyObjectAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.DESTROY_OBJECT_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.DESTROY_OBJECT_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getDestroyObjectAction_Target()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isDestroyLinks() { + return (eFlags & IS_DESTROY_LINKS_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDestroyLinks(boolean newIsDestroyLinks) { + boolean oldIsDestroyLinks = (eFlags & IS_DESTROY_LINKS_EFLAG) != 0; + if (newIsDestroyLinks) + eFlags |= IS_DESTROY_LINKS_EFLAG; + else + eFlags &= ~IS_DESTROY_LINKS_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_LINKS, + oldIsDestroyLinks, newIsDestroyLinks)); + + } + + /** + * + * + * @generated + */ + public boolean isDestroyOwnedObjects() { + return (eFlags & IS_DESTROY_OWNED_OBJECTS_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDestroyOwnedObjects(boolean newIsDestroyOwnedObjects) { + boolean oldIsDestroyOwnedObjects = (eFlags & IS_DESTROY_OWNED_OBJECTS_EFLAG) != 0; + if (newIsDestroyOwnedObjects) + eFlags |= IS_DESTROY_OWNED_OBJECTS_EFLAG; + else + eFlags &= ~IS_DESTROY_OWNED_OBJECTS_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_OWNED_OBJECTS, + oldIsDestroyOwnedObjects, newIsDestroyOwnedObjects)); + + } + + /** + * + * + * @generated + */ + public InputPin getTarget() { + InputPin target = (InputPin) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__TARGET); + return target; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(InputPin newTarget, + NotificationChain msgs) { + Object oldTarget = eVirtualSet( + UMLPackage.DESTROY_OBJECT_ACTION__TARGET, newTarget); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.DESTROY_OBJECT_ACTION__TARGET, + oldTarget == EVIRTUAL_NO_VALUE + ? null + : oldTarget, newTarget); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTarget(InputPin newTarget) { + InputPin target = (InputPin) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__TARGET); + if (newTarget != target) { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DESTROY_OBJECT_ACTION__TARGET, null, msgs); + if (newTarget != null) + msgs = ((InternalEObject) newTarget).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DESTROY_OBJECT_ACTION__TARGET, null, msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DESTROY_OBJECT_ACTION__TARGET, newTarget, newTarget)); + + } + + /** + * + * + * @generated + */ + public InputPin createTarget(EClass eClass) { + InputPin newTarget = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public InputPin createTarget() { + InputPin newTarget = UMLFactory.eINSTANCE.createInputPin(); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return DestroyObjectActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoType(DiagnosticChain diagnostics, Map context) { + return DestroyObjectActionOperations.validateNoType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.DESTROY_OBJECT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.DESTROY_OBJECT_ACTION__TARGET : + return basicSetTarget(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DESTROY_OBJECT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DESTROY_OBJECT_ACTION__NAME : + return getName(); + case UMLPackage.DESTROY_OBJECT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.DESTROY_OBJECT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DESTROY_OBJECT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DESTROY_OBJECT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.DESTROY_OBJECT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.DESTROY_OBJECT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.DESTROY_OBJECT_ACTION__INPUT : + return getInputs(); + case UMLPackage.DESTROY_OBJECT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_LINKS : + return isDestroyLinks() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_OWNED_OBJECTS : + return isDestroyOwnedObjects() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DESTROY_OBJECT_ACTION__TARGET : + return getTarget(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DESTROY_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_LINKS : + setIsDestroyLinks(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_OWNED_OBJECTS : + setIsDestroyOwnedObjects(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__TARGET : + setTarget((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DESTROY_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_LINKS : + setIsDestroyLinks(IS_DESTROY_LINKS_EDEFAULT); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_OWNED_OBJECTS : + setIsDestroyOwnedObjects(IS_DESTROY_OWNED_OBJECTS_EDEFAULT); + return; + case UMLPackage.DESTROY_OBJECT_ACTION__TARGET : + setTarget((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DESTROY_OBJECT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.DESTROY_OBJECT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.DESTROY_OBJECT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DESTROY_OBJECT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.DESTROY_OBJECT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DESTROY_OBJECT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.DESTROY_OBJECT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.DESTROY_OBJECT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.DESTROY_OBJECT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.DESTROY_OBJECT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.DESTROY_OBJECT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_LINKS : + return ((eFlags & IS_DESTROY_LINKS_EFLAG) != 0) != IS_DESTROY_LINKS_EDEFAULT; + case UMLPackage.DESTROY_OBJECT_ACTION__IS_DESTROY_OWNED_OBJECTS : + return ((eFlags & IS_DESTROY_OWNED_OBJECTS_EFLAG) != 0) != IS_DESTROY_OWNED_OBJECTS_EDEFAULT; + case UMLPackage.DESTROY_OBJECT_ACTION__TARGET : + return eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__TARGET) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDestroyLinks: "); //$NON-NLS-1$ + result.append((eFlags & IS_DESTROY_LINKS_EFLAG) != 0); + result.append(", isDestroyOwnedObjects: "); //$NON-NLS-1$ + result.append((eFlags & IS_DESTROY_OWNED_OBJECTS_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getDestroyObjectAction_Target()); + } + +} //DestroyObjectActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionEventImpl.java new file mode 100644 index 00000000..226e5e9c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionEventImpl.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestructionEventImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.DestructionEvent; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.DestructionEventOperations; + +/** + * + * An implementation of the model object 'Destruction Event'. + * + *

+ *

+ * + * @generated + */ +public class DestructionEventImpl + extends EventImpl + implements DestructionEvent { + + /** + * + * + * @generated + */ + protected DestructionEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDestructionEvent(); + } + + /** + * + * + * @generated + */ + public boolean validateNoOccurrenceSpecificationsBelow( + DiagnosticChain diagnostics, Map context) { + return DestructionEventOperations + .validateNoOccurrenceSpecificationsBelow(this, diagnostics, context); + } + +} //DestructionEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeviceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeviceImpl.java new file mode 100644 index 00000000..fe0a24e7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeviceImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeviceImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.Device; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Device'. + * + *

+ *

+ * + * @generated + */ +public class DeviceImpl + extends NodeImpl + implements Device { + + /** + * + * + * @generated + */ + protected DeviceImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDevice(); + } + +} //DeviceImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DirectedRelationshipImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DirectedRelationshipImpl.java new file mode 100644 index 00000000..a2c1c00e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DirectedRelationshipImpl.java @@ -0,0 +1,193 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DirectedRelationshipImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Directed Relationship'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl#getTargets Target}
  • + *
+ *

+ * + * @generated + */ +public abstract class DirectedRelationshipImpl + extends RelationshipImpl + implements DirectedRelationship { + + /** + * + * + * @generated + */ + protected DirectedRelationshipImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDirectedRelationship(); + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.DIRECTED_RELATIONSHIP__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.DIRECTED_RELATIONSHIP__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.DIRECTED_RELATIONSHIP__SOURCE, + new EStructuralFeature[]{})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.DIRECTED_RELATIONSHIP__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.DIRECTED_RELATIONSHIP__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.DIRECTED_RELATIONSHIP__RELATED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDirectedRelationship_Source(), + UMLPackage.eINSTANCE.getDirectedRelationship_Target()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.DIRECTED_RELATIONSHIP__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.DIRECTED_RELATIONSHIP__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.DIRECTED_RELATIONSHIP__TARGET, + new EStructuralFeature[]{})); + } + return target; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DIRECTED_RELATIONSHIP__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DIRECTED_RELATIONSHIP__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DIRECTED_RELATIONSHIP__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DIRECTED_RELATIONSHIP__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DIRECTED_RELATIONSHIP__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.DIRECTED_RELATIONSHIP__SOURCE : + return getSources(); + case UMLPackage.DIRECTED_RELATIONSHIP__TARGET : + return getTargets(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DIRECTED_RELATIONSHIP__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DIRECTED_RELATIONSHIP__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DIRECTED_RELATIONSHIP__OWNER : + return isSetOwner(); + case UMLPackage.DIRECTED_RELATIONSHIP__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DIRECTED_RELATIONSHIP__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DIRECTED_RELATIONSHIP__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.DIRECTED_RELATIONSHIP__SOURCE : + return isSetSources(); + case UMLPackage.DIRECTED_RELATIONSHIP__TARGET : + return isSetTargets(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return super.isSetRelatedElements() || isSetSources() || isSetTargets(); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return false; + } + +} //DirectedRelationshipImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java new file mode 100644 index 00000000..8d1549ab --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationConstraintImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.DurationConstraint; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * An implementation of the model object 'Duration Constraint'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl#getSpecification Specification}
  • + *
+ *

+ * + * @generated + */ +public class DurationConstraintImpl + extends IntervalConstraintImpl + implements DurationConstraint { + + /** + * + * + * @generated + */ + protected DurationConstraintImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDurationConstraint(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getSpecification() { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__SPECIFICATION); + return specification; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSpecification( + ValueSpecification newSpecification, NotificationChain msgs) { + Object oldSpecification = eVirtualSet( + UMLPackage.DURATION_CONSTRAINT__SPECIFICATION, newSpecification); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.DURATION_CONSTRAINT__SPECIFICATION, + oldSpecification == EVIRTUAL_NO_VALUE + ? null + : oldSpecification, newSpecification); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSpecification(ValueSpecification newSpecification) { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__SPECIFICATION); + if (newSpecification != specification) { + NotificationChain msgs = null; + if (specification != null) + msgs = ((InternalEObject) specification).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DURATION_CONSTRAINT__SPECIFICATION, null, + msgs); + if (newSpecification != null) + msgs = ((InternalEObject) newSpecification).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DURATION_CONSTRAINT__SPECIFICATION, null, + msgs); + msgs = basicSetSpecification(newSpecification, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DURATION_CONSTRAINT__SPECIFICATION, + newSpecification, newSpecification)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createSpecification(EClass eClass) { + ValueSpecification newSpecification = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setSpecification(newSpecification); + return newSpecification; + } + + /** + * + * + * @generated + */ + public boolean isSetSpecification() { + return eVirtualGet(UMLPackage.DURATION_CONSTRAINT__SPECIFICATION) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_CONSTRAINT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DURATION_CONSTRAINT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DURATION_CONSTRAINT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DURATION_CONSTRAINT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DURATION_CONSTRAINT__NAME : + return getName(); + case UMLPackage.DURATION_CONSTRAINT__VISIBILITY : + return getVisibility(); + case UMLPackage.DURATION_CONSTRAINT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DURATION_CONSTRAINT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DURATION_CONSTRAINT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DURATION_CONSTRAINT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DURATION_CONSTRAINT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DURATION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DURATION_CONSTRAINT__CONSTRAINED_ELEMENT : + return getConstrainedElements(); + case UMLPackage.DURATION_CONSTRAINT__SPECIFICATION : + return getSpecification(); + case UMLPackage.DURATION_CONSTRAINT__CONTEXT : + return getContext(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_CONSTRAINT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DURATION_CONSTRAINT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DURATION_CONSTRAINT__OWNER : + return isSetOwner(); + case UMLPackage.DURATION_CONSTRAINT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DURATION_CONSTRAINT__NAME : + String name = eVirtualIsSet(UMLPackage.DURATION_CONSTRAINT__NAME) + ? (String) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DURATION_CONSTRAINT__VISIBILITY : + return eVirtualIsSet(UMLPackage.DURATION_CONSTRAINT__VISIBILITY) + && eVirtualGet(UMLPackage.DURATION_CONSTRAINT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DURATION_CONSTRAINT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DURATION_CONSTRAINT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DURATION_CONSTRAINT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DURATION_CONSTRAINT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DURATION_CONSTRAINT__NAME_EXPRESSION) != null; + case UMLPackage.DURATION_CONSTRAINT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DURATION_CONSTRAINT__TEMPLATE_PARAMETER) != null; + case UMLPackage.DURATION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DURATION_CONSTRAINT__CONSTRAINED_ELEMENT : + List constrainedElement = (List) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__CONSTRAINED_ELEMENT); + return constrainedElement != null + && !constrainedElement.isEmpty(); + case UMLPackage.DURATION_CONSTRAINT__SPECIFICATION : + return eVirtualGet(UMLPackage.DURATION_CONSTRAINT__SPECIFICATION) != null; + case UMLPackage.DURATION_CONSTRAINT__CONTEXT : + return getContext() != null; + } + return eDynamicIsSet(eFeature); + } + +} //DurationConstraintImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java new file mode 100644 index 00000000..cacc6009 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java @@ -0,0 +1,360 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Duration'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationImpl#isFirstTime First Time}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationImpl#getEvents Event}
  • + *
+ *

+ * + * @generated + */ +public class DurationImpl + extends ValueSpecificationImpl + implements Duration { + + /** + * The default value of the '{@link #isFirstTime() First Time}' attribute. + * + * + * @see #isFirstTime() + * @generated + * @ordered + */ + protected static final boolean FIRST_TIME_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isFirstTime() First Time}' attribute. + * + * + * @see #isFirstTime() + * @generated + * @ordered + */ + protected static final int FIRST_TIME_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected DurationImpl() { + super(); + eFlags |= FIRST_TIME_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDuration(); + } + + /** + * + * + * @generated + */ + public boolean isFirstTime() { + return (eFlags & FIRST_TIME_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setFirstTime(boolean newFirstTime) { + boolean oldFirstTime = (eFlags & FIRST_TIME_EFLAG) != 0; + if (newFirstTime) + eFlags |= FIRST_TIME_EFLAG; + else + eFlags &= ~FIRST_TIME_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DURATION__FIRST_TIME, oldFirstTime, newFirstTime)); + + } + + /** + * + * + * @generated + */ + public List getEvents() { + List event = (List) eVirtualGet(UMLPackage.DURATION__EVENT); + if (event == null) { + eVirtualSet(UMLPackage.DURATION__EVENT, + event = new EObjectResolvingEList(NamedElement.class, this, + UMLPackage.DURATION__EVENT)); + } + return event; + } + + /** + * + * + * @generated + */ + public NamedElement getEvent(String name) { + for (Iterator i = getEvents().iterator(); i.hasNext();) { + NamedElement event = (NamedElement) i.next(); + if (name.equals(event.getName())) { + return event; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DURATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DURATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DURATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DURATION__NAME : + return getName(); + case UMLPackage.DURATION__VISIBILITY : + return getVisibility(); + case UMLPackage.DURATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DURATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DURATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DURATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DURATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DURATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DURATION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.DURATION__FIRST_TIME : + return isFirstTime() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DURATION__EVENT : + return getEvents(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DURATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DURATION__NAME : + setName((String) newValue); + return; + case UMLPackage.DURATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DURATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DURATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DURATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DURATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.DURATION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.DURATION__FIRST_TIME : + setFirstTime(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DURATION__EVENT : + getEvents().clear(); + getEvents().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DURATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DURATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DURATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DURATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DURATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DURATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DURATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.DURATION__TYPE : + setType((Type) null); + return; + case UMLPackage.DURATION__FIRST_TIME : + setFirstTime(FIRST_TIME_EDEFAULT); + return; + case UMLPackage.DURATION__EVENT : + getEvents().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DURATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DURATION__OWNER : + return isSetOwner(); + case UMLPackage.DURATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DURATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DURATION__NAME : + String name = eVirtualIsSet(UMLPackage.DURATION__NAME) + ? (String) eVirtualGet(UMLPackage.DURATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DURATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.DURATION__VISIBILITY) + && eVirtualGet(UMLPackage.DURATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DURATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DURATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DURATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DURATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DURATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DURATION__NAME_EXPRESSION) != null; + case UMLPackage.DURATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DURATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.DURATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DURATION__TYPE : + return eVirtualGet(UMLPackage.DURATION__TYPE) != null; + case UMLPackage.DURATION__FIRST_TIME : + return ((eFlags & FIRST_TIME_EFLAG) != 0) != FIRST_TIME_EDEFAULT; + case UMLPackage.DURATION__EVENT : + List event = (List) eVirtualGet(UMLPackage.DURATION__EVENT); + return event != null && !event.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (firstTime: "); //$NON-NLS-1$ + result.append((eFlags & FIRST_TIME_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //DurationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationIntervalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationIntervalImpl.java new file mode 100644 index 00000000..389619ef --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationIntervalImpl.java @@ -0,0 +1,277 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationIntervalImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.DurationInterval; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * An implementation of the model object 'Duration Interval'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl#getMin Min}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl#getMax Max}
  • + *
+ *

+ * + * @generated + */ +public class DurationIntervalImpl + extends IntervalImpl + implements DurationInterval { + + /** + * + * + * @generated + */ + protected DurationIntervalImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDurationInterval(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getMin() { + ValueSpecification min = (ValueSpecification) eVirtualGet(UMLPackage.DURATION_INTERVAL__MIN); + if (min != null && min.eIsProxy()) { + ValueSpecification oldMin = min; + min = (ValueSpecification) eResolveProxy((InternalEObject) min); + if (min != oldMin) { + eVirtualSet(UMLPackage.DURATION_INTERVAL__MIN, min); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.DURATION_INTERVAL__MIN, oldMin, min)); + } + } + return min; + } + + /** + * + * + * @generated + */ + public ValueSpecification basicGetMin() { + return (ValueSpecification) eVirtualGet(UMLPackage.DURATION_INTERVAL__MIN); + } + + /** + * + * + * @generated + */ + public void setMin(ValueSpecification newMin) { + ValueSpecification min = newMin; + Object oldMin = eVirtualSet(UMLPackage.DURATION_INTERVAL__MIN, min); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DURATION_INTERVAL__MIN, oldMin == EVIRTUAL_NO_VALUE + ? null + : oldMin, min)); + + } + + /** + * + * + * @generated + */ + public boolean isSetMin() { + return eVirtualGet(UMLPackage.DURATION_INTERVAL__MIN) != null; + } + + /** + * + * + * @generated + */ + public ValueSpecification getMax() { + ValueSpecification max = (ValueSpecification) eVirtualGet(UMLPackage.DURATION_INTERVAL__MAX); + if (max != null && max.eIsProxy()) { + ValueSpecification oldMax = max; + max = (ValueSpecification) eResolveProxy((InternalEObject) max); + if (max != oldMax) { + eVirtualSet(UMLPackage.DURATION_INTERVAL__MAX, max); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.DURATION_INTERVAL__MAX, oldMax, max)); + } + } + return max; + } + + /** + * + * + * @generated + */ + public ValueSpecification basicGetMax() { + return (ValueSpecification) eVirtualGet(UMLPackage.DURATION_INTERVAL__MAX); + } + + /** + * + * + * @generated + */ + public void setMax(ValueSpecification newMax) { + ValueSpecification max = newMax; + Object oldMax = eVirtualSet(UMLPackage.DURATION_INTERVAL__MAX, max); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DURATION_INTERVAL__MAX, oldMax == EVIRTUAL_NO_VALUE + ? null + : oldMax, max)); + + } + + /** + * + * + * @generated + */ + public boolean isSetMax() { + return eVirtualGet(UMLPackage.DURATION_INTERVAL__MAX) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_INTERVAL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DURATION_INTERVAL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DURATION_INTERVAL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DURATION_INTERVAL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DURATION_INTERVAL__NAME : + return getName(); + case UMLPackage.DURATION_INTERVAL__VISIBILITY : + return getVisibility(); + case UMLPackage.DURATION_INTERVAL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DURATION_INTERVAL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DURATION_INTERVAL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DURATION_INTERVAL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DURATION_INTERVAL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.DURATION_INTERVAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.DURATION_INTERVAL__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.DURATION_INTERVAL__MIN : + if (resolve) + return getMin(); + return basicGetMin(); + case UMLPackage.DURATION_INTERVAL__MAX : + if (resolve) + return getMax(); + return basicGetMax(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_INTERVAL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DURATION_INTERVAL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DURATION_INTERVAL__OWNER : + return isSetOwner(); + case UMLPackage.DURATION_INTERVAL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DURATION_INTERVAL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DURATION_INTERVAL__NAME : + String name = eVirtualIsSet(UMLPackage.DURATION_INTERVAL__NAME) + ? (String) eVirtualGet(UMLPackage.DURATION_INTERVAL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DURATION_INTERVAL__VISIBILITY : + return eVirtualIsSet(UMLPackage.DURATION_INTERVAL__VISIBILITY) + && eVirtualGet(UMLPackage.DURATION_INTERVAL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DURATION_INTERVAL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DURATION_INTERVAL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DURATION_INTERVAL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DURATION_INTERVAL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DURATION_INTERVAL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DURATION_INTERVAL__NAME_EXPRESSION) != null; + case UMLPackage.DURATION_INTERVAL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.DURATION_INTERVAL__TEMPLATE_PARAMETER) != null; + case UMLPackage.DURATION_INTERVAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.DURATION_INTERVAL__TYPE : + return eVirtualGet(UMLPackage.DURATION_INTERVAL__TYPE) != null; + case UMLPackage.DURATION_INTERVAL__MIN : + return eVirtualGet(UMLPackage.DURATION_INTERVAL__MIN) != null; + case UMLPackage.DURATION_INTERVAL__MAX : + return eVirtualGet(UMLPackage.DURATION_INTERVAL__MAX) != null; + } + return eDynamicIsSet(eFeature); + } + +} //DurationIntervalImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationActionImpl.java new file mode 100644 index 00000000..5231b6a2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationActionImpl.java @@ -0,0 +1,542 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationObservationActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.DurationObservationAction; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.DurationObservationActionOperations; + +/** + * + * An implementation of the model object 'Duration Observation Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationObservationActionImpl#getDuration Duration}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.DurationObservationActionImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class DurationObservationActionImpl + extends WriteStructuralFeatureActionImpl + implements DurationObservationAction { + + /** + * + * + * @generated + */ + protected DurationObservationActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getDurationObservationAction(); + } + + /** + * + * + * @generated + */ + public Duration getDuration() { + // TODO: implement this method to return the 'Duration' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setDuration(Duration newDuration) { + // TODO: implement this method to set the 'Duration' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public InputPin getValue() { + InputPin value = (InputPin) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VALUE); + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(InputPin newValue, + NotificationChain msgs) { + Object oldValue = eVirtualSet( + UMLPackage.DURATION_OBSERVATION_ACTION__VALUE, newValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.DURATION_OBSERVATION_ACTION__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(InputPin newValue) { + InputPin value = (InputPin) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VALUE); + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DURATION_OBSERVATION_ACTION__VALUE, null, + msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.DURATION_OBSERVATION_ACTION__VALUE, null, + msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.DURATION_OBSERVATION_ACTION__VALUE, newValue, + newValue)); + + } + + /** + * + * + * @generated + */ + public InputPin createValue(EClass eClass) { + InputPin newValue = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public InputPin createValue() { + InputPin newValue = UMLFactory.eINSTANCE.createInputPin(); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public boolean isSetValue() { + return eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VALUE) != null; + } + + /** + * + * + * @generated + */ + public boolean validateInputValueDuration(DiagnosticChain diagnostics, + Map context) { + return DurationObservationActionOperations.validateInputValueDuration( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_OBSERVATION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME : + return getName(); + case UMLPackage.DURATION_OBSERVATION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.DURATION_OBSERVATION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.DURATION_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.DURATION_OBSERVATION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.DURATION_OBSERVATION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.DURATION_OBSERVATION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.DURATION_OBSERVATION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.DURATION_OBSERVATION_ACTION__INPUT : + return getInputs(); + case UMLPackage.DURATION_OBSERVATION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.DURATION_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OBJECT : + return getObject(); + case UMLPackage.DURATION_OBSERVATION_ACTION__VALUE : + return getValue(); + case UMLPackage.DURATION_OBSERVATION_ACTION__DURATION : + return getDuration(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_OBSERVATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__DURATION : + setDuration((Duration) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_OBSERVATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.DURATION_OBSERVATION_ACTION__DURATION : + setDuration((Duration) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.DURATION_OBSERVATION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.DURATION_OBSERVATION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.DURATION_OBSERVATION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.DURATION_OBSERVATION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.DURATION_OBSERVATION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.DURATION_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.DURATION_OBSERVATION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.DURATION_OBSERVATION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.DURATION_OBSERVATION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.DURATION_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__OBJECT : + return eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__OBJECT) != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__VALUE : + return eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VALUE) != null; + case UMLPackage.DURATION_OBSERVATION_ACTION__DURATION : + return getDuration() != null; + } + return eDynamicIsSet(eFeature); + } + +} //DurationObservationActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImpl.java new file mode 100644 index 00000000..e4169f96 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImpl.java @@ -0,0 +1,389 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ElementImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.EModelElementImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ElementOperations; + +/** + * + * An implementation of the model object 'Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImpl#getOwnedComments Owned Comment}
  • + *
+ *

+ * + * @generated + */ +public abstract class ElementImpl + extends EModelElementImpl + implements Element { + + /** + * An array of objects representing the values of non-primitive features. + * + * + * @generated + */ + protected Object[] eVirtualValues = null; + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits0 = 0; + + /** + * + * + * @generated + */ + protected ElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getElement(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.ELEMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.ELEMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.ELEMENT__OWNED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getElement_OwnedComment()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedComments() { + List ownedComment = (List) eVirtualGet(UMLPackage.ELEMENT__OWNED_COMMENT); + if (ownedComment == null) { + eVirtualSet(UMLPackage.ELEMENT__OWNED_COMMENT, + ownedComment = new EObjectContainmentEList(Comment.class, this, + UMLPackage.ELEMENT__OWNED_COMMENT)); + } + return ownedComment; + } + + /** + * + * + * @generated + */ + public Comment createOwnedComment() { + Comment newOwnedComment = UMLFactory.eINSTANCE.createComment(); + getOwnedComments().add(newOwnedComment); + return newOwnedComment; + } + + /** + * + * + * @generated + */ + public boolean validateNotOwnSelf(DiagnosticChain diagnostics, Map context) { + return ElementOperations.validateNotOwnSelf(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateHasOwner(DiagnosticChain diagnostics, Map context) { + return ElementOperations.validateHasOwner(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public List allOwnedElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getElement().getEOperations().get(2)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE.getElement() + .getEOperations().get(2), result = ElementOperations + .allOwnedElements(this)); + } + return result; + } + return ElementOperations.allOwnedElements(this); + } + + /** + * + * + * @generated + */ + public boolean mustBeOwned() { + return ElementOperations.mustBeOwned(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + protected Object[] eVirtualValues() { + return eVirtualValues; + } + + /** + * + * + * @generated + */ + protected void eSetVirtualValues(Object[] newValues) { + eVirtualValues = newValues; + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * Retrieves the cache adapter for this 'Element'. + * + * + * @return The cache adapter for this 'Element'. + * @generated + */ + protected CacheAdapter getCacheAdapter() { + for (Iterator i = eAdapters().iterator(); i.hasNext();) { + Adapter adapter = (Adapter) i.next(); + if (adapter instanceof CacheAdapter) { + return (CacheAdapter) adapter; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return eIsSet(UMLPackage.eINSTANCE.getElement_OwnedComment()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + return null; + } + + /** + * + * + * @generated + */ + public Element getOwner() { + Element owner = basicGetOwner(); + return owner == null + ? null + : (Element) eResolveProxy((InternalEObject) owner); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return false; + } + +} //ElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java new file mode 100644 index 00000000..77caffd5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java @@ -0,0 +1,610 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ElementImportImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ElementImportOperations; + +/** + * + * An implementation of the model object 'Element Import'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getAlias Alias}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getImportedElement Imported Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getImportingNamespace Importing Namespace}
  • + *
+ *

+ * + * @generated + */ +public class ElementImportImpl + extends DirectedRelationshipImpl + implements ElementImport { + + /** + * The default value of the '{@link #getVisibility() Visibility}' attribute. + * + * + * @see #getVisibility() + * @generated + * @ordered + */ + protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC_LITERAL; + + /** + * The default value of the '{@link #getAlias() Alias}' attribute. + * + * + * @see #getAlias() + * @generated + * @ordered + */ + protected static final String ALIAS_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected ElementImportImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getElementImport(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.ELEMENT_IMPORT__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.ELEMENT_IMPORT__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.ELEMENT_IMPORT__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getElementImport_ImportedElement()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.ELEMENT_IMPORT__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.ELEMENT_IMPORT__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.ELEMENT_IMPORT__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getElementImport_ImportingNamespace()})); + } + return source; + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.ELEMENT_IMPORT__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet( + UMLPackage.ELEMENT_IMPORT__VISIBILITY, visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ELEMENT_IMPORT__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public String getAlias() { + String alias = (String) eVirtualGet(UMLPackage.ELEMENT_IMPORT__ALIAS); + return alias == null + ? ALIAS_EDEFAULT + : alias; + } + + /** + * + * + * @generated + */ + public void setAlias(String newAlias) { + newAlias = newAlias == null + ? ALIAS_EDEFAULT + : newAlias; + String alias = newAlias; + Object oldAlias = eVirtualSet(UMLPackage.ELEMENT_IMPORT__ALIAS, alias); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ELEMENT_IMPORT__ALIAS, oldAlias == EVIRTUAL_NO_VALUE + ? ALIAS_EDEFAULT + : oldAlias, alias)); + + } + + /** + * + * + * @generated + */ + public PackageableElement getImportedElement() { + PackageableElement importedElement = (PackageableElement) eVirtualGet(UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT); + if (importedElement != null && importedElement.eIsProxy()) { + PackageableElement oldImportedElement = importedElement; + importedElement = (PackageableElement) eResolveProxy((InternalEObject) importedElement); + if (importedElement != oldImportedElement) { + eVirtualSet(UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT, + importedElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT, + oldImportedElement, importedElement)); + } + } + return importedElement; + } + + /** + * + * + * @generated + */ + public PackageableElement basicGetImportedElement() { + return (PackageableElement) eVirtualGet(UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT); + } + + /** + * + * + * @generated + */ + public void setImportedElement(PackageableElement newImportedElement) { + PackageableElement importedElement = newImportedElement; + Object oldImportedElement = eVirtualSet( + UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT, importedElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT, + oldImportedElement == EVIRTUAL_NO_VALUE + ? null + : oldImportedElement, importedElement)); + + } + + /** + * + * + * @generated + */ + public Namespace getImportingNamespace() { + if (eContainerFeatureID != UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE) + return null; + return (Namespace) eContainer; + } + + /** + * + * + * @generated + */ + public void setImportingNamespace(Namespace newImportingNamespace) { + if (newImportingNamespace != eContainer + || (eContainerFeatureID != UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE && newImportingNamespace != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newImportingNamespace)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newImportingNamespace != null) + msgs = ((InternalEObject) newImportingNamespace).eInverseAdd( + this, UMLPackage.NAMESPACE__ELEMENT_IMPORT, + Namespace.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newImportingNamespace, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE, + newImportingNamespace, newImportingNamespace)); + + } + + /** + * + * + * @generated + */ + public boolean validateVisibilityPublicOrPrivate( + DiagnosticChain diagnostics, Map context) { + return ElementImportOperations.validateVisibilityPublicOrPrivate(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateVisibilityOrPrivate(DiagnosticChain diagnostics, + Map context) { + return ElementImportOperations.validateVisibilityOrPrivate(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateImportedElementIsPublic(DiagnosticChain diagnostics, + Map context) { + return ElementImportOperations.validateImportedElementIsPublic(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public String getName() { + return ElementImportOperations.getName(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ELEMENT_IMPORT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ELEMENT_IMPORT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ELEMENT_IMPORT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + return eBasicSetContainer(null, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + return eContainer.eInverseRemove(this, + UMLPackage.NAMESPACE__ELEMENT_IMPORT, Namespace.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT_IMPORT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ELEMENT_IMPORT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ELEMENT_IMPORT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ELEMENT_IMPORT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ELEMENT_IMPORT__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.ELEMENT_IMPORT__SOURCE : + return getSources(); + case UMLPackage.ELEMENT_IMPORT__TARGET : + return getTargets(); + case UMLPackage.ELEMENT_IMPORT__VISIBILITY : + return getVisibility(); + case UMLPackage.ELEMENT_IMPORT__ALIAS : + return getAlias(); + case UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT : + if (resolve) + return getImportedElement(); + return basicGetImportedElement(); + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + return getImportingNamespace(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT_IMPORT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ELEMENT_IMPORT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ELEMENT_IMPORT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ELEMENT_IMPORT__ALIAS : + setAlias((String) newValue); + return; + case UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT : + setImportedElement((PackageableElement) newValue); + return; + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + setImportingNamespace((Namespace) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT_IMPORT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ELEMENT_IMPORT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ELEMENT_IMPORT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ELEMENT_IMPORT__ALIAS : + setAlias(ALIAS_EDEFAULT); + return; + case UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT : + setImportedElement((PackageableElement) null); + return; + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + setImportingNamespace((Namespace) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ELEMENT_IMPORT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ELEMENT_IMPORT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ELEMENT_IMPORT__OWNER : + return isSetOwner(); + case UMLPackage.ELEMENT_IMPORT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ELEMENT_IMPORT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ELEMENT_IMPORT__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.ELEMENT_IMPORT__SOURCE : + return isSetSources(); + case UMLPackage.ELEMENT_IMPORT__TARGET : + return isSetTargets(); + case UMLPackage.ELEMENT_IMPORT__VISIBILITY : + return eVirtualIsSet(UMLPackage.ELEMENT_IMPORT__VISIBILITY) + && eVirtualGet(UMLPackage.ELEMENT_IMPORT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ELEMENT_IMPORT__ALIAS : + String alias = eVirtualIsSet(UMLPackage.ELEMENT_IMPORT__ALIAS) + ? (String) eVirtualGet(UMLPackage.ELEMENT_IMPORT__ALIAS) + : ALIAS_EDEFAULT; + return ALIAS_EDEFAULT == null + ? alias != null + : !ALIAS_EDEFAULT.equals(alias); + case UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT : + return eVirtualGet(UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT) != null; + case UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE : + return getImportingNamespace() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (visibility: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.ELEMENT_IMPORT__VISIBILITY) + ? eVirtualGet(UMLPackage.ELEMENT_IMPORT__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(", alias: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.ELEMENT_IMPORT__ALIAS) + ? eVirtualGet(UMLPackage.ELEMENT_IMPORT__ALIAS) + : ALIAS_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getElementImport_ImportedElement()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE + .getElementImport_ImportingNamespace()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Namespace importingNamespace = getImportingNamespace(); + if (importingNamespace != null) { + return importingNamespace; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getElementImport_ImportingNamespace()); + } + +} //ElementImportImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EncapsulatedClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EncapsulatedClassifierImpl.java new file mode 100644 index 00000000..2e200be2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EncapsulatedClassifierImpl.java @@ -0,0 +1,653 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: EncapsulatedClassifierImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentEList; + +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.EncapsulatedClassifier; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Encapsulated Classifier'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl#getOwnedPorts Owned Port}
  • + *
+ *

+ * + * @generated + */ +public abstract class EncapsulatedClassifierImpl + extends StructuredClassifierImpl + implements EncapsulatedClassifier { + + /** + * + * + * @generated + */ + protected EncapsulatedClassifierImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getEncapsulatedClassifier(); + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE, + ownedAttribute = new SupersetEObjectContainmentEList( + Property.class, this, + UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE, + new int[]{UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT})); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public List getOwnedPorts() { + List ownedPort = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT); + if (ownedPort == null) { + eVirtualSet( + UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT, + ownedPort = new SubsetEObjectEList( + Port.class, + this, + UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT, + new int[]{UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE})); + } + return ownedPort; + } + + /** + * + * + * @generated + */ + public Port getOwnedPort(String name) { + for (Iterator i = getOwnedPorts().iterator(); i.hasNext();) { + Port ownedPort = (Port) i.next(); + if (name.equals(ownedPort.getName())) { + return ownedPort; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ENCAPSULATED_CLASSIFIER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENCAPSULATED_CLASSIFIER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME : + return getName(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__VISIBILITY : + return getVisibility(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__MEMBER : + return getMembers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE : + return getPackage(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__FEATURE : + return getFeatures(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERAL : + return getGenerals(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__USE_CASE : + return getUseCases(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__ATTRIBUTE : + return getAttributes(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__REPRESENTATION : + return getRepresentation(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__PART : + return getParts(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__ROLE : + return getRoles(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT : + return getOwnedPorts(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENCAPSULATED_CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME : + setName((String) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENCAPSULATED_CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT : + getOwnedPorts().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENCAPSULATED_CLASSIFIER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNER : + return isSetOwner(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME : + String name = eVirtualIsSet(UMLPackage.ENCAPSULATED_CLASSIFIER__NAME) + ? (String) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ENCAPSULATED_CLASSIFIER__VISIBILITY : + return eVirtualIsSet(UMLPackage.ENCAPSULATED_CLASSIFIER__VISIBILITY) + && eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ENCAPSULATED_CLASSIFIER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__NAME_EXPRESSION) != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__MEMBER : + return isSetMembers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_PARAMETER) != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__PACKAGE : + return getPackage() != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__FEATURE : + return isSetFeatures(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__REPRESENTATION : + return eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__REPRESENTATION) != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_SIGNATURE) != null; + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__PART : + return !getParts().isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__ROLE : + return isSetRoles(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.ENCAPSULATED_CLASSIFIER__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //EncapsulatedClassifierImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationImpl.java new file mode 100644 index 00000000..4c31649a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationImpl.java @@ -0,0 +1,764 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: EnumerationImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Enumeration'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl#getOwnedLiterals Owned Literal}
  • + *
+ *

+ * + * @generated + */ +public class EnumerationImpl + extends DataTypeImpl + implements Enumeration { + + /** + * + * + * @generated + */ + protected EnumerationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getEnumeration(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.ENUMERATION__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.ENUMERATION__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE.getDataType_OwnedAttribute(), + UMLPackage.eINSTANCE.getDataType_OwnedOperation(), + UMLPackage.eINSTANCE.getEnumeration_OwnedLiteral()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedLiterals() { + List ownedLiteral = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_LITERAL); + if (ownedLiteral == null) { + eVirtualSet(UMLPackage.ENUMERATION__OWNED_LITERAL, + ownedLiteral = new EObjectContainmentWithInverseEList( + EnumerationLiteral.class, this, + UMLPackage.ENUMERATION__OWNED_LITERAL, + UMLPackage.ENUMERATION_LITERAL__ENUMERATION)); + } + return ownedLiteral; + } + + /** + * + * + * @generated + */ + public EnumerationLiteral createOwnedLiteral() { + EnumerationLiteral newOwnedLiteral = UMLFactory.eINSTANCE + .createEnumerationLiteral(); + getOwnedLiterals().add(newOwnedLiteral); + return newOwnedLiteral; + } + + /** + * + * + * @generated + */ + public EnumerationLiteral getOwnedLiteral(String name) { + for (Iterator i = getOwnedLiterals().iterator(); i.hasNext();) { + EnumerationLiteral ownedLiteral = (EnumerationLiteral) i.next(); + if (name.equals(ownedLiteral.getName())) { + return ownedLiteral; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ENUMERATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.ENUMERATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.ENUMERATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ENUMERATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.ENUMERATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.ENUMERATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.ENUMERATION__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.ENUMERATION__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_LITERAL : + return ((InternalEList) getOwnedLiterals()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ENUMERATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ENUMERATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ENUMERATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.ENUMERATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.ENUMERATION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.ENUMERATION__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION__OWNED_LITERAL : + return ((InternalEList) getOwnedLiterals()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ENUMERATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ENUMERATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ENUMERATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ENUMERATION__NAME : + return getName(); + case UMLPackage.ENUMERATION__VISIBILITY : + return getVisibility(); + case UMLPackage.ENUMERATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ENUMERATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ENUMERATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ENUMERATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ENUMERATION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.ENUMERATION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.ENUMERATION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.ENUMERATION__MEMBER : + return getMembers(); + case UMLPackage.ENUMERATION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.ENUMERATION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.ENUMERATION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ENUMERATION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.ENUMERATION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.ENUMERATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ENUMERATION__PACKAGE : + return getPackage(); + case UMLPackage.ENUMERATION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.ENUMERATION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.ENUMERATION__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.ENUMERATION__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.ENUMERATION__FEATURE : + return getFeatures(); + case UMLPackage.ENUMERATION__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.ENUMERATION__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.ENUMERATION__GENERAL : + return getGenerals(); + case UMLPackage.ENUMERATION__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.ENUMERATION__USE_CASE : + return getUseCases(); + case UMLPackage.ENUMERATION__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.ENUMERATION__ATTRIBUTE : + return getAttributes(); + case UMLPackage.ENUMERATION__REPRESENTATION : + return getRepresentation(); + case UMLPackage.ENUMERATION__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.ENUMERATION__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.ENUMERATION__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.ENUMERATION__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.ENUMERATION__OWNED_LITERAL : + return getOwnedLiterals(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__NAME : + setName((String) newValue); + return; + case UMLPackage.ENUMERATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ENUMERATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ENUMERATION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ENUMERATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ENUMERATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.ENUMERATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.ENUMERATION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.ENUMERATION__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.ENUMERATION__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION__OWNED_LITERAL : + getOwnedLiterals().clear(); + getOwnedLiterals().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ENUMERATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ENUMERATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ENUMERATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ENUMERATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ENUMERATION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.ENUMERATION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.ENUMERATION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.ENUMERATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ENUMERATION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.ENUMERATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.ENUMERATION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.ENUMERATION__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.ENUMERATION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.ENUMERATION__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.ENUMERATION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.ENUMERATION__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.ENUMERATION__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.ENUMERATION__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.ENUMERATION__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.ENUMERATION__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.ENUMERATION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.ENUMERATION__OWNED_LITERAL : + getOwnedLiterals().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ENUMERATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ENUMERATION__OWNER : + return isSetOwner(); + case UMLPackage.ENUMERATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ENUMERATION__NAME : + String name = eVirtualIsSet(UMLPackage.ENUMERATION__NAME) + ? (String) eVirtualGet(UMLPackage.ENUMERATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ENUMERATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.ENUMERATION__VISIBILITY) + && eVirtualGet(UMLPackage.ENUMERATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ENUMERATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ENUMERATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ENUMERATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ENUMERATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ENUMERATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ENUMERATION__NAME_EXPRESSION) != null; + case UMLPackage.ENUMERATION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.ENUMERATION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.ENUMERATION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.ENUMERATION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.ENUMERATION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.ENUMERATION__MEMBER : + return isSetMembers(); + case UMLPackage.ENUMERATION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.ENUMERATION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.ENUMERATION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.ENUMERATION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.ENUMERATION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.ENUMERATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ENUMERATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.ENUMERATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ENUMERATION__PACKAGE : + return getPackage() != null; + case UMLPackage.ENUMERATION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.ENUMERATION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.ENUMERATION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.ENUMERATION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.ENUMERATION__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.ENUMERATION__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.ENUMERATION__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.ENUMERATION__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.ENUMERATION__FEATURE : + return isSetFeatures(); + case UMLPackage.ENUMERATION__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.ENUMERATION__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.ENUMERATION__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.ENUMERATION__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.ENUMERATION__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.ENUMERATION__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.ENUMERATION__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.ENUMERATION__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.ENUMERATION__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.ENUMERATION__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.ENUMERATION__REPRESENTATION : + return eVirtualGet(UMLPackage.ENUMERATION__REPRESENTATION) != null; + case UMLPackage.ENUMERATION__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.ENUMERATION__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.ENUMERATION__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.ENUMERATION__OWNED_SIGNATURE) != null; + case UMLPackage.ENUMERATION__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.ENUMERATION__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.ENUMERATION__OWNED_LITERAL : + List ownedLiteral = (List) eVirtualGet(UMLPackage.ENUMERATION__OWNED_LITERAL); + return ownedLiteral != null && !ownedLiteral.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getEnumeration_OwnedLiteral()); + } + +} //EnumerationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java new file mode 100644 index 00000000..06eed621 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java @@ -0,0 +1,482 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: EnumerationLiteralImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Enumeration Literal'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl#getEnumeration Enumeration}
  • + *
+ *

+ * + * @generated + */ +public class EnumerationLiteralImpl + extends InstanceSpecificationImpl + implements EnumerationLiteral { + + /** + * + * + * @generated + */ + protected EnumerationLiteralImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getEnumerationLiteral(); + } + + /** + * + * + * @generated + */ + public Enumeration getEnumeration() { + if (eContainerFeatureID != UMLPackage.ENUMERATION_LITERAL__ENUMERATION) + return null; + return (Enumeration) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnumeration(Enumeration newEnumeration) { + if (newEnumeration != eContainer + || (eContainerFeatureID != UMLPackage.ENUMERATION_LITERAL__ENUMERATION && newEnumeration != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnumeration)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnumeration != null) + msgs = ((InternalEObject) newEnumeration).eInverseAdd(this, + UMLPackage.ENUMERATION__OWNED_LITERAL, Enumeration.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newEnumeration, + UMLPackage.ENUMERATION_LITERAL__ENUMERATION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.ENUMERATION_LITERAL__ENUMERATION, newEnumeration, + newEnumeration)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ENUMERATION_LITERAL__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicAdd( + otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.ENUMERATION_LITERAL__SLOT : + return ((InternalEList) getSlots()) + .basicAdd(otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.ENUMERATION_LITERAL__ENUMERATION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.ENUMERATION_LITERAL__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicRemove( + otherEnd, msgs); + case UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.ENUMERATION_LITERAL__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.ENUMERATION_LITERAL__SLOT : + return ((InternalEList) getSlots()).basicRemove(otherEnd, + msgs); + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + return eBasicSetContainer(null, + UMLPackage.ENUMERATION_LITERAL__ENUMERATION, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + return eContainer.eInverseRemove(this, + UMLPackage.ENUMERATION__OWNED_LITERAL, + Enumeration.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION_LITERAL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.ENUMERATION_LITERAL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.ENUMERATION_LITERAL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.ENUMERATION_LITERAL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.ENUMERATION_LITERAL__NAME : + return getName(); + case UMLPackage.ENUMERATION_LITERAL__VISIBILITY : + return getVisibility(); + case UMLPackage.ENUMERATION_LITERAL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.ENUMERATION_LITERAL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.ENUMERATION_LITERAL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT : + return getDeployments(); + case UMLPackage.ENUMERATION_LITERAL__DEPLOYED_ELEMENT : + return getDeployedElements(); + case UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.ENUMERATION_LITERAL__CLASSIFIER : + return getClassifiers(); + case UMLPackage.ENUMERATION_LITERAL__SPECIFICATION : + return getSpecification(); + case UMLPackage.ENUMERATION_LITERAL__SLOT : + return getSlots(); + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + return getEnumeration(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION_LITERAL__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__NAME : + setName((String) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT : + getDeployments().clear(); + getDeployments().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__CLASSIFIER : + getClassifiers().clear(); + getClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__SPECIFICATION : + setSpecification((ValueSpecification) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__SLOT : + getSlots().clear(); + getSlots().addAll((Collection) newValue); + return; + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + setEnumeration((Enumeration) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION_LITERAL__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.ENUMERATION_LITERAL__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.ENUMERATION_LITERAL__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.ENUMERATION_LITERAL__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.ENUMERATION_LITERAL__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT : + getDeployments().clear(); + return; + case UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.ENUMERATION_LITERAL__CLASSIFIER : + getClassifiers().clear(); + return; + case UMLPackage.ENUMERATION_LITERAL__SPECIFICATION : + setSpecification((ValueSpecification) null); + return; + case UMLPackage.ENUMERATION_LITERAL__SLOT : + getSlots().clear(); + return; + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + setEnumeration((Enumeration) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.ENUMERATION_LITERAL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.ENUMERATION_LITERAL__OWNER : + return isSetOwner(); + case UMLPackage.ENUMERATION_LITERAL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__NAME : + String name = eVirtualIsSet(UMLPackage.ENUMERATION_LITERAL__NAME) + ? (String) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.ENUMERATION_LITERAL__VISIBILITY : + return eVirtualIsSet(UMLPackage.ENUMERATION_LITERAL__VISIBILITY) + && eVirtualGet(UMLPackage.ENUMERATION_LITERAL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.ENUMERATION_LITERAL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.ENUMERATION_LITERAL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.ENUMERATION_LITERAL__NAME_EXPRESSION) != null; + case UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.ENUMERATION_LITERAL__TEMPLATE_PARAMETER) != null; + case UMLPackage.ENUMERATION_LITERAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.ENUMERATION_LITERAL__CLASSIFIER : + List classifier = (List) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__CLASSIFIER); + return classifier != null && !classifier.isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__SPECIFICATION : + return eVirtualGet(UMLPackage.ENUMERATION_LITERAL__SPECIFICATION) != null; + case UMLPackage.ENUMERATION_LITERAL__SLOT : + List slot = (List) eVirtualGet(UMLPackage.ENUMERATION_LITERAL__SLOT); + return slot != null && !slot.isEmpty(); + case UMLPackage.ENUMERATION_LITERAL__ENUMERATION : + return getEnumeration() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Enumeration enumeration = getEnumeration(); + if (enumeration != null) { + return enumeration; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getEnumerationLiteral_Enumeration()); + } + +} //EnumerationLiteralImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EventImpl.java new file mode 100644 index 00000000..717937f0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EventImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: EventImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Event'. + * + *

+ *

+ * + * @generated + */ +public abstract class EventImpl + extends PackageableElementImpl + implements Event { + + /** + * + * + * @generated + */ + protected EventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getEvent(); + } + +} //EventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java new file mode 100644 index 00000000..3f155a9c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java @@ -0,0 +1,512 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExceptionHandlerImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ExceptionHandler; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.ObjectNode; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ExceptionHandlerOperations; + +/** + * + * An implementation of the model object 'Exception Handler'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getHandlerBody Handler Body}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getExceptionInput Exception Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getExceptionTypes Exception Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getProtectedNode Protected Node}
  • + *
+ *

+ * + * @generated + */ +public class ExceptionHandlerImpl + extends ElementImpl + implements ExceptionHandler { + + /** + * + * + * @generated + */ + protected ExceptionHandlerImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExceptionHandler(); + } + + /** + * + * + * @generated + */ + public ExecutableNode getHandlerBody() { + ExecutableNode handlerBody = (ExecutableNode) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY); + if (handlerBody != null && handlerBody.eIsProxy()) { + ExecutableNode oldHandlerBody = handlerBody; + handlerBody = (ExecutableNode) eResolveProxy((InternalEObject) handlerBody); + if (handlerBody != oldHandlerBody) { + eVirtualSet(UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY, + handlerBody); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY, + oldHandlerBody, handlerBody)); + } + } + return handlerBody; + } + + /** + * + * + * @generated + */ + public ExecutableNode basicGetHandlerBody() { + return (ExecutableNode) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY); + } + + /** + * + * + * @generated + */ + public void setHandlerBody(ExecutableNode newHandlerBody) { + ExecutableNode handlerBody = newHandlerBody; + Object oldHandlerBody = eVirtualSet( + UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY, handlerBody); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY, + oldHandlerBody == EVIRTUAL_NO_VALUE + ? null + : oldHandlerBody, handlerBody)); + + } + + /** + * + * + * @generated + */ + public ObjectNode getExceptionInput() { + ObjectNode exceptionInput = (ObjectNode) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT); + if (exceptionInput != null && exceptionInput.eIsProxy()) { + ObjectNode oldExceptionInput = exceptionInput; + exceptionInput = (ObjectNode) eResolveProxy((InternalEObject) exceptionInput); + if (exceptionInput != oldExceptionInput) { + eVirtualSet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT, + exceptionInput); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT, + oldExceptionInput, exceptionInput)); + } + } + return exceptionInput; + } + + /** + * + * + * @generated + */ + public ObjectNode basicGetExceptionInput() { + return (ObjectNode) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT); + } + + /** + * + * + * @generated + */ + public void setExceptionInput(ObjectNode newExceptionInput) { + ObjectNode exceptionInput = newExceptionInput; + Object oldExceptionInput = eVirtualSet( + UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT, exceptionInput); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT, + oldExceptionInput == EVIRTUAL_NO_VALUE + ? null + : oldExceptionInput, exceptionInput)); + + } + + /** + * + * + * @generated + */ + public List getExceptionTypes() { + List exceptionType = (List) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE); + if (exceptionType == null) { + eVirtualSet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE, + exceptionType = new EObjectResolvingEList(Classifier.class, + this, UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE)); + } + return exceptionType; + } + + /** + * + * + * @generated + */ + public Classifier getExceptionType(String name) { + for (Iterator i = getExceptionTypes().iterator(); i.hasNext();) { + Classifier exceptionType = (Classifier) i.next(); + if (name.equals(exceptionType.getName())) { + return exceptionType; + } + } + return null; + } + + /** + * + * + * @generated + */ + public ExecutableNode getProtectedNode() { + if (eContainerFeatureID != UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE) + return null; + return (ExecutableNode) eContainer; + } + + /** + * + * + * @generated + */ + public void setProtectedNode(ExecutableNode newProtectedNode) { + if (newProtectedNode != eContainer + || (eContainerFeatureID != UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE && newProtectedNode != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newProtectedNode)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newProtectedNode != null) + msgs = ((InternalEObject) newProtectedNode).eInverseAdd(this, + UMLPackage.EXECUTABLE_NODE__HANDLER, ExecutableNode.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newProtectedNode, + UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE, newProtectedNode, + newProtectedNode)); + + } + + /** + * + * + * @generated + */ + public boolean validateExceptionBody(DiagnosticChain diagnostics, + Map context) { + return ExceptionHandlerOperations.validateExceptionBody(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateResultPins(DiagnosticChain diagnostics, Map context) { + return ExceptionHandlerOperations.validateResultPins(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateOneInput(DiagnosticChain diagnostics, Map context) { + return ExceptionHandlerOperations.validateOneInput(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEdgeSourceTarget(DiagnosticChain diagnostics, + Map context) { + return ExceptionHandlerOperations.validateEdgeSourceTarget(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXCEPTION_HANDLER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXCEPTION_HANDLER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXCEPTION_HANDLER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + return eBasicSetContainer(null, + UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + return eContainer.eInverseRemove(this, + UMLPackage.EXECUTABLE_NODE__HANDLER, + ExecutableNode.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXCEPTION_HANDLER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXCEPTION_HANDLER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXCEPTION_HANDLER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXCEPTION_HANDLER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY : + if (resolve) + return getHandlerBody(); + return basicGetHandlerBody(); + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT : + if (resolve) + return getExceptionInput(); + return basicGetExceptionInput(); + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE : + return getExceptionTypes(); + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + return getProtectedNode(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXCEPTION_HANDLER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXCEPTION_HANDLER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY : + setHandlerBody((ExecutableNode) newValue); + return; + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT : + setExceptionInput((ObjectNode) newValue); + return; + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE : + getExceptionTypes().clear(); + getExceptionTypes().addAll((Collection) newValue); + return; + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + setProtectedNode((ExecutableNode) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXCEPTION_HANDLER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXCEPTION_HANDLER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY : + setHandlerBody((ExecutableNode) null); + return; + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT : + setExceptionInput((ObjectNode) null); + return; + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE : + getExceptionTypes().clear(); + return; + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + setProtectedNode((ExecutableNode) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXCEPTION_HANDLER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXCEPTION_HANDLER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXCEPTION_HANDLER__OWNER : + return isSetOwner(); + case UMLPackage.EXCEPTION_HANDLER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY : + return eVirtualGet(UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY) != null; + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT : + return eVirtualGet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT) != null; + case UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE : + List exceptionType = (List) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_TYPE); + return exceptionType != null && !exceptionType.isEmpty(); + case UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE : + return getProtectedNode() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + ExecutableNode protectedNode = getProtectedNode(); + if (protectedNode != null) { + return protectedNode; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getExceptionHandler_ProtectedNode()); + } + +} //ExceptionHandlerImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java new file mode 100644 index 00000000..2fb702ca --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java @@ -0,0 +1,486 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutableNodeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ExceptionHandler; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Executable Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl#getHandlers Handler}
  • + *
+ *

+ * + * @generated + */ +public abstract class ExecutableNodeImpl + extends ActivityNodeImpl + implements ExecutableNode { + + /** + * + * + * @generated + */ + protected ExecutableNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExecutableNode(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.EXECUTABLE_NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.EXECUTABLE_NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExecutableNode_Handler()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getHandlers() { + List handler = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__HANDLER); + if (handler == null) { + eVirtualSet(UMLPackage.EXECUTABLE_NODE__HANDLER, + handler = new EObjectContainmentWithInverseEList( + ExceptionHandler.class, this, + UMLPackage.EXECUTABLE_NODE__HANDLER, + UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE)); + } + return handler; + } + + /** + * + * + * @generated + */ + public ExceptionHandler createHandler() { + ExceptionHandler newHandler = UMLFactory.eINSTANCE + .createExceptionHandler(); + getHandlers().add(newHandler); + return newHandler; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXECUTABLE_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXECUTABLE_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.EXECUTABLE_NODE__ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXECUTABLE_NODE__ACTIVITY, msgs); + case UMLPackage.EXECUTABLE_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicAdd(otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXECUTABLE_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.EXECUTABLE_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.EXECUTABLE_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.EXECUTABLE_NODE__ACTIVITY, msgs); + case UMLPackage.EXECUTABLE_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXECUTABLE_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTABLE_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXECUTABLE_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXECUTABLE_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXECUTABLE_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXECUTABLE_NODE__NAME : + return getName(); + case UMLPackage.EXECUTABLE_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.EXECUTABLE_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXECUTABLE_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXECUTABLE_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXECUTABLE_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.EXECUTABLE_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.EXECUTABLE_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.EXECUTABLE_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.EXECUTABLE_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.EXECUTABLE_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.EXECUTABLE_NODE__INCOMING : + return getIncomings(); + case UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.EXECUTABLE_NODE__HANDLER : + return getHandlers(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTABLE_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.EXECUTABLE_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTABLE_NODE__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTABLE_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXECUTABLE_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXECUTABLE_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.EXECUTABLE_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.EXECUTABLE_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.EXECUTABLE_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.EXECUTABLE_NODE__HANDLER : + getHandlers().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTABLE_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXECUTABLE_NODE__OWNER : + return isSetOwner(); + case UMLPackage.EXECUTABLE_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.EXECUTABLE_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.EXECUTABLE_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXECUTABLE_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXECUTABLE_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.EXECUTABLE_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXECUTABLE_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXECUTABLE_NODE__NAME_EXPRESSION) != null; + case UMLPackage.EXECUTABLE_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.EXECUTABLE_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.EXECUTABLE_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.EXECUTABLE_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.EXECUTABLE_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.EXECUTABLE_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.EXECUTABLE_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.EXECUTABLE_NODE__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.EXECUTABLE_NODE__HANDLER); + return handler != null && !handler.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getExecutableNode_Handler()); + } + +} //ExecutableNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEnvironmentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEnvironmentImpl.java new file mode 100644 index 00000000..f262d3c4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEnvironmentImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionEnvironmentImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ExecutionEnvironment; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Execution Environment'. + * + *

+ *

+ * + * @generated + */ +public class ExecutionEnvironmentImpl + extends NodeImpl + implements ExecutionEnvironment { + + /** + * + * + * @generated + */ + protected ExecutionEnvironmentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExecutionEnvironment(); + } + +} //ExecutionEnvironmentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEventImpl.java new file mode 100644 index 00000000..9b8a55b3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEventImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionEventImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ExecutionEvent; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Execution Event'. + * + *

+ *

+ * + * @generated + */ +public class ExecutionEventImpl + extends EventImpl + implements ExecutionEvent { + + /** + * + * + * @generated + */ + protected ExecutionEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExecutionEvent(); + } + +} //ExecutionEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionOccurrenceSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionOccurrenceSpecificationImpl.java new file mode 100644 index 00000000..58d2c69f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionOccurrenceSpecificationImpl.java @@ -0,0 +1,410 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionOccurrenceSpecificationImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.ExecutionSpecification; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Execution Occurrence Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl#getExecution Execution}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl#getEvent Event}
  • + *
+ *

+ * + * @generated + */ +public class ExecutionOccurrenceSpecificationImpl + extends OccurrenceSpecificationImpl + implements ExecutionOccurrenceSpecification { + + /** + * + * + * @generated + */ + protected ExecutionOccurrenceSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExecutionOccurrenceSpecification(); + } + + /** + * + * + * @generated + */ + public ExecutionSpecification getExecution() { + ExecutionSpecification execution = (ExecutionSpecification) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION); + if (execution != null && execution.eIsProxy()) { + ExecutionSpecification oldExecution = execution; + execution = (ExecutionSpecification) eResolveProxy((InternalEObject) execution); + if (execution != oldExecution) { + eVirtualSet( + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION, + execution); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION, + oldExecution, execution)); + } + } + return execution; + } + + /** + * + * + * @generated + */ + public ExecutionSpecification basicGetExecution() { + return (ExecutionSpecification) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION); + } + + /** + * + * + * @generated + */ + public void setExecution(ExecutionSpecification newExecution) { + ExecutionSpecification execution = newExecution; + Object oldExecution = eVirtualSet( + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION, execution); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION, + oldExecution == EVIRTUAL_NO_VALUE + ? null + : oldExecution, execution)); + + } + + /** + * + * + * @generated + */ + public Event getEvent() { + Event event = (Event) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT); + if (event != null && event.eIsProxy()) { + Event oldEvent = event; + event = (Event) eResolveProxy((InternalEObject) event); + if (event != oldEvent) { + eVirtualSet( + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT, + oldEvent, event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public Event basicGetEvent() { + return (Event) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT); + } + + /** + * + * + * @generated + */ + public void setEvent(Event newEvent) { + Event event = newEvent; + Object oldEvent = eVirtualSet( + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT, + oldEvent == EVIRTUAL_NO_VALUE + ? null + : oldEvent, event)); + + } + + /** + * + * + * @generated + */ + public boolean isSetEvent() { + return eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME : + return getName(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__COVERED : + return getCovereds(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_BEFORE : + return getToBefores(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT : + if (resolve) + return getEvent(); + return basicGetEvent(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_AFTER : + return getToAfters(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION : + if (resolve) + return getExecution(); + return basicGetExecution(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_BEFORE : + getToBefores().clear(); + getToBefores().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT : + setEvent((Event) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_AFTER : + getToAfters().clear(); + getToAfters().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION : + setExecution((ExecutionSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_BEFORE : + getToBefores().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT : + setEvent((Event) null); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_AFTER : + getToAfters().clear(); + return; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION : + setExecution((ExecutionSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_BEFORE : + List toBefore = (List) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_BEFORE); + return toBefore != null && !toBefore.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT : + return eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT) != null; + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_AFTER : + List toAfter = (List) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__TO_AFTER); + return toAfter != null && !toAfter.isEmpty(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION : + return eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ExecutionOccurrenceSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java new file mode 100644 index 00000000..6e755444 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionSpecificationImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.ExecutionSpecification; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ExecutionSpecificationOperations; + +/** + * + * An implementation of the model object 'Execution Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl#getStart Start}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl#getFinish Finish}
  • + *
+ *

+ * + * @generated + */ +public abstract class ExecutionSpecificationImpl + extends InteractionFragmentImpl + implements ExecutionSpecification { + + /** + * + * + * @generated + */ + protected ExecutionSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExecutionSpecification(); + } + + /** + * + * + * @generated + */ + public ExecutionOccurrenceSpecification getStart() { + ExecutionOccurrenceSpecification start = (ExecutionOccurrenceSpecification) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__START); + if (start != null && start.eIsProxy()) { + ExecutionOccurrenceSpecification oldStart = start; + start = (ExecutionOccurrenceSpecification) eResolveProxy((InternalEObject) start); + if (start != oldStart) { + eVirtualSet(UMLPackage.EXECUTION_SPECIFICATION__START, start); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXECUTION_SPECIFICATION__START, oldStart, + start)); + } + } + return start; + } + + /** + * + * + * @generated + */ + public ExecutionOccurrenceSpecification basicGetStart() { + return (ExecutionOccurrenceSpecification) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__START); + } + + /** + * + * + * @generated + */ + public void setStart(ExecutionOccurrenceSpecification newStart) { + ExecutionOccurrenceSpecification start = newStart; + Object oldStart = eVirtualSet( + UMLPackage.EXECUTION_SPECIFICATION__START, start); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXECUTION_SPECIFICATION__START, + oldStart == EVIRTUAL_NO_VALUE + ? null + : oldStart, start)); + + } + + /** + * + * + * @generated + */ + public ExecutionOccurrenceSpecification getFinish() { + ExecutionOccurrenceSpecification finish = (ExecutionOccurrenceSpecification) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__FINISH); + if (finish != null && finish.eIsProxy()) { + ExecutionOccurrenceSpecification oldFinish = finish; + finish = (ExecutionOccurrenceSpecification) eResolveProxy((InternalEObject) finish); + if (finish != oldFinish) { + eVirtualSet(UMLPackage.EXECUTION_SPECIFICATION__FINISH, finish); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXECUTION_SPECIFICATION__FINISH, oldFinish, + finish)); + } + } + return finish; + } + + /** + * + * + * @generated + */ + public ExecutionOccurrenceSpecification basicGetFinish() { + return (ExecutionOccurrenceSpecification) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__FINISH); + } + + /** + * + * + * @generated + */ + public void setFinish(ExecutionOccurrenceSpecification newFinish) { + ExecutionOccurrenceSpecification finish = newFinish; + Object oldFinish = eVirtualSet( + UMLPackage.EXECUTION_SPECIFICATION__FINISH, finish); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXECUTION_SPECIFICATION__FINISH, + oldFinish == EVIRTUAL_NO_VALUE + ? null + : oldFinish, finish)); + + } + + /** + * + * + * @generated + */ + public boolean validateSameLifeline(DiagnosticChain diagnostics, Map context) { + return ExecutionSpecificationOperations.validateSameLifeline(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXECUTION_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXECUTION_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXECUTION_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXECUTION_SPECIFICATION__NAME : + return getName(); + case UMLPackage.EXECUTION_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.EXECUTION_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXECUTION_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXECUTION_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXECUTION_SPECIFICATION__COVERED : + return getCovereds(); + case UMLPackage.EXECUTION_SPECIFICATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.EXECUTION_SPECIFICATION__START : + if (resolve) + return getStart(); + return basicGetStart(); + case UMLPackage.EXECUTION_SPECIFICATION__FINISH : + if (resolve) + return getFinish(); + return basicGetFinish(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__START : + setStart((ExecutionOccurrenceSpecification) newValue); + return; + case UMLPackage.EXECUTION_SPECIFICATION__FINISH : + setFinish((ExecutionOccurrenceSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXECUTION_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXECUTION_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXECUTION_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXECUTION_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXECUTION_SPECIFICATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.EXECUTION_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.EXECUTION_SPECIFICATION__START : + setStart((ExecutionOccurrenceSpecification) null); + return; + case UMLPackage.EXECUTION_SPECIFICATION__FINISH : + setFinish((ExecutionOccurrenceSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXECUTION_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXECUTION_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXECUTION_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.EXECUTION_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXECUTION_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.EXECUTION_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXECUTION_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXECUTION_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXECUTION_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXECUTION_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXECUTION_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.EXECUTION_SPECIFICATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.EXECUTION_SPECIFICATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.EXECUTION_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.EXECUTION_SPECIFICATION__START : + return eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__START) != null; + case UMLPackage.EXECUTION_SPECIFICATION__FINISH : + return eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__FINISH) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ExecutionSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java new file mode 100644 index 00000000..e8fc301c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java @@ -0,0 +1,693 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpansionNodeImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Expansion Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpansionNodeImpl#getRegionAsOutput Region As Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpansionNodeImpl#getRegionAsInput Region As Input}
  • + *
+ *

+ * + * @generated + */ +public class ExpansionNodeImpl + extends ObjectNodeImpl + implements ExpansionNode { + + /** + * + * + * @generated + */ + protected ExpansionNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExpansionNode(); + } + + /** + * + * + * @generated + */ + public ExpansionRegion getRegionAsOutput() { + ExpansionRegion regionAsOutput = (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT); + if (regionAsOutput != null && regionAsOutput.eIsProxy()) { + ExpansionRegion oldRegionAsOutput = regionAsOutput; + regionAsOutput = (ExpansionRegion) eResolveProxy((InternalEObject) regionAsOutput); + if (regionAsOutput != oldRegionAsOutput) { + eVirtualSet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT, + regionAsOutput); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT, + oldRegionAsOutput, regionAsOutput)); + } + } + return regionAsOutput; + } + + /** + * + * + * @generated + */ + public ExpansionRegion basicGetRegionAsOutput() { + return (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRegionAsOutput( + ExpansionRegion newRegionAsOutput, NotificationChain msgs) { + Object oldRegionAsOutput = eVirtualSet( + UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT, newRegionAsOutput); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT, + oldRegionAsOutput == EVIRTUAL_NO_VALUE + ? null + : oldRegionAsOutput, newRegionAsOutput); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setRegionAsOutput(ExpansionRegion newRegionAsOutput) { + ExpansionRegion regionAsOutput = (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT); + if (newRegionAsOutput != regionAsOutput) { + NotificationChain msgs = null; + if (regionAsOutput != null) + msgs = ((InternalEObject) regionAsOutput).eInverseRemove(this, + UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT, + ExpansionRegion.class, msgs); + if (newRegionAsOutput != null) + msgs = ((InternalEObject) newRegionAsOutput).eInverseAdd(this, + UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT, + ExpansionRegion.class, msgs); + msgs = basicSetRegionAsOutput(newRegionAsOutput, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT, newRegionAsOutput, + newRegionAsOutput)); + + } + + /** + * + * + * @generated + */ + public ExpansionRegion getRegionAsInput() { + ExpansionRegion regionAsInput = (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT); + if (regionAsInput != null && regionAsInput.eIsProxy()) { + ExpansionRegion oldRegionAsInput = regionAsInput; + regionAsInput = (ExpansionRegion) eResolveProxy((InternalEObject) regionAsInput); + if (regionAsInput != oldRegionAsInput) { + eVirtualSet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT, + regionAsInput); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXPANSION_NODE__REGION_AS_INPUT, + oldRegionAsInput, regionAsInput)); + } + } + return regionAsInput; + } + + /** + * + * + * @generated + */ + public ExpansionRegion basicGetRegionAsInput() { + return (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRegionAsInput( + ExpansionRegion newRegionAsInput, NotificationChain msgs) { + Object oldRegionAsInput = eVirtualSet( + UMLPackage.EXPANSION_NODE__REGION_AS_INPUT, newRegionAsInput); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.EXPANSION_NODE__REGION_AS_INPUT, + oldRegionAsInput == EVIRTUAL_NO_VALUE + ? null + : oldRegionAsInput, newRegionAsInput); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setRegionAsInput(ExpansionRegion newRegionAsInput) { + ExpansionRegion regionAsInput = (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT); + if (newRegionAsInput != regionAsInput) { + NotificationChain msgs = null; + if (regionAsInput != null) + msgs = ((InternalEObject) regionAsInput).eInverseRemove(this, + UMLPackage.EXPANSION_REGION__INPUT_ELEMENT, + ExpansionRegion.class, msgs); + if (newRegionAsInput != null) + msgs = ((InternalEObject) newRegionAsInput).eInverseAdd(this, + UMLPackage.EXPANSION_REGION__INPUT_ELEMENT, + ExpansionRegion.class, msgs); + msgs = basicSetRegionAsInput(newRegionAsInput, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXPANSION_NODE__REGION_AS_INPUT, newRegionAsInput, + newRegionAsInput)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXPANSION_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.EXPANSION_NODE__ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXPANSION_NODE__ACTIVITY, msgs); + case UMLPackage.EXPANSION_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicAdd(otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT : + ExpansionRegion regionAsOutput = (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT); + if (regionAsOutput != null) + msgs = ((InternalEObject) regionAsOutput) + .eInverseRemove(this, + UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT, + ExpansionRegion.class, msgs); + return basicSetRegionAsOutput((ExpansionRegion) otherEnd, + msgs); + case UMLPackage.EXPANSION_NODE__REGION_AS_INPUT : + ExpansionRegion regionAsInput = (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT); + if (regionAsInput != null) + msgs = ((InternalEObject) regionAsInput) + .eInverseRemove(this, + UMLPackage.EXPANSION_REGION__INPUT_ELEMENT, + ExpansionRegion.class, msgs); + return basicSetRegionAsInput((ExpansionRegion) otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXPANSION_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.EXPANSION_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.EXPANSION_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.EXPANSION_NODE__ACTIVITY, msgs); + case UMLPackage.EXPANSION_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPANSION_NODE__UPPER_BOUND : + return basicSetUpperBound(null, msgs); + case UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT : + return basicSetRegionAsOutput(null, msgs); + case UMLPackage.EXPANSION_NODE__REGION_AS_INPUT : + return basicSetRegionAsInput(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXPANSION_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXPANSION_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXPANSION_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXPANSION_NODE__NAME : + return getName(); + case UMLPackage.EXPANSION_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.EXPANSION_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXPANSION_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXPANSION_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXPANSION_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXPANSION_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.EXPANSION_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.EXPANSION_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.EXPANSION_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.EXPANSION_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.EXPANSION_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.EXPANSION_NODE__INCOMING : + return getIncomings(); + case UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.EXPANSION_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.EXPANSION_NODE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.EXPANSION_NODE__ORDERING : + return getOrdering(); + case UMLPackage.EXPANSION_NODE__IS_CONTROL_TYPE : + return isControlType() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXPANSION_NODE__UPPER_BOUND : + return getUpperBound(); + case UMLPackage.EXPANSION_NODE__IN_STATE : + return getInStates(); + case UMLPackage.EXPANSION_NODE__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + case UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT : + if (resolve) + return getRegionAsOutput(); + return basicGetRegionAsOutput(); + case UMLPackage.EXPANSION_NODE__REGION_AS_INPUT : + if (resolve) + return getRegionAsInput(); + return basicGetRegionAsInput(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.EXPANSION_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXPANSION_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.EXPANSION_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.EXPANSION_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.EXPANSION_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__TYPE : + setType((Type) newValue); + return; + case UMLPackage.EXPANSION_NODE__ORDERING : + setOrdering((ObjectNodeOrderingKind) newValue); + return; + case UMLPackage.EXPANSION_NODE__IS_CONTROL_TYPE : + setIsControlType(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.EXPANSION_NODE__UPPER_BOUND : + setUpperBound((ValueSpecification) newValue); + return; + case UMLPackage.EXPANSION_NODE__IN_STATE : + getInStates().clear(); + getInStates().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_NODE__SELECTION : + setSelection((Behavior) newValue); + return; + case UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT : + setRegionAsOutput((ExpansionRegion) newValue); + return; + case UMLPackage.EXPANSION_NODE__REGION_AS_INPUT : + setRegionAsInput((ExpansionRegion) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXPANSION_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXPANSION_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXPANSION_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXPANSION_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXPANSION_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.EXPANSION_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.EXPANSION_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.EXPANSION_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.EXPANSION_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.EXPANSION_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.EXPANSION_NODE__TYPE : + setType((Type) null); + return; + case UMLPackage.EXPANSION_NODE__ORDERING : + setOrdering(ORDERING_EDEFAULT); + return; + case UMLPackage.EXPANSION_NODE__IS_CONTROL_TYPE : + setIsControlType(IS_CONTROL_TYPE_EDEFAULT); + return; + case UMLPackage.EXPANSION_NODE__UPPER_BOUND : + setUpperBound((ValueSpecification) null); + return; + case UMLPackage.EXPANSION_NODE__IN_STATE : + getInStates().clear(); + return; + case UMLPackage.EXPANSION_NODE__SELECTION : + setSelection((Behavior) null); + return; + case UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT : + setRegionAsOutput((ExpansionRegion) null); + return; + case UMLPackage.EXPANSION_NODE__REGION_AS_INPUT : + setRegionAsInput((ExpansionRegion) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXPANSION_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXPANSION_NODE__OWNER : + return isSetOwner(); + case UMLPackage.EXPANSION_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXPANSION_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.EXPANSION_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.EXPANSION_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXPANSION_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXPANSION_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.EXPANSION_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXPANSION_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXPANSION_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXPANSION_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXPANSION_NODE__NAME_EXPRESSION) != null; + case UMLPackage.EXPANSION_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.EXPANSION_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.EXPANSION_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.EXPANSION_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.EXPANSION_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.EXPANSION_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.EXPANSION_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.EXPANSION_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.EXPANSION_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.EXPANSION_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.EXPANSION_NODE__TYPE : + return eVirtualGet(UMLPackage.EXPANSION_NODE__TYPE) != null; + case UMLPackage.EXPANSION_NODE__ORDERING : + return eVirtualIsSet(UMLPackage.EXPANSION_NODE__ORDERING) + && eVirtualGet(UMLPackage.EXPANSION_NODE__ORDERING) != ORDERING_EDEFAULT; + case UMLPackage.EXPANSION_NODE__IS_CONTROL_TYPE : + return ((eFlags & IS_CONTROL_TYPE_EFLAG) != 0) != IS_CONTROL_TYPE_EDEFAULT; + case UMLPackage.EXPANSION_NODE__UPPER_BOUND : + return eVirtualGet(UMLPackage.EXPANSION_NODE__UPPER_BOUND) != null; + case UMLPackage.EXPANSION_NODE__IN_STATE : + List inState = (List) eVirtualGet(UMLPackage.EXPANSION_NODE__IN_STATE); + return inState != null && !inState.isEmpty(); + case UMLPackage.EXPANSION_NODE__SELECTION : + return eVirtualGet(UMLPackage.EXPANSION_NODE__SELECTION) != null; + case UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT : + return eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT) != null; + case UMLPackage.EXPANSION_NODE__REGION_AS_INPUT : + return eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ExpansionNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java new file mode 100644 index 00000000..b5587eb5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java @@ -0,0 +1,827 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpansionRegionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ExpansionKind; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ExpansionRegionOperations; + +/** + * + * An implementation of the model object 'Expansion Region'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl#getMode Mode}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl#getInputElements Input Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl#getOutputElements Output Element}
  • + *
+ *

+ * + * @generated + */ +public class ExpansionRegionImpl + extends StructuredActivityNodeImpl + implements ExpansionRegion { + + /** + * The default value of the '{@link #getMode() Mode}' attribute. + * + * + * @see #getMode() + * @generated + * @ordered + */ + protected static final ExpansionKind MODE_EDEFAULT = ExpansionKind.PARALLEL_LITERAL; + + /** + * + * + * @generated + */ + protected ExpansionRegionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExpansionRegion(); + } + + /** + * + * + * @generated + */ + public ExpansionKind getMode() { + ExpansionKind mode = (ExpansionKind) eVirtualGet(UMLPackage.EXPANSION_REGION__MODE); + return mode == null + ? MODE_EDEFAULT + : mode; + } + + /** + * + * + * @generated + */ + public void setMode(ExpansionKind newMode) { + ExpansionKind mode = newMode == null + ? MODE_EDEFAULT + : newMode; + Object oldMode = eVirtualSet(UMLPackage.EXPANSION_REGION__MODE, mode); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXPANSION_REGION__MODE, oldMode == EVIRTUAL_NO_VALUE + ? MODE_EDEFAULT + : oldMode, mode)); + + } + + /** + * + * + * @generated + */ + public List getInputElements() { + List inputElement = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__INPUT_ELEMENT); + if (inputElement == null) { + eVirtualSet(UMLPackage.EXPANSION_REGION__INPUT_ELEMENT, + inputElement = new EObjectWithInverseResolvingEList( + ExpansionNode.class, this, + UMLPackage.EXPANSION_REGION__INPUT_ELEMENT, + UMLPackage.EXPANSION_NODE__REGION_AS_INPUT)); + } + return inputElement; + } + + /** + * + * + * @generated + */ + public ExpansionNode getInputElement(String name) { + for (Iterator i = getInputElements().iterator(); i.hasNext();) { + ExpansionNode inputElement = (ExpansionNode) i.next(); + if (name.equals(inputElement.getName())) { + return inputElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOutputElements() { + List outputElement = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT); + if (outputElement == null) { + eVirtualSet(UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT, + outputElement = new EObjectWithInverseResolvingEList( + ExpansionNode.class, this, + UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT, + UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT)); + } + return outputElement; + } + + /** + * + * + * @generated + */ + public ExpansionNode getOutputElement(String name) { + for (Iterator i = getOutputElements().iterator(); i.hasNext();) { + ExpansionNode outputElement = (ExpansionNode) i.next(); + if (name.equals(outputElement.getName())) { + return outputElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateExpansionNodes(DiagnosticChain diagnostics, + Map context) { + return ExpansionRegionOperations.validateExpansionNodes(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXPANSION_REGION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.EXPANSION_REGION__ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXPANSION_REGION__ACTIVITY, msgs); + case UMLPackage.EXPANSION_REGION__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicAdd(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__HANDLER : + return ((InternalEList) getHandlers()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__IN_ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXPANSION_REGION__IN_ACTIVITY, msgs); + case UMLPackage.EXPANSION_REGION__VARIABLE : + return ((InternalEList) getVariables()).basicAdd(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__NODE : + return ((InternalEList) getNodes()) + .basicAdd(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__EDGE : + return ((InternalEList) getEdges()) + .basicAdd(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__INPUT_ELEMENT : + return ((InternalEList) getInputElements()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT : + return ((InternalEList) getOutputElements()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXPANSION_REGION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.EXPANSION_REGION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.EXPANSION_REGION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.EXPANSION_REGION__ACTIVITY, msgs); + case UMLPackage.EXPANSION_REGION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.EXPANSION_REGION__IN_ACTIVITY, msgs); + case UMLPackage.EXPANSION_REGION__VARIABLE : + return ((InternalEList) getVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + case UMLPackage.EXPANSION_REGION__INPUT_ELEMENT : + return ((InternalEList) getInputElements()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT : + return ((InternalEList) getOutputElements()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_REGION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXPANSION_REGION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXPANSION_REGION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXPANSION_REGION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXPANSION_REGION__NAME : + return getName(); + case UMLPackage.EXPANSION_REGION__VISIBILITY : + return getVisibility(); + case UMLPackage.EXPANSION_REGION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXPANSION_REGION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXPANSION_REGION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXPANSION_REGION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXPANSION_REGION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.EXPANSION_REGION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.EXPANSION_REGION__OUTGOING : + return getOutgoings(); + case UMLPackage.EXPANSION_REGION__IN_GROUP : + return getInGroups(); + case UMLPackage.EXPANSION_REGION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.EXPANSION_REGION__ACTIVITY : + return getActivity(); + case UMLPackage.EXPANSION_REGION__INCOMING : + return getIncomings(); + case UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.EXPANSION_REGION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.EXPANSION_REGION__HANDLER : + return getHandlers(); + case UMLPackage.EXPANSION_REGION__OUTPUT : + return getOutputs(); + case UMLPackage.EXPANSION_REGION__INPUT : + return getInputs(); + case UMLPackage.EXPANSION_REGION__CONTEXT : + return getContext(); + case UMLPackage.EXPANSION_REGION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.EXPANSION_REGION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.EXPANSION_REGION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.EXPANSION_REGION__MEMBER : + return getMembers(); + case UMLPackage.EXPANSION_REGION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.EXPANSION_REGION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.EXPANSION_REGION__SUBGROUP : + return getSubgroups(); + case UMLPackage.EXPANSION_REGION__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.EXPANSION_REGION__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.EXPANSION_REGION__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.EXPANSION_REGION__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.EXPANSION_REGION__VARIABLE : + return getVariables(); + case UMLPackage.EXPANSION_REGION__NODE : + return getNodes(); + case UMLPackage.EXPANSION_REGION__MUST_ISOLATE : + return isMustIsolate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXPANSION_REGION__EDGE : + return getEdges(); + case UMLPackage.EXPANSION_REGION__MODE : + return getMode(); + case UMLPackage.EXPANSION_REGION__INPUT_ELEMENT : + return getInputElements(); + case UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT : + return getOutputElements(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_REGION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__NAME : + setName((String) newValue); + return; + case UMLPackage.EXPANSION_REGION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXPANSION_REGION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.EXPANSION_REGION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.EXPANSION_REGION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.EXPANSION_REGION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.EXPANSION_REGION__VARIABLE : + getVariables().clear(); + getVariables().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__MUST_ISOLATE : + setMustIsolate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.EXPANSION_REGION__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__MODE : + setMode((ExpansionKind) newValue); + return; + case UMLPackage.EXPANSION_REGION__INPUT_ELEMENT : + getInputElements().clear(); + getInputElements().addAll((Collection) newValue); + return; + case UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT : + getOutputElements().clear(); + getOutputElements().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_REGION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXPANSION_REGION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXPANSION_REGION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXPANSION_REGION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXPANSION_REGION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXPANSION_REGION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.EXPANSION_REGION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.EXPANSION_REGION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.EXPANSION_REGION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.EXPANSION_REGION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.EXPANSION_REGION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.EXPANSION_REGION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.EXPANSION_REGION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.EXPANSION_REGION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.EXPANSION_REGION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.EXPANSION_REGION__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.EXPANSION_REGION__VARIABLE : + getVariables().clear(); + return; + case UMLPackage.EXPANSION_REGION__NODE : + getNodes().clear(); + return; + case UMLPackage.EXPANSION_REGION__MUST_ISOLATE : + setMustIsolate(MUST_ISOLATE_EDEFAULT); + return; + case UMLPackage.EXPANSION_REGION__EDGE : + getEdges().clear(); + return; + case UMLPackage.EXPANSION_REGION__MODE : + setMode(MODE_EDEFAULT); + return; + case UMLPackage.EXPANSION_REGION__INPUT_ELEMENT : + getInputElements().clear(); + return; + case UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT : + getOutputElements().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPANSION_REGION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXPANSION_REGION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXPANSION_REGION__OWNER : + return isSetOwner(); + case UMLPackage.EXPANSION_REGION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXPANSION_REGION__NAME : + String name = eVirtualIsSet(UMLPackage.EXPANSION_REGION__NAME) + ? (String) eVirtualGet(UMLPackage.EXPANSION_REGION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXPANSION_REGION__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXPANSION_REGION__VISIBILITY) + && eVirtualGet(UMLPackage.EXPANSION_REGION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXPANSION_REGION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXPANSION_REGION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXPANSION_REGION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXPANSION_REGION__NAME_EXPRESSION) != null; + case UMLPackage.EXPANSION_REGION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.EXPANSION_REGION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.EXPANSION_REGION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.EXPANSION_REGION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.EXPANSION_REGION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.EXPANSION_REGION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.EXPANSION_REGION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.EXPANSION_REGION__ACTIVITY : + return getActivity() != null; + case UMLPackage.EXPANSION_REGION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.EXPANSION_REGION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.EXPANSION_REGION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.EXPANSION_REGION__OUTPUT : + return isSetOutputs(); + case UMLPackage.EXPANSION_REGION__INPUT : + return isSetInputs(); + case UMLPackage.EXPANSION_REGION__CONTEXT : + return getContext() != null; + case UMLPackage.EXPANSION_REGION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.EXPANSION_REGION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.EXPANSION_REGION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.EXPANSION_REGION__MEMBER : + return isSetMembers(); + case UMLPackage.EXPANSION_REGION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.EXPANSION_REGION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.EXPANSION_REGION__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.EXPANSION_REGION__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.EXPANSION_REGION__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.EXPANSION_REGION__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.EXPANSION_REGION__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.EXPANSION_REGION__VARIABLE : + List variable = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__VARIABLE); + return variable != null && !variable.isEmpty(); + case UMLPackage.EXPANSION_REGION__NODE : + List node = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.EXPANSION_REGION__MUST_ISOLATE : + return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT; + case UMLPackage.EXPANSION_REGION__EDGE : + List edge = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__EDGE); + return edge != null && !edge.isEmpty(); + case UMLPackage.EXPANSION_REGION__MODE : + return eVirtualIsSet(UMLPackage.EXPANSION_REGION__MODE) + && eVirtualGet(UMLPackage.EXPANSION_REGION__MODE) != MODE_EDEFAULT; + case UMLPackage.EXPANSION_REGION__INPUT_ELEMENT : + List inputElement = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__INPUT_ELEMENT); + return inputElement != null && !inputElement.isEmpty(); + case UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT : + List outputElement = (List) eVirtualGet(UMLPackage.EXPANSION_REGION__OUTPUT_ELEMENT); + return outputElement != null && !outputElement.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (mode: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.EXPANSION_REGION__MODE) + ? eVirtualGet(UMLPackage.EXPANSION_REGION__MODE) + : MODE_EDEFAULT); + result.append(')'); + return result.toString(); + } + +} //ExpansionRegionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpressionImpl.java new file mode 100644 index 00000000..0cfa2308 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpressionImpl.java @@ -0,0 +1,443 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpressionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Expression; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Expression'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl#getSymbol Symbol}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl#getOperands Operand}
  • + *
+ *

+ * + * @generated + */ +public class ExpressionImpl + extends ValueSpecificationImpl + implements Expression { + + /** + * The default value of the '{@link #getSymbol() Symbol}' attribute. + * + * + * @see #getSymbol() + * @generated + * @ordered + */ + protected static final String SYMBOL_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected ExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExpression(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.EXPRESSION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.EXPRESSION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.EXPRESSION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExpression_Operand()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public String getSymbol() { + String symbol = (String) eVirtualGet(UMLPackage.EXPRESSION__SYMBOL); + return symbol == null + ? SYMBOL_EDEFAULT + : symbol; + } + + /** + * + * + * @generated + */ + public void setSymbol(String newSymbol) { + newSymbol = newSymbol == null + ? SYMBOL_EDEFAULT + : newSymbol; + String symbol = newSymbol; + Object oldSymbol = eVirtualSet(UMLPackage.EXPRESSION__SYMBOL, symbol); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXPRESSION__SYMBOL, oldSymbol == EVIRTUAL_NO_VALUE + ? SYMBOL_EDEFAULT + : oldSymbol, symbol)); + + } + + /** + * + * + * @generated + */ + public List getOperands() { + List operand = (List) eVirtualGet(UMLPackage.EXPRESSION__OPERAND); + if (operand == null) { + eVirtualSet(UMLPackage.EXPRESSION__OPERAND, + operand = new EObjectContainmentEList(ValueSpecification.class, + this, UMLPackage.EXPRESSION__OPERAND)); + } + return operand; + } + + /** + * + * + * @generated + */ + public ValueSpecification createOperand(EClass eClass) { + ValueSpecification newOperand = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getOperands().add(newOperand); + return newOperand; + } + + /** + * + * + * @generated + */ + public ValueSpecification getOperand(String name) { + for (Iterator i = getOperands().iterator(); i.hasNext();) { + ValueSpecification operand = (ValueSpecification) i.next(); + if (name.equals(operand.getName())) { + return operand; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXPRESSION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPRESSION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXPRESSION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXPRESSION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.EXPRESSION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.EXPRESSION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.EXPRESSION__OPERAND : + return ((InternalEList) getOperands()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPRESSION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXPRESSION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXPRESSION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXPRESSION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXPRESSION__NAME : + return getName(); + case UMLPackage.EXPRESSION__VISIBILITY : + return getVisibility(); + case UMLPackage.EXPRESSION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXPRESSION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXPRESSION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXPRESSION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXPRESSION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.EXPRESSION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.EXPRESSION__SYMBOL : + return getSymbol(); + case UMLPackage.EXPRESSION__OPERAND : + return getOperands(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXPRESSION__NAME : + setName((String) newValue); + return; + case UMLPackage.EXPRESSION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.EXPRESSION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.EXPRESSION__SYMBOL : + setSymbol((String) newValue); + return; + case UMLPackage.EXPRESSION__OPERAND : + getOperands().clear(); + getOperands().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXPRESSION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXPRESSION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.EXPRESSION__TYPE : + setType((Type) null); + return; + case UMLPackage.EXPRESSION__SYMBOL : + setSymbol(SYMBOL_EDEFAULT); + return; + case UMLPackage.EXPRESSION__OPERAND : + getOperands().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXPRESSION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXPRESSION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXPRESSION__OWNER : + return isSetOwner(); + case UMLPackage.EXPRESSION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXPRESSION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXPRESSION__NAME : + String name = eVirtualIsSet(UMLPackage.EXPRESSION__NAME) + ? (String) eVirtualGet(UMLPackage.EXPRESSION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXPRESSION__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXPRESSION__VISIBILITY) + && eVirtualGet(UMLPackage.EXPRESSION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXPRESSION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXPRESSION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXPRESSION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXPRESSION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXPRESSION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXPRESSION__NAME_EXPRESSION) != null; + case UMLPackage.EXPRESSION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.EXPRESSION__TEMPLATE_PARAMETER) != null; + case UMLPackage.EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.EXPRESSION__TYPE : + return eVirtualGet(UMLPackage.EXPRESSION__TYPE) != null; + case UMLPackage.EXPRESSION__SYMBOL : + String symbol = eVirtualIsSet(UMLPackage.EXPRESSION__SYMBOL) + ? (String) eVirtualGet(UMLPackage.EXPRESSION__SYMBOL) + : SYMBOL_EDEFAULT; + return SYMBOL_EDEFAULT == null + ? symbol != null + : !SYMBOL_EDEFAULT.equals(symbol); + case UMLPackage.EXPRESSION__OPERAND : + List operand = (List) eVirtualGet(UMLPackage.EXPRESSION__OPERAND); + return operand != null && !operand.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (symbol: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.EXPRESSION__SYMBOL) + ? eVirtualGet(UMLPackage.EXPRESSION__SYMBOL) + : SYMBOL_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getExpression_Operand()); + } + +} //ExpressionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java new file mode 100644 index 00000000..a8356a00 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java @@ -0,0 +1,743 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtendImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Extend; +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ExtendOperations; + +/** + * + * An implementation of the model object 'Extend'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getExtendedCase Extended Case}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getCondition Condition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getExtensionLocations Extension Location}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getExtension Extension}
  • + *
+ *

+ * + * @generated + */ +public class ExtendImpl + extends NamedElementImpl + implements Extend { + + /** + * + * + * @generated + */ + protected ExtendImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExtend(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.EXTEND__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.EXTEND__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.EXTEND__RELATED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDirectedRelationship_Source(), + UMLPackage.eINSTANCE.getDirectedRelationship_Target()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.EXTEND__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.EXTEND__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.EXTEND__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getExtend_Extension()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.EXTEND__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.EXTEND__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.EXTEND__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getExtend_ExtendedCase()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.EXTEND__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.EXTEND__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.EXTEND__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExtend_Condition()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public UseCase getExtendedCase() { + UseCase extendedCase = (UseCase) eVirtualGet(UMLPackage.EXTEND__EXTENDED_CASE); + if (extendedCase != null && extendedCase.eIsProxy()) { + UseCase oldExtendedCase = extendedCase; + extendedCase = (UseCase) eResolveProxy((InternalEObject) extendedCase); + if (extendedCase != oldExtendedCase) { + eVirtualSet(UMLPackage.EXTEND__EXTENDED_CASE, extendedCase); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXTEND__EXTENDED_CASE, oldExtendedCase, + extendedCase)); + } + } + return extendedCase; + } + + /** + * + * + * @generated + */ + public UseCase basicGetExtendedCase() { + return (UseCase) eVirtualGet(UMLPackage.EXTEND__EXTENDED_CASE); + } + + /** + * + * + * @generated + */ + public void setExtendedCase(UseCase newExtendedCase) { + UseCase extendedCase = newExtendedCase; + Object oldExtendedCase = eVirtualSet(UMLPackage.EXTEND__EXTENDED_CASE, + extendedCase); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXTEND__EXTENDED_CASE, + oldExtendedCase == EVIRTUAL_NO_VALUE + ? null + : oldExtendedCase, extendedCase)); + + } + + /** + * + * + * @generated + */ + public Constraint getCondition() { + Constraint condition = (Constraint) eVirtualGet(UMLPackage.EXTEND__CONDITION); + return condition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCondition(Constraint newCondition, + NotificationChain msgs) { + Object oldCondition = eVirtualSet(UMLPackage.EXTEND__CONDITION, + newCondition); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.EXTEND__CONDITION, + oldCondition == EVIRTUAL_NO_VALUE + ? null + : oldCondition, newCondition); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setCondition(Constraint newCondition) { + Constraint condition = (Constraint) eVirtualGet(UMLPackage.EXTEND__CONDITION); + if (newCondition != condition) { + NotificationChain msgs = null; + if (condition != null) + msgs = ((InternalEObject) condition).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.EXTEND__CONDITION, + null, msgs); + if (newCondition != null) + msgs = ((InternalEObject) newCondition).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.EXTEND__CONDITION, + null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXTEND__CONDITION, newCondition, newCondition)); + + } + + /** + * + * + * @generated + */ + public Constraint createCondition(EClass eClass) { + Constraint newCondition = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setCondition(newCondition); + return newCondition; + } + + /** + * + * + * @generated + */ + public Constraint createCondition() { + Constraint newCondition = UMLFactory.eINSTANCE.createConstraint(); + setCondition(newCondition); + return newCondition; + } + + /** + * + * + * @generated + */ + public List getExtensionLocations() { + List extensionLocation = (List) eVirtualGet(UMLPackage.EXTEND__EXTENSION_LOCATION); + if (extensionLocation == null) { + eVirtualSet(UMLPackage.EXTEND__EXTENSION_LOCATION, + extensionLocation = new EObjectResolvingEList( + ExtensionPoint.class, this, + UMLPackage.EXTEND__EXTENSION_LOCATION)); + } + return extensionLocation; + } + + /** + * + * + * @generated + */ + public ExtensionPoint getExtensionLocation(String name) { + for (Iterator i = getExtensionLocations().iterator(); i.hasNext();) { + ExtensionPoint extensionLocation = (ExtensionPoint) i.next(); + if (name.equals(extensionLocation.getName())) { + return extensionLocation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public UseCase getExtension() { + if (eContainerFeatureID != UMLPackage.EXTEND__EXTENSION) + return null; + return (UseCase) eContainer; + } + + /** + * + * + * @generated + */ + public void setExtension(UseCase newExtension) { + if (newExtension != eContainer + || (eContainerFeatureID != UMLPackage.EXTEND__EXTENSION && newExtension != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newExtension)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newExtension != null) + msgs = ((InternalEObject) newExtension).eInverseAdd(this, + UMLPackage.USE_CASE__EXTEND, UseCase.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newExtension, + UMLPackage.EXTEND__EXTENSION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXTEND__EXTENSION, newExtension, newExtension)); + + } + + /** + * + * + * @generated + */ + public boolean validateExtensionPoints(DiagnosticChain diagnostics, + Map context) { + return ExtendOperations.validateExtensionPoints(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXTEND__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXTEND__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXTEND__EXTENSION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXTEND__EXTENSION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXTEND__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXTEND__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXTEND__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXTEND__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.EXTEND__CONDITION : + return basicSetCondition(null, msgs); + case UMLPackage.EXTEND__EXTENSION : + return eBasicSetContainer(null, + UMLPackage.EXTEND__EXTENSION, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.EXTEND__EXTENSION : + return eContainer.eInverseRemove(this, + UMLPackage.USE_CASE__EXTEND, UseCase.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTEND__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXTEND__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXTEND__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXTEND__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXTEND__NAME : + return getName(); + case UMLPackage.EXTEND__VISIBILITY : + return getVisibility(); + case UMLPackage.EXTEND__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXTEND__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXTEND__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXTEND__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXTEND__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.EXTEND__SOURCE : + return getSources(); + case UMLPackage.EXTEND__TARGET : + return getTargets(); + case UMLPackage.EXTEND__EXTENDED_CASE : + if (resolve) + return getExtendedCase(); + return basicGetExtendedCase(); + case UMLPackage.EXTEND__CONDITION : + return getCondition(); + case UMLPackage.EXTEND__EXTENSION_LOCATION : + return getExtensionLocations(); + case UMLPackage.EXTEND__EXTENSION : + return getExtension(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTEND__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXTEND__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXTEND__NAME : + setName((String) newValue); + return; + case UMLPackage.EXTEND__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXTEND__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXTEND__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXTEND__EXTENDED_CASE : + setExtendedCase((UseCase) newValue); + return; + case UMLPackage.EXTEND__CONDITION : + setCondition((Constraint) newValue); + return; + case UMLPackage.EXTEND__EXTENSION_LOCATION : + getExtensionLocations().clear(); + getExtensionLocations().addAll((Collection) newValue); + return; + case UMLPackage.EXTEND__EXTENSION : + setExtension((UseCase) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTEND__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXTEND__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXTEND__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXTEND__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXTEND__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXTEND__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXTEND__EXTENDED_CASE : + setExtendedCase((UseCase) null); + return; + case UMLPackage.EXTEND__CONDITION : + setCondition((Constraint) null); + return; + case UMLPackage.EXTEND__EXTENSION_LOCATION : + getExtensionLocations().clear(); + return; + case UMLPackage.EXTEND__EXTENSION : + setExtension((UseCase) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTEND__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXTEND__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXTEND__OWNER : + return isSetOwner(); + case UMLPackage.EXTEND__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXTEND__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXTEND__NAME : + String name = eVirtualIsSet(UMLPackage.EXTEND__NAME) + ? (String) eVirtualGet(UMLPackage.EXTEND__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXTEND__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXTEND__VISIBILITY) + && eVirtualGet(UMLPackage.EXTEND__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXTEND__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXTEND__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXTEND__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXTEND__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXTEND__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXTEND__NAME_EXPRESSION) != null; + case UMLPackage.EXTEND__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.EXTEND__SOURCE : + return isSetSources(); + case UMLPackage.EXTEND__TARGET : + return isSetTargets(); + case UMLPackage.EXTEND__EXTENDED_CASE : + return eVirtualGet(UMLPackage.EXTEND__EXTENDED_CASE) != null; + case UMLPackage.EXTEND__CONDITION : + return eVirtualGet(UMLPackage.EXTEND__CONDITION) != null; + case UMLPackage.EXTEND__EXTENSION_LOCATION : + List extensionLocation = (List) eVirtualGet(UMLPackage.EXTEND__EXTENSION_LOCATION); + return extensionLocation != null + && !extensionLocation.isEmpty(); + case UMLPackage.EXTEND__EXTENSION : + return getExtension() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case UMLPackage.EXTEND__RELATED_ELEMENT : + return UMLPackage.RELATIONSHIP__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (derivedFeatureID) { + case UMLPackage.EXTEND__SOURCE : + return UMLPackage.DIRECTED_RELATIONSHIP__SOURCE; + case UMLPackage.EXTEND__TARGET : + return UMLPackage.DIRECTED_RELATIONSHIP__TARGET; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return UMLPackage.EXTEND__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (baseFeatureID) { + case UMLPackage.DIRECTED_RELATIONSHIP__SOURCE : + return UMLPackage.EXTEND__SOURCE; + case UMLPackage.DIRECTED_RELATIONSHIP__TARGET : + return UMLPackage.EXTEND__TARGET; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return isSetSources() || isSetTargets(); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return eIsSet(UMLPackage.eINSTANCE.getExtend_Extension()); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return eIsSet(UMLPackage.eINSTANCE.getExtend_ExtendedCase()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getExtend_Condition()); + } + +} //ExtendImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java new file mode 100644 index 00000000..907e85e6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java @@ -0,0 +1,435 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionEndImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.ExtensionEnd; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ExtensionEndOperations; + +/** + * + * An implementation of the model object 'Extension End'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl#getLower Lower}
  • + *
+ *

+ * + * @generated + */ +public class ExtensionEndImpl + extends PropertyImpl + implements ExtensionEnd { + + /** + * + * + * @generated + */ + protected ExtensionEndImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExtensionEnd(); + } + + /** + * + * + * @generated + */ + public Type getType() { + Type type = (Type) eVirtualGet(UMLPackage.EXTENSION_END__TYPE); + if (type != null && type.eIsProxy()) { + Type oldType = type; + type = (Type) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.EXTENSION_END__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.EXTENSION_END__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Type basicGetType() { + return (Type) eVirtualGet(UMLPackage.EXTENSION_END__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Type newType) { + Type type = newType; + Object oldType = eVirtualSet(UMLPackage.EXTENSION_END__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXTENSION_END__TYPE, oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public boolean isSetType() { + return eVirtualGet(UMLPackage.EXTENSION_END__TYPE) != null; + } + + /** + * + * + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean isSetLower() { + return getLower() != LOWER_EDEFAULT; + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ExtensionEndOperations.validateMultiplicity(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateAggregation(DiagnosticChain diagnostics, Map context) { + return ExtensionEndOperations.validateAggregation(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public int lowerBound() { + return ExtensionEndOperations.lowerBound(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION_END__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXTENSION_END__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXTENSION_END__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXTENSION_END__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXTENSION_END__NAME : + return getName(); + case UMLPackage.EXTENSION_END__VISIBILITY : + return getVisibility(); + case UMLPackage.EXTENSION_END__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXTENSION_END__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXTENSION_END__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXTENSION_END__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXTENSION_END__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.EXTENSION_END__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.EXTENSION_END__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.EXTENSION_END__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.EXTENSION_END__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__UPPER : + return new Integer(getUpper()); + case UMLPackage.EXTENSION_END__LOWER : + return new Integer(getLower()); + case UMLPackage.EXTENSION_END__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.EXTENSION_END__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.EXTENSION_END__IS_READ_ONLY : + return isReadOnly() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.EXTENSION_END__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.EXTENSION_END__END : + return getEnds(); + case UMLPackage.EXTENSION_END__DEPLOYMENT : + return getDeployments(); + case UMLPackage.EXTENSION_END__DEPLOYED_ELEMENT : + return getDeployedElements(); + case UMLPackage.EXTENSION_END__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.EXTENSION_END__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.EXTENSION_END__DATATYPE : + return getDatatype(); + case UMLPackage.EXTENSION_END__IS_DERIVED : + return isDerived() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__IS_DERIVED_UNION : + return isDerivedUnion() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__DEFAULT : + return getDefault(); + case UMLPackage.EXTENSION_END__AGGREGATION : + return getAggregation(); + case UMLPackage.EXTENSION_END__IS_COMPOSITE : + return isComposite() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_END__CLASS_ : + return getClass_(); + case UMLPackage.EXTENSION_END__REDEFINED_PROPERTY : + return getRedefinedProperties(); + case UMLPackage.EXTENSION_END__OWNING_ASSOCIATION : + return getOwningAssociation(); + case UMLPackage.EXTENSION_END__ASSOCIATION : + if (resolve) + return getAssociation(); + return basicGetAssociation(); + case UMLPackage.EXTENSION_END__DEFAULT_VALUE : + return getDefaultValue(); + case UMLPackage.EXTENSION_END__OPPOSITE : + if (resolve) + return getOpposite(); + return basicGetOpposite(); + case UMLPackage.EXTENSION_END__SUBSETTED_PROPERTY : + return getSubsettedProperties(); + case UMLPackage.EXTENSION_END__QUALIFIER : + return getQualifiers(); + case UMLPackage.EXTENSION_END__ASSOCIATION_END : + return getAssociationEnd(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION_END__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXTENSION_END__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXTENSION_END__OWNER : + return isSetOwner(); + case UMLPackage.EXTENSION_END__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXTENSION_END__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXTENSION_END__NAME : + String name = eVirtualIsSet(UMLPackage.EXTENSION_END__NAME) + ? (String) eVirtualGet(UMLPackage.EXTENSION_END__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXTENSION_END__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXTENSION_END__VISIBILITY) + && eVirtualGet(UMLPackage.EXTENSION_END__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXTENSION_END__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXTENSION_END__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXTENSION_END__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXTENSION_END__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXTENSION_END__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXTENSION_END__NAME_EXPRESSION) != null; + case UMLPackage.EXTENSION_END__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.EXTENSION_END__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.EXTENSION_END__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.EXTENSION_END__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.EXTENSION_END__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.EXTENSION_END__TYPE : + return eVirtualGet(UMLPackage.EXTENSION_END__TYPE) != null; + case UMLPackage.EXTENSION_END__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.EXTENSION_END__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.EXTENSION_END__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.EXTENSION_END__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.EXTENSION_END__UPPER_VALUE : + return eVirtualGet(UMLPackage.EXTENSION_END__UPPER_VALUE) != null; + case UMLPackage.EXTENSION_END__LOWER_VALUE : + return eVirtualGet(UMLPackage.EXTENSION_END__LOWER_VALUE) != null; + case UMLPackage.EXTENSION_END__IS_READ_ONLY : + return isReadOnly() != IS_READ_ONLY_EDEFAULT; + case UMLPackage.EXTENSION_END__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.EXTENSION_END__TEMPLATE_PARAMETER) != null; + case UMLPackage.EXTENSION_END__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.EXTENSION_END__END : + List end = (List) eVirtualGet(UMLPackage.EXTENSION_END__END); + return end != null && !end.isEmpty(); + case UMLPackage.EXTENSION_END__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.EXTENSION_END__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.EXTENSION_END__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + case UMLPackage.EXTENSION_END__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.EXTENSION_END__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.EXTENSION_END__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.EXTENSION_END__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.EXTENSION_END__DATATYPE : + return getDatatype() != null; + case UMLPackage.EXTENSION_END__IS_DERIVED : + return ((eFlags & IS_DERIVED_EFLAG) != 0) != IS_DERIVED_EDEFAULT; + case UMLPackage.EXTENSION_END__IS_DERIVED_UNION : + return ((eFlags & IS_DERIVED_UNION_EFLAG) != 0) != IS_DERIVED_UNION_EDEFAULT; + case UMLPackage.EXTENSION_END__DEFAULT : + return DEFAULT_EDEFAULT == null + ? getDefault() != null + : !DEFAULT_EDEFAULT.equals(getDefault()); + case UMLPackage.EXTENSION_END__AGGREGATION : + return eVirtualIsSet(UMLPackage.EXTENSION_END__AGGREGATION) + && eVirtualGet(UMLPackage.EXTENSION_END__AGGREGATION) != AGGREGATION_EDEFAULT; + case UMLPackage.EXTENSION_END__IS_COMPOSITE : + return isComposite() != IS_COMPOSITE_EDEFAULT; + case UMLPackage.EXTENSION_END__CLASS_ : + return getClass_() != null; + case UMLPackage.EXTENSION_END__REDEFINED_PROPERTY : + List redefinedProperty = (List) eVirtualGet(UMLPackage.EXTENSION_END__REDEFINED_PROPERTY); + return redefinedProperty != null + && !redefinedProperty.isEmpty(); + case UMLPackage.EXTENSION_END__OWNING_ASSOCIATION : + return getOwningAssociation() != null; + case UMLPackage.EXTENSION_END__ASSOCIATION : + return eVirtualGet(UMLPackage.EXTENSION_END__ASSOCIATION) != null; + case UMLPackage.EXTENSION_END__DEFAULT_VALUE : + return eVirtualGet(UMLPackage.EXTENSION_END__DEFAULT_VALUE) != null; + case UMLPackage.EXTENSION_END__OPPOSITE : + return basicGetOpposite() != null; + case UMLPackage.EXTENSION_END__SUBSETTED_PROPERTY : + List subsettedProperty = (List) eVirtualGet(UMLPackage.EXTENSION_END__SUBSETTED_PROPERTY); + return subsettedProperty != null + && !subsettedProperty.isEmpty(); + case UMLPackage.EXTENSION_END__QUALIFIER : + List qualifier = (List) eVirtualGet(UMLPackage.EXTENSION_END__QUALIFIER); + return qualifier != null && !qualifier.isEmpty(); + case UMLPackage.EXTENSION_END__ASSOCIATION_END : + return getAssociationEnd() != null; + } + return eDynamicIsSet(eFeature); + } + +} //ExtensionEndImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java new file mode 100644 index 00000000..d073c31c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java @@ -0,0 +1,444 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.uml2.common.util.SubsetEObjectEList; + +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.ExtensionEnd; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ExtensionOperations; + +/** + * + * An implementation of the model object 'Extension'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl#getOwnedEnds Owned End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl#isRequired Is Required}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl#getMetaclass Metaclass}
  • + *
+ *

+ * + * @generated + */ +public class ExtensionImpl + extends AssociationImpl + implements Extension { + + /** + * The default value of the '{@link #isRequired() Is Required}' attribute. + * + * + * @see #isRequired() + * @generated + * @ordered + */ + protected static final boolean IS_REQUIRED_EDEFAULT = false; + + /** + * + * + * @generated + */ + protected ExtensionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExtension(); + } + + /** + * + * + * @generated + */ + public List getOwnedEnds() { + List ownedEnd = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_END); + if (ownedEnd == null) { + eVirtualSet(UMLPackage.EXTENSION__OWNED_END, + ownedEnd = new SubsetEObjectEList(ExtensionEnd.class, this, + UMLPackage.EXTENSION__OWNED_END, + new int[]{UMLPackage.EXTENSION__OWNED_END})); + } + return ownedEnd; + } + + /** + * + * + * @generated + */ + public Property getOwnedEnd(String name) { + for (Iterator i = getOwnedEnds().iterator(); i.hasNext();) { + ExtensionEnd ownedEnd = (ExtensionEnd) i.next(); + if (name.equals(ownedEnd.getName())) { + return ownedEnd; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedEnds() { + List ownedEnd = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_END); + return ownedEnd != null && !ownedEnd.isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean isRequired() { + // TODO: implement this method to return the 'Is Required' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class getMetaclass() { + org.eclipse.uml2.uml.Class metaclass = basicGetMetaclass(); + return metaclass == null + ? null + : (metaclass.eIsProxy() + ? (org.eclipse.uml2.uml.Class) eResolveProxy((InternalEObject) metaclass) + : metaclass); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class basicGetMetaclass() { + // TODO: implement this method to return the 'Metaclass' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean validateNonOwnedEnd(DiagnosticChain diagnostics, Map context) { + return ExtensionOperations.validateNonOwnedEnd(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateIsBinary(DiagnosticChain diagnostics, Map context) { + return ExtensionOperations.validateIsBinary(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Property metaclassEnd() { + return ExtensionOperations.metaclassEnd(this); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class metaclass() { + return ExtensionOperations.metaclass(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXTENSION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXTENSION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXTENSION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXTENSION__NAME : + return getName(); + case UMLPackage.EXTENSION__VISIBILITY : + return getVisibility(); + case UMLPackage.EXTENSION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXTENSION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXTENSION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXTENSION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXTENSION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.EXTENSION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.EXTENSION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.EXTENSION__MEMBER : + return getMembers(); + case UMLPackage.EXTENSION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.EXTENSION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.EXTENSION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.EXTENSION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.EXTENSION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.EXTENSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.EXTENSION__PACKAGE : + return getPackage(); + case UMLPackage.EXTENSION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.EXTENSION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.EXTENSION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.EXTENSION__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.EXTENSION__FEATURE : + return getFeatures(); + case UMLPackage.EXTENSION__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.EXTENSION__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.EXTENSION__GENERAL : + return getGenerals(); + case UMLPackage.EXTENSION__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.EXTENSION__USE_CASE : + return getUseCases(); + case UMLPackage.EXTENSION__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.EXTENSION__ATTRIBUTE : + return getAttributes(); + case UMLPackage.EXTENSION__REPRESENTATION : + return getRepresentation(); + case UMLPackage.EXTENSION__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.EXTENSION__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.EXTENSION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.EXTENSION__IS_DERIVED : + return isDerived() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION__END_TYPE : + return getEndTypes(); + case UMLPackage.EXTENSION__MEMBER_END : + return getMemberEnds(); + case UMLPackage.EXTENSION__NAVIGABLE_OWNED_END : + return getNavigableOwnedEnds(); + case UMLPackage.EXTENSION__OWNED_END : + return getOwnedEnds(); + case UMLPackage.EXTENSION__IS_REQUIRED : + return isRequired() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION__METACLASS : + if (resolve) + return getMetaclass(); + return basicGetMetaclass(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXTENSION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXTENSION__OWNER : + return isSetOwner(); + case UMLPackage.EXTENSION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXTENSION__NAME : + String name = eVirtualIsSet(UMLPackage.EXTENSION__NAME) + ? (String) eVirtualGet(UMLPackage.EXTENSION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXTENSION__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXTENSION__VISIBILITY) + && eVirtualGet(UMLPackage.EXTENSION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXTENSION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXTENSION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXTENSION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXTENSION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXTENSION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXTENSION__NAME_EXPRESSION) != null; + case UMLPackage.EXTENSION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.EXTENSION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.EXTENSION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.EXTENSION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.EXTENSION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.EXTENSION__MEMBER : + return isSetMembers(); + case UMLPackage.EXTENSION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.EXTENSION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.EXTENSION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.EXTENSION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.EXTENSION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.EXTENSION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.EXTENSION__TEMPLATE_PARAMETER) != null; + case UMLPackage.EXTENSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.EXTENSION__PACKAGE : + return getPackage() != null; + case UMLPackage.EXTENSION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.EXTENSION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.EXTENSION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.EXTENSION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.EXTENSION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.EXTENSION__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.EXTENSION__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.EXTENSION__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.EXTENSION__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.EXTENSION__FEATURE : + return isSetFeatures(); + case UMLPackage.EXTENSION__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.EXTENSION__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.EXTENSION__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.EXTENSION__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.EXTENSION__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.EXTENSION__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.EXTENSION__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.EXTENSION__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.EXTENSION__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.EXTENSION__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.EXTENSION__REPRESENTATION : + return eVirtualGet(UMLPackage.EXTENSION__REPRESENTATION) != null; + case UMLPackage.EXTENSION__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.EXTENSION__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.EXTENSION__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.EXTENSION__OWNED_SIGNATURE) != null; + case UMLPackage.EXTENSION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.EXTENSION__IS_DERIVED : + return ((eFlags & IS_DERIVED_EFLAG) != 0) != IS_DERIVED_EDEFAULT; + case UMLPackage.EXTENSION__END_TYPE : + return !getEndTypes().isEmpty(); + case UMLPackage.EXTENSION__MEMBER_END : + List memberEnd = (List) eVirtualGet(UMLPackage.EXTENSION__MEMBER_END); + return memberEnd != null && !memberEnd.isEmpty(); + case UMLPackage.EXTENSION__NAVIGABLE_OWNED_END : + List navigableOwnedEnd = (List) eVirtualGet(UMLPackage.EXTENSION__NAVIGABLE_OWNED_END); + return navigableOwnedEnd != null + && !navigableOwnedEnd.isEmpty(); + case UMLPackage.EXTENSION__OWNED_END : + List ownedEnd = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_END); + return ownedEnd != null && !ownedEnd.isEmpty(); + case UMLPackage.EXTENSION__IS_REQUIRED : + return isRequired() != IS_REQUIRED_EDEFAULT; + case UMLPackage.EXTENSION__METACLASS : + return basicGetMetaclass() != null; + } + return eDynamicIsSet(eFeature); + } + +} //ExtensionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java new file mode 100644 index 00000000..c61ab711 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java @@ -0,0 +1,373 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionPointImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ExtensionPointOperations; + +/** + * + * An implementation of the model object 'Extension Point'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ExtensionPointImpl#getUseCase Use Case}
  • + *
+ *

+ * + * @generated + */ +public class ExtensionPointImpl + extends RedefinableElementImpl + implements ExtensionPoint { + + /** + * + * + * @generated + */ + protected ExtensionPointImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getExtensionPoint(); + } + + /** + * + * + * @generated + */ + public UseCase getUseCase() { + if (eContainerFeatureID != UMLPackage.EXTENSION_POINT__USE_CASE) + return null; + return (UseCase) eContainer; + } + + /** + * + * + * @generated + */ + public void setUseCase(UseCase newUseCase) { + if (newUseCase != eContainer + || (eContainerFeatureID != UMLPackage.EXTENSION_POINT__USE_CASE && newUseCase != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newUseCase)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newUseCase != null) + msgs = ((InternalEObject) newUseCase).eInverseAdd(this, + UMLPackage.USE_CASE__EXTENSION_POINT, UseCase.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newUseCase, + UMLPackage.EXTENSION_POINT__USE_CASE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.EXTENSION_POINT__USE_CASE, newUseCase, newUseCase)); + + } + + /** + * + * + * @generated + */ + public boolean validateMustHaveName(DiagnosticChain diagnostics, Map context) { + return ExtensionPointOperations.validateMustHaveName(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXTENSION_POINT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.EXTENSION_POINT__USE_CASE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.EXTENSION_POINT__USE_CASE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.EXTENSION_POINT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXTENSION_POINT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.EXTENSION_POINT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.EXTENSION_POINT__USE_CASE : + return eBasicSetContainer(null, + UMLPackage.EXTENSION_POINT__USE_CASE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.EXTENSION_POINT__USE_CASE : + return eContainer.eInverseRemove(this, + UMLPackage.USE_CASE__EXTENSION_POINT, UseCase.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION_POINT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.EXTENSION_POINT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.EXTENSION_POINT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.EXTENSION_POINT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.EXTENSION_POINT__NAME : + return getName(); + case UMLPackage.EXTENSION_POINT__VISIBILITY : + return getVisibility(); + case UMLPackage.EXTENSION_POINT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.EXTENSION_POINT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.EXTENSION_POINT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.EXTENSION_POINT__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.EXTENSION_POINT__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.EXTENSION_POINT__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.EXTENSION_POINT__USE_CASE : + return getUseCase(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION_POINT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.EXTENSION_POINT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.EXTENSION_POINT__NAME : + setName((String) newValue); + return; + case UMLPackage.EXTENSION_POINT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.EXTENSION_POINT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.EXTENSION_POINT__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.EXTENSION_POINT__USE_CASE : + setUseCase((UseCase) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION_POINT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.EXTENSION_POINT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.EXTENSION_POINT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.EXTENSION_POINT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.EXTENSION_POINT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.EXTENSION_POINT__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.EXTENSION_POINT__USE_CASE : + setUseCase((UseCase) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.EXTENSION_POINT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.EXTENSION_POINT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.EXTENSION_POINT__OWNER : + return isSetOwner(); + case UMLPackage.EXTENSION_POINT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.EXTENSION_POINT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.EXTENSION_POINT__NAME : + String name = eVirtualIsSet(UMLPackage.EXTENSION_POINT__NAME) + ? (String) eVirtualGet(UMLPackage.EXTENSION_POINT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.EXTENSION_POINT__VISIBILITY : + return eVirtualIsSet(UMLPackage.EXTENSION_POINT__VISIBILITY) + && eVirtualGet(UMLPackage.EXTENSION_POINT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.EXTENSION_POINT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.EXTENSION_POINT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.EXTENSION_POINT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.EXTENSION_POINT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.EXTENSION_POINT__NAME_EXPRESSION) != null; + case UMLPackage.EXTENSION_POINT__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.EXTENSION_POINT__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.EXTENSION_POINT__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.EXTENSION_POINT__USE_CASE : + return getUseCase() != null; + } + return eDynamicIsSet(eFeature); + } + +} //ExtensionPointImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FeatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FeatureImpl.java new file mode 100644 index 00000000..4231aeb8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FeatureImpl.java @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FeatureImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Feature'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.FeatureImpl#getFeaturingClassifiers Featuring Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.FeatureImpl#isStatic Is Static}
  • + *
+ *

+ * + * @generated + */ +public abstract class FeatureImpl + extends RedefinableElementImpl + implements Feature { + + /** + * The default value of the '{@link #isStatic() Is Static}' attribute. + * + * + * @see #isStatic() + * @generated + * @ordered + */ + protected static final boolean IS_STATIC_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isStatic() Is Static}' attribute. + * + * + * @see #isStatic() + * @generated + * @ordered + */ + protected static final int IS_STATIC_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected FeatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getFeature(); + } + + /** + * + * + * @generated + */ + public List getFeaturingClassifiers() { + List featuringClassifier = (List) eVirtualGet(UMLPackage.FEATURE__FEATURING_CLASSIFIER); + if (featuringClassifier == null) { + eVirtualSet(UMLPackage.FEATURE__FEATURING_CLASSIFIER, + featuringClassifier = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.FEATURE__FEATURING_CLASSIFIER, + new EStructuralFeature[]{})); + } + return featuringClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getFeaturingClassifier(String name) { + for (Iterator i = getFeaturingClassifiers().iterator(); i.hasNext();) { + Classifier featuringClassifier = (Classifier) i.next(); + if (name.equals(featuringClassifier.getName())) { + return featuringClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isStatic() { + return (eFlags & IS_STATIC_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsStatic(boolean newIsStatic) { + boolean oldIsStatic = (eFlags & IS_STATIC_EFLAG) != 0; + if (newIsStatic) + eFlags |= IS_STATIC_EFLAG; + else + eFlags &= ~IS_STATIC_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.FEATURE__IS_STATIC, oldIsStatic, newIsStatic)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.FEATURE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.FEATURE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.FEATURE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.FEATURE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.FEATURE__NAME : + return getName(); + case UMLPackage.FEATURE__VISIBILITY : + return getVisibility(); + case UMLPackage.FEATURE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.FEATURE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.FEATURE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.FEATURE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.FEATURE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.FEATURE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.FEATURE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.FEATURE__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.FEATURE__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.FEATURE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.FEATURE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.FEATURE__NAME : + setName((String) newValue); + return; + case UMLPackage.FEATURE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.FEATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.FEATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.FEATURE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.FEATURE__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.FEATURE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.FEATURE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.FEATURE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.FEATURE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.FEATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.FEATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.FEATURE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.FEATURE__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.FEATURE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.FEATURE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.FEATURE__OWNER : + return isSetOwner(); + case UMLPackage.FEATURE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.FEATURE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.FEATURE__NAME : + String name = eVirtualIsSet(UMLPackage.FEATURE__NAME) + ? (String) eVirtualGet(UMLPackage.FEATURE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.FEATURE__VISIBILITY : + return eVirtualIsSet(UMLPackage.FEATURE__VISIBILITY) + && eVirtualGet(UMLPackage.FEATURE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.FEATURE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.FEATURE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.FEATURE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.FEATURE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.FEATURE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.FEATURE__NAME_EXPRESSION) != null; + case UMLPackage.FEATURE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.FEATURE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.FEATURE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.FEATURE__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.FEATURE__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isStatic: "); //$NON-NLS-1$ + result.append((eFlags & IS_STATIC_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetFeaturingClassifiers() { + return false; + } + +} //FeatureImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java new file mode 100644 index 00000000..61eb87d2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FinalNodeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.FinalNode; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.FinalNodeOperations; + +/** + * + * An implementation of the model object 'Final Node'. + * + *

+ *

+ * + * @generated + */ +public abstract class FinalNodeImpl + extends ControlNodeImpl + implements FinalNode { + + /** + * + * + * @generated + */ + protected FinalNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getFinalNode(); + } + + /** + * + * + * @generated + */ + public boolean validateNoOutgoingEdges(DiagnosticChain diagnostics, + Map context) { + return FinalNodeOperations.validateNoOutgoingEdges(this, diagnostics, + context); + } + +} //FinalNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java new file mode 100644 index 00000000..e00bde3c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FinalStateImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.FinalState; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.FinalStateOperations; + +/** + * + * An implementation of the model object 'Final State'. + * + *

+ *

+ * + * @generated + */ +public class FinalStateImpl + extends StateImpl + implements FinalState { + + /** + * + * + * @generated + */ + protected FinalStateImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getFinalState(); + } + + /** + * + * + * @generated + */ + public boolean validateNoOutgoingTransitions(DiagnosticChain diagnostics, + Map context) { + return FinalStateOperations.validateNoOutgoingTransitions(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoRegions(DiagnosticChain diagnostics, Map context) { + return FinalStateOperations.validateNoRegions(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateCannotReferenceSubmachine( + DiagnosticChain diagnostics, Map context) { + return FinalStateOperations.validateCannotReferenceSubmachine(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoEntryBehavior(DiagnosticChain diagnostics, + Map context) { + return FinalStateOperations.validateNoEntryBehavior(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNoExitbehavior(DiagnosticChain diagnostics, + Map context) { + return FinalStateOperations.validateNoExitbehavior(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNoStateBehavior(DiagnosticChain diagnostics, + Map context) { + return FinalStateOperations.validateNoStateBehavior(this, diagnostics, + context); + } + +} //FinalStateImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FlowFinalNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FlowFinalNodeImpl.java new file mode 100644 index 00000000..07256de7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FlowFinalNodeImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FlowFinalNodeImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.FlowFinalNode; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Flow Final Node'. + * + *

+ *

+ * + * @generated + */ +public class FlowFinalNodeImpl + extends FinalNodeImpl + implements FlowFinalNode { + + /** + * + * + * @generated + */ + protected FlowFinalNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getFlowFinalNode(); + } + +} //FlowFinalNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java new file mode 100644 index 00000000..4f0d30da --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ForkNodeImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.ForkNode; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ForkNodeOperations; + +/** + * + * An implementation of the model object 'Fork Node'. + * + *

+ *

+ * + * @generated + */ +public class ForkNodeImpl + extends ControlNodeImpl + implements ForkNode { + + /** + * + * + * @generated + */ + protected ForkNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getForkNode(); + } + + /** + * + * + * @generated + */ + public boolean validateOneIncomingEdge(DiagnosticChain diagnostics, + Map context) { + return ForkNodeOperations.validateOneIncomingEdge(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEdges(DiagnosticChain diagnostics, Map context) { + return ForkNodeOperations.validateEdges(this, diagnostics, context); + } + +} //ForkNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java new file mode 100644 index 00000000..8060505a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FunctionBehaviorImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.FunctionBehavior; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.FunctionBehaviorOperations; + +/** + * + * An implementation of the model object 'Function Behavior'. + * + *

+ *

+ * + * @generated + */ +public class FunctionBehaviorImpl + extends OpaqueBehaviorImpl + implements FunctionBehavior { + + /** + * + * + * @generated + */ + protected FunctionBehaviorImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getFunctionBehavior(); + } + + /** + * + * + * @generated + */ + public boolean validateOneOutputParameter(DiagnosticChain diagnostics, + Map context) { + return FunctionBehaviorOperations.validateOneOutputParameter(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypesOfParameters(DiagnosticChain diagnostics, + Map context) { + return FunctionBehaviorOperations.validateTypesOfParameters(this, + diagnostics, context); + } + +} //FunctionBehaviorImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java new file mode 100644 index 00000000..b71d147e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GateImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.GateOperations; + +/** + * + * An implementation of the model object 'Gate'. + * + *

+ *

+ * + * @generated + */ +public class GateImpl + extends MessageEndImpl + implements Gate { + + /** + * + * + * @generated + */ + protected GateImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getGate(); + } + + /** + * + * + * @generated + */ + public boolean validateMessagesActualGate(DiagnosticChain diagnostics, + Map context) { + return GateOperations.validateMessagesActualGate(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMessagesCombinedFragment( + DiagnosticChain diagnostics, Map context) { + return GateOperations.validateMessagesCombinedFragment(this, + diagnostics, context); + } + +} //GateImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java new file mode 100644 index 00000000..7eb48f10 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java @@ -0,0 +1,463 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralOrderingImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.OccurrenceSpecification; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'General Ordering'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl#getBefore Before}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl#getAfter After}
  • + *
+ *

+ * + * @generated + */ +public class GeneralOrderingImpl + extends NamedElementImpl + implements GeneralOrdering { + + /** + * + * + * @generated + */ + protected GeneralOrderingImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getGeneralOrdering(); + } + + /** + * + * + * @generated + */ + public OccurrenceSpecification getBefore() { + OccurrenceSpecification before = (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__BEFORE); + if (before != null && before.eIsProxy()) { + OccurrenceSpecification oldBefore = before; + before = (OccurrenceSpecification) eResolveProxy((InternalEObject) before); + if (before != oldBefore) { + eVirtualSet(UMLPackage.GENERAL_ORDERING__BEFORE, before); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.GENERAL_ORDERING__BEFORE, oldBefore, before)); + } + } + return before; + } + + /** + * + * + * @generated + */ + public OccurrenceSpecification basicGetBefore() { + return (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__BEFORE); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBefore(OccurrenceSpecification newBefore, + NotificationChain msgs) { + Object oldBefore = eVirtualSet(UMLPackage.GENERAL_ORDERING__BEFORE, + newBefore); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.GENERAL_ORDERING__BEFORE, + oldBefore == EVIRTUAL_NO_VALUE + ? null + : oldBefore, newBefore); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setBefore(OccurrenceSpecification newBefore) { + OccurrenceSpecification before = (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__BEFORE); + if (newBefore != before) { + NotificationChain msgs = null; + if (before != null) + msgs = ((InternalEObject) before).eInverseRemove(this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER, + OccurrenceSpecification.class, msgs); + if (newBefore != null) + msgs = ((InternalEObject) newBefore).eInverseAdd(this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER, + OccurrenceSpecification.class, msgs); + msgs = basicSetBefore(newBefore, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERAL_ORDERING__BEFORE, newBefore, newBefore)); + + } + + /** + * + * + * @generated + */ + public OccurrenceSpecification getAfter() { + OccurrenceSpecification after = (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__AFTER); + if (after != null && after.eIsProxy()) { + OccurrenceSpecification oldAfter = after; + after = (OccurrenceSpecification) eResolveProxy((InternalEObject) after); + if (after != oldAfter) { + eVirtualSet(UMLPackage.GENERAL_ORDERING__AFTER, after); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.GENERAL_ORDERING__AFTER, oldAfter, after)); + } + } + return after; + } + + /** + * + * + * @generated + */ + public OccurrenceSpecification basicGetAfter() { + return (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__AFTER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAfter(OccurrenceSpecification newAfter, + NotificationChain msgs) { + Object oldAfter = eVirtualSet(UMLPackage.GENERAL_ORDERING__AFTER, + newAfter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.GENERAL_ORDERING__AFTER, + oldAfter == EVIRTUAL_NO_VALUE + ? null + : oldAfter, newAfter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setAfter(OccurrenceSpecification newAfter) { + OccurrenceSpecification after = (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__AFTER); + if (newAfter != after) { + NotificationChain msgs = null; + if (after != null) + msgs = ((InternalEObject) after).eInverseRemove(this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE, + OccurrenceSpecification.class, msgs); + if (newAfter != null) + msgs = ((InternalEObject) newAfter).eInverseAdd(this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE, + OccurrenceSpecification.class, msgs); + msgs = basicSetAfter(newAfter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERAL_ORDERING__AFTER, newAfter, newAfter)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.GENERAL_ORDERING__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.GENERAL_ORDERING__BEFORE : + OccurrenceSpecification before = (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__BEFORE); + if (before != null) + msgs = ((InternalEObject) before).eInverseRemove(this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER, + OccurrenceSpecification.class, msgs); + return basicSetBefore((OccurrenceSpecification) otherEnd, + msgs); + case UMLPackage.GENERAL_ORDERING__AFTER : + OccurrenceSpecification after = (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__AFTER); + if (after != null) + msgs = ((InternalEObject) after).eInverseRemove(this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE, + OccurrenceSpecification.class, msgs); + return basicSetAfter((OccurrenceSpecification) otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.GENERAL_ORDERING__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.GENERAL_ORDERING__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.GENERAL_ORDERING__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.GENERAL_ORDERING__BEFORE : + return basicSetBefore(null, msgs); + case UMLPackage.GENERAL_ORDERING__AFTER : + return basicSetAfter(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERAL_ORDERING__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.GENERAL_ORDERING__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.GENERAL_ORDERING__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.GENERAL_ORDERING__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.GENERAL_ORDERING__NAME : + return getName(); + case UMLPackage.GENERAL_ORDERING__VISIBILITY : + return getVisibility(); + case UMLPackage.GENERAL_ORDERING__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.GENERAL_ORDERING__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.GENERAL_ORDERING__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.GENERAL_ORDERING__BEFORE : + if (resolve) + return getBefore(); + return basicGetBefore(); + case UMLPackage.GENERAL_ORDERING__AFTER : + if (resolve) + return getAfter(); + return basicGetAfter(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERAL_ORDERING__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.GENERAL_ORDERING__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.GENERAL_ORDERING__NAME : + setName((String) newValue); + return; + case UMLPackage.GENERAL_ORDERING__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.GENERAL_ORDERING__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.GENERAL_ORDERING__BEFORE : + setBefore((OccurrenceSpecification) newValue); + return; + case UMLPackage.GENERAL_ORDERING__AFTER : + setAfter((OccurrenceSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERAL_ORDERING__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.GENERAL_ORDERING__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.GENERAL_ORDERING__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.GENERAL_ORDERING__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.GENERAL_ORDERING__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.GENERAL_ORDERING__BEFORE : + setBefore((OccurrenceSpecification) null); + return; + case UMLPackage.GENERAL_ORDERING__AFTER : + setAfter((OccurrenceSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERAL_ORDERING__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.GENERAL_ORDERING__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.GENERAL_ORDERING__OWNER : + return isSetOwner(); + case UMLPackage.GENERAL_ORDERING__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.GENERAL_ORDERING__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.GENERAL_ORDERING__NAME : + String name = eVirtualIsSet(UMLPackage.GENERAL_ORDERING__NAME) + ? (String) eVirtualGet(UMLPackage.GENERAL_ORDERING__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.GENERAL_ORDERING__VISIBILITY : + return eVirtualIsSet(UMLPackage.GENERAL_ORDERING__VISIBILITY) + && eVirtualGet(UMLPackage.GENERAL_ORDERING__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.GENERAL_ORDERING__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.GENERAL_ORDERING__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.GENERAL_ORDERING__NAMESPACE : + return isSetNamespace(); + case UMLPackage.GENERAL_ORDERING__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.GENERAL_ORDERING__NAME_EXPRESSION) != null; + case UMLPackage.GENERAL_ORDERING__BEFORE : + return eVirtualGet(UMLPackage.GENERAL_ORDERING__BEFORE) != null; + case UMLPackage.GENERAL_ORDERING__AFTER : + return eVirtualGet(UMLPackage.GENERAL_ORDERING__AFTER) != null; + } + return eDynamicIsSet(eFeature); + } + +} //GeneralOrderingImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java new file mode 100644 index 00000000..33285c3d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java @@ -0,0 +1,571 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralizationImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.GeneralizationOperations; + +/** + * + * An implementation of the model object 'Generalization'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#isSubstitutable Is Substitutable}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getGeneral General}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getGeneralizationSets Generalization Set}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getSpecific Specific}
  • + *
+ *

+ * + * @generated + */ +public class GeneralizationImpl + extends DirectedRelationshipImpl + implements Generalization { + + /** + * The default value of the '{@link #isSubstitutable() Is Substitutable}' attribute. + * + * + * @see #isSubstitutable() + * @generated + * @ordered + */ + protected static final boolean IS_SUBSTITUTABLE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isSubstitutable() Is Substitutable}' attribute. + * + * + * @see #isSubstitutable() + * @generated + * @ordered + */ + protected static final int IS_SUBSTITUTABLE_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected GeneralizationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getGeneralization(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.GENERALIZATION__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.GENERALIZATION__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.GENERALIZATION__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getGeneralization_General()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.GENERALIZATION__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.GENERALIZATION__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.GENERALIZATION__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getGeneralization_Specific()})); + } + return source; + } + + /** + * + * + * @generated + */ + public boolean isSubstitutable() { + return (eFlags & IS_SUBSTITUTABLE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsSubstitutable(boolean newIsSubstitutable) { + boolean oldIsSubstitutable = (eFlags & IS_SUBSTITUTABLE_EFLAG) != 0; + if (newIsSubstitutable) + eFlags |= IS_SUBSTITUTABLE_EFLAG; + else + eFlags &= ~IS_SUBSTITUTABLE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERALIZATION__IS_SUBSTITUTABLE, + oldIsSubstitutable, newIsSubstitutable)); + + } + + /** + * + * + * @generated + */ + public Classifier getGeneral() { + Classifier general = (Classifier) eVirtualGet(UMLPackage.GENERALIZATION__GENERAL); + if (general != null && general.eIsProxy()) { + Classifier oldGeneral = general; + general = (Classifier) eResolveProxy((InternalEObject) general); + if (general != oldGeneral) { + eVirtualSet(UMLPackage.GENERALIZATION__GENERAL, general); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.GENERALIZATION__GENERAL, oldGeneral, general)); + } + } + return general; + } + + /** + * + * + * @generated + */ + public Classifier basicGetGeneral() { + return (Classifier) eVirtualGet(UMLPackage.GENERALIZATION__GENERAL); + } + + /** + * + * + * @generated + */ + public void setGeneral(Classifier newGeneral) { + Classifier general = newGeneral; + Object oldGeneral = eVirtualSet(UMLPackage.GENERALIZATION__GENERAL, + general); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERALIZATION__GENERAL, + oldGeneral == EVIRTUAL_NO_VALUE + ? null + : oldGeneral, general)); + + } + + /** + * + * + * @generated + */ + public List getGeneralizationSets() { + List generalizationSet = (List) eVirtualGet(UMLPackage.GENERALIZATION__GENERALIZATION_SET); + if (generalizationSet == null) { + eVirtualSet( + UMLPackage.GENERALIZATION__GENERALIZATION_SET, + generalizationSet = new EObjectWithInverseResolvingEList.ManyInverse( + GeneralizationSet.class, this, + UMLPackage.GENERALIZATION__GENERALIZATION_SET, + UMLPackage.GENERALIZATION_SET__GENERALIZATION)); + } + return generalizationSet; + } + + /** + * + * + * @generated + */ + public GeneralizationSet getGeneralizationSet(String name) { + for (Iterator i = getGeneralizationSets().iterator(); i.hasNext();) { + GeneralizationSet generalizationSet = (GeneralizationSet) i.next(); + if (name.equals(generalizationSet.getName())) { + return generalizationSet; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Classifier getSpecific() { + if (eContainerFeatureID != UMLPackage.GENERALIZATION__SPECIFIC) + return null; + return (Classifier) eContainer; + } + + /** + * + * + * @generated + */ + public void setSpecific(Classifier newSpecific) { + if (newSpecific != eContainer + || (eContainerFeatureID != UMLPackage.GENERALIZATION__SPECIFIC && newSpecific != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newSpecific)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newSpecific != null) + msgs = ((InternalEObject) newSpecific).eInverseAdd(this, + UMLPackage.CLASSIFIER__GENERALIZATION, Classifier.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newSpecific, + UMLPackage.GENERALIZATION__SPECIFIC, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERALIZATION__SPECIFIC, newSpecific, newSpecific)); + + } + + /** + * + * + * @generated + */ + public boolean validateGeneralizationSameClassifier( + DiagnosticChain diagnostics, Map context) { + return GeneralizationOperations.validateGeneralizationSameClassifier( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.GENERALIZATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.GENERALIZATION__GENERALIZATION_SET : + return ((InternalEList) getGeneralizationSets()).basicAdd( + otherEnd, msgs); + case UMLPackage.GENERALIZATION__SPECIFIC : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.GENERALIZATION__SPECIFIC, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.GENERALIZATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.GENERALIZATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.GENERALIZATION__GENERALIZATION_SET : + return ((InternalEList) getGeneralizationSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.GENERALIZATION__SPECIFIC : + return eBasicSetContainer(null, + UMLPackage.GENERALIZATION__SPECIFIC, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.GENERALIZATION__SPECIFIC : + return eContainer.eInverseRemove(this, + UMLPackage.CLASSIFIER__GENERALIZATION, + Classifier.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.GENERALIZATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.GENERALIZATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.GENERALIZATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.GENERALIZATION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.GENERALIZATION__SOURCE : + return getSources(); + case UMLPackage.GENERALIZATION__TARGET : + return getTargets(); + case UMLPackage.GENERALIZATION__IS_SUBSTITUTABLE : + return isSubstitutable() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.GENERALIZATION__GENERAL : + if (resolve) + return getGeneral(); + return basicGetGeneral(); + case UMLPackage.GENERALIZATION__GENERALIZATION_SET : + return getGeneralizationSets(); + case UMLPackage.GENERALIZATION__SPECIFIC : + return getSpecific(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.GENERALIZATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.GENERALIZATION__IS_SUBSTITUTABLE : + setIsSubstitutable(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.GENERALIZATION__GENERAL : + setGeneral((Classifier) newValue); + return; + case UMLPackage.GENERALIZATION__GENERALIZATION_SET : + getGeneralizationSets().clear(); + getGeneralizationSets().addAll((Collection) newValue); + return; + case UMLPackage.GENERALIZATION__SPECIFIC : + setSpecific((Classifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.GENERALIZATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.GENERALIZATION__IS_SUBSTITUTABLE : + setIsSubstitutable(IS_SUBSTITUTABLE_EDEFAULT); + return; + case UMLPackage.GENERALIZATION__GENERAL : + setGeneral((Classifier) null); + return; + case UMLPackage.GENERALIZATION__GENERALIZATION_SET : + getGeneralizationSets().clear(); + return; + case UMLPackage.GENERALIZATION__SPECIFIC : + setSpecific((Classifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.GENERALIZATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.GENERALIZATION__OWNER : + return isSetOwner(); + case UMLPackage.GENERALIZATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.GENERALIZATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.GENERALIZATION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.GENERALIZATION__SOURCE : + return isSetSources(); + case UMLPackage.GENERALIZATION__TARGET : + return isSetTargets(); + case UMLPackage.GENERALIZATION__IS_SUBSTITUTABLE : + return ((eFlags & IS_SUBSTITUTABLE_EFLAG) != 0) != IS_SUBSTITUTABLE_EDEFAULT; + case UMLPackage.GENERALIZATION__GENERAL : + return eVirtualGet(UMLPackage.GENERALIZATION__GENERAL) != null; + case UMLPackage.GENERALIZATION__GENERALIZATION_SET : + List generalizationSet = (List) eVirtualGet(UMLPackage.GENERALIZATION__GENERALIZATION_SET); + return generalizationSet != null + && !generalizationSet.isEmpty(); + case UMLPackage.GENERALIZATION__SPECIFIC : + return getSpecific() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isSubstitutable: "); //$NON-NLS-1$ + result.append((eFlags & IS_SUBSTITUTABLE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getGeneralization_General()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE.getGeneralization_Specific()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Classifier specific = getSpecific(); + if (specific != null) { + return specific; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getGeneralization_Specific()); + } + +} //GeneralizationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java new file mode 100644 index 00000000..0ac42afa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java @@ -0,0 +1,613 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralizationSetImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.GeneralizationSetOperations; + +/** + * + * An implementation of the model object 'Generalization Set'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#isCovering Is Covering}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#isDisjoint Is Disjoint}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#getPowertype Powertype}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#getGeneralizations Generalization}
  • + *
+ *

+ * + * @generated + */ +public class GeneralizationSetImpl + extends PackageableElementImpl + implements GeneralizationSet { + + /** + * The default value of the '{@link #isCovering() Is Covering}' attribute. + * + * + * @see #isCovering() + * @generated + * @ordered + */ + protected static final boolean IS_COVERING_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isCovering() Is Covering}' attribute. + * + * + * @see #isCovering() + * @generated + * @ordered + */ + protected static final int IS_COVERING_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isDisjoint() Is Disjoint}' attribute. + * + * + * @see #isDisjoint() + * @generated + * @ordered + */ + protected static final boolean IS_DISJOINT_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDisjoint() Is Disjoint}' attribute. + * + * + * @see #isDisjoint() + * @generated + * @ordered + */ + protected static final int IS_DISJOINT_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected GeneralizationSetImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getGeneralizationSet(); + } + + /** + * + * + * @generated + */ + public boolean isCovering() { + return (eFlags & IS_COVERING_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsCovering(boolean newIsCovering) { + boolean oldIsCovering = (eFlags & IS_COVERING_EFLAG) != 0; + if (newIsCovering) + eFlags |= IS_COVERING_EFLAG; + else + eFlags &= ~IS_COVERING_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERALIZATION_SET__IS_COVERING, oldIsCovering, + newIsCovering)); + + } + + /** + * + * + * @generated + */ + public boolean isDisjoint() { + return (eFlags & IS_DISJOINT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDisjoint(boolean newIsDisjoint) { + boolean oldIsDisjoint = (eFlags & IS_DISJOINT_EFLAG) != 0; + if (newIsDisjoint) + eFlags |= IS_DISJOINT_EFLAG; + else + eFlags &= ~IS_DISJOINT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERALIZATION_SET__IS_DISJOINT, oldIsDisjoint, + newIsDisjoint)); + + } + + /** + * + * + * @generated + */ + public Classifier getPowertype() { + Classifier powertype = (Classifier) eVirtualGet(UMLPackage.GENERALIZATION_SET__POWERTYPE); + if (powertype != null && powertype.eIsProxy()) { + Classifier oldPowertype = powertype; + powertype = (Classifier) eResolveProxy((InternalEObject) powertype); + if (powertype != oldPowertype) { + eVirtualSet(UMLPackage.GENERALIZATION_SET__POWERTYPE, powertype); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.GENERALIZATION_SET__POWERTYPE, oldPowertype, + powertype)); + } + } + return powertype; + } + + /** + * + * + * @generated + */ + public Classifier basicGetPowertype() { + return (Classifier) eVirtualGet(UMLPackage.GENERALIZATION_SET__POWERTYPE); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPowertype(Classifier newPowertype, + NotificationChain msgs) { + Object oldPowertype = eVirtualSet( + UMLPackage.GENERALIZATION_SET__POWERTYPE, newPowertype); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.GENERALIZATION_SET__POWERTYPE, + oldPowertype == EVIRTUAL_NO_VALUE + ? null + : oldPowertype, newPowertype); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setPowertype(Classifier newPowertype) { + Classifier powertype = (Classifier) eVirtualGet(UMLPackage.GENERALIZATION_SET__POWERTYPE); + if (newPowertype != powertype) { + NotificationChain msgs = null; + if (powertype != null) + msgs = ((InternalEObject) powertype).eInverseRemove(this, + UMLPackage.CLASSIFIER__POWERTYPE_EXTENT, Classifier.class, + msgs); + if (newPowertype != null) + msgs = ((InternalEObject) newPowertype).eInverseAdd(this, + UMLPackage.CLASSIFIER__POWERTYPE_EXTENT, Classifier.class, + msgs); + msgs = basicSetPowertype(newPowertype, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.GENERALIZATION_SET__POWERTYPE, newPowertype, + newPowertype)); + + } + + /** + * + * + * @generated + */ + public List getGeneralizations() { + List generalization = (List) eVirtualGet(UMLPackage.GENERALIZATION_SET__GENERALIZATION); + if (generalization == null) { + eVirtualSet( + UMLPackage.GENERALIZATION_SET__GENERALIZATION, + generalization = new EObjectWithInverseResolvingEList.ManyInverse( + Generalization.class, this, + UMLPackage.GENERALIZATION_SET__GENERALIZATION, + UMLPackage.GENERALIZATION__GENERALIZATION_SET)); + } + return generalization; + } + + /** + * + * + * @generated + */ + public boolean validateGeneralizationSameClassifier( + DiagnosticChain diagnostics, Map context) { + return GeneralizationSetOperations + .validateGeneralizationSameClassifier(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics, + Map context) { + return GeneralizationSetOperations.validateMapsToGeneralizationSet( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.GENERALIZATION_SET__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.GENERALIZATION_SET__POWERTYPE : + Classifier powertype = (Classifier) eVirtualGet(UMLPackage.GENERALIZATION_SET__POWERTYPE); + if (powertype != null) + msgs = ((InternalEObject) powertype).eInverseRemove( + this, UMLPackage.CLASSIFIER__POWERTYPE_EXTENT, + Classifier.class, msgs); + return basicSetPowertype((Classifier) otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.GENERALIZATION_SET__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.GENERALIZATION_SET__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.GENERALIZATION_SET__POWERTYPE : + return basicSetPowertype(null, msgs); + case UMLPackage.GENERALIZATION_SET__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION_SET__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.GENERALIZATION_SET__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.GENERALIZATION_SET__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.GENERALIZATION_SET__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.GENERALIZATION_SET__NAME : + return getName(); + case UMLPackage.GENERALIZATION_SET__VISIBILITY : + return getVisibility(); + case UMLPackage.GENERALIZATION_SET__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.GENERALIZATION_SET__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.GENERALIZATION_SET__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.GENERALIZATION_SET__IS_COVERING : + return isCovering() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.GENERALIZATION_SET__IS_DISJOINT : + return isDisjoint() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.GENERALIZATION_SET__POWERTYPE : + if (resolve) + return getPowertype(); + return basicGetPowertype(); + case UMLPackage.GENERALIZATION_SET__GENERALIZATION : + return getGeneralizations(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION_SET__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.GENERALIZATION_SET__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.GENERALIZATION_SET__NAME : + setName((String) newValue); + return; + case UMLPackage.GENERALIZATION_SET__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.GENERALIZATION_SET__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.GENERALIZATION_SET__IS_COVERING : + setIsCovering(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.GENERALIZATION_SET__IS_DISJOINT : + setIsDisjoint(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.GENERALIZATION_SET__POWERTYPE : + setPowertype((Classifier) newValue); + return; + case UMLPackage.GENERALIZATION_SET__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION_SET__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.GENERALIZATION_SET__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.GENERALIZATION_SET__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.GENERALIZATION_SET__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.GENERALIZATION_SET__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.GENERALIZATION_SET__IS_COVERING : + setIsCovering(IS_COVERING_EDEFAULT); + return; + case UMLPackage.GENERALIZATION_SET__IS_DISJOINT : + setIsDisjoint(IS_DISJOINT_EDEFAULT); + return; + case UMLPackage.GENERALIZATION_SET__POWERTYPE : + setPowertype((Classifier) null); + return; + case UMLPackage.GENERALIZATION_SET__GENERALIZATION : + getGeneralizations().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.GENERALIZATION_SET__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.GENERALIZATION_SET__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.GENERALIZATION_SET__OWNER : + return isSetOwner(); + case UMLPackage.GENERALIZATION_SET__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.GENERALIZATION_SET__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.GENERALIZATION_SET__NAME : + String name = eVirtualIsSet(UMLPackage.GENERALIZATION_SET__NAME) + ? (String) eVirtualGet(UMLPackage.GENERALIZATION_SET__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.GENERALIZATION_SET__VISIBILITY : + return eVirtualIsSet(UMLPackage.GENERALIZATION_SET__VISIBILITY) + && eVirtualGet(UMLPackage.GENERALIZATION_SET__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.GENERALIZATION_SET__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.GENERALIZATION_SET__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.GENERALIZATION_SET__NAMESPACE : + return isSetNamespace(); + case UMLPackage.GENERALIZATION_SET__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.GENERALIZATION_SET__NAME_EXPRESSION) != null; + case UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.GENERALIZATION_SET__TEMPLATE_PARAMETER) != null; + case UMLPackage.GENERALIZATION_SET__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.GENERALIZATION_SET__IS_COVERING : + return ((eFlags & IS_COVERING_EFLAG) != 0) != IS_COVERING_EDEFAULT; + case UMLPackage.GENERALIZATION_SET__IS_DISJOINT : + return ((eFlags & IS_DISJOINT_EFLAG) != 0) != IS_DISJOINT_EDEFAULT; + case UMLPackage.GENERALIZATION_SET__POWERTYPE : + return eVirtualGet(UMLPackage.GENERALIZATION_SET__POWERTYPE) != null; + case UMLPackage.GENERALIZATION_SET__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.GENERALIZATION_SET__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isCovering: "); //$NON-NLS-1$ + result.append((eFlags & IS_COVERING_EFLAG) != 0); + result.append(", isDisjoint: "); //$NON-NLS-1$ + result.append((eFlags & IS_DISJOINT_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //GeneralizationSetImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ImageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ImageImpl.java new file mode 100644 index 00000000..a8b26018 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ImageImpl.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ImageImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Iterator; + +import org.eclipse.emf.common.notify.Adapter; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.EObjectImpl; + +import org.eclipse.uml2.common.util.CacheAdapter; + +import org.eclipse.uml2.uml.Image; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Image'. + * + *

+ *

+ * + * @generated + */ +public abstract class ImageImpl + extends EObjectImpl + implements Image { + + /** + * + * + * @generated + */ + protected ImageImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getImage(); + } + + /** + * Retrieves the cache adapter for this 'Image'. + * + * + * @return The cache adapter for this 'Image'. + * @generated + */ + protected CacheAdapter getCacheAdapter() { + for (Iterator i = eAdapters().iterator(); i.hasNext();) { + Adapter adapter = (Adapter) i.next(); + if (adapter instanceof CacheAdapter) { + return (CacheAdapter) adapter; + } + } + return null; + } + +} //ImageImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IncludeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IncludeImpl.java new file mode 100644 index 00000000..c135834d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IncludeImpl.java @@ -0,0 +1,549 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: IncludeImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Include; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Include'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getAddition Addition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getIncludingCase Including Case}
  • + *
+ *

+ * + * @generated + */ +public class IncludeImpl + extends NamedElementImpl + implements Include { + + /** + * + * + * @generated + */ + protected IncludeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInclude(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.INCLUDE__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.INCLUDE__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INCLUDE__RELATED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDirectedRelationship_Source(), + UMLPackage.eINSTANCE.getDirectedRelationship_Target()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.INCLUDE__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.INCLUDE__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.INCLUDE__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInclude_IncludingCase()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.INCLUDE__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.INCLUDE__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.INCLUDE__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInclude_Addition()})); + } + return target; + } + + /** + * + * + * @generated + */ + public UseCase getAddition() { + UseCase addition = (UseCase) eVirtualGet(UMLPackage.INCLUDE__ADDITION); + if (addition != null && addition.eIsProxy()) { + UseCase oldAddition = addition; + addition = (UseCase) eResolveProxy((InternalEObject) addition); + if (addition != oldAddition) { + eVirtualSet(UMLPackage.INCLUDE__ADDITION, addition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INCLUDE__ADDITION, oldAddition, addition)); + } + } + return addition; + } + + /** + * + * + * @generated + */ + public UseCase basicGetAddition() { + return (UseCase) eVirtualGet(UMLPackage.INCLUDE__ADDITION); + } + + /** + * + * + * @generated + */ + public void setAddition(UseCase newAddition) { + UseCase addition = newAddition; + Object oldAddition = eVirtualSet(UMLPackage.INCLUDE__ADDITION, addition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INCLUDE__ADDITION, oldAddition == EVIRTUAL_NO_VALUE + ? null + : oldAddition, addition)); + + } + + /** + * + * + * @generated + */ + public UseCase getIncludingCase() { + if (eContainerFeatureID != UMLPackage.INCLUDE__INCLUDING_CASE) + return null; + return (UseCase) eContainer; + } + + /** + * + * + * @generated + */ + public void setIncludingCase(UseCase newIncludingCase) { + if (newIncludingCase != eContainer + || (eContainerFeatureID != UMLPackage.INCLUDE__INCLUDING_CASE && newIncludingCase != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newIncludingCase)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newIncludingCase != null) + msgs = ((InternalEObject) newIncludingCase).eInverseAdd(this, + UMLPackage.USE_CASE__INCLUDE, UseCase.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newIncludingCase, + UMLPackage.INCLUDE__INCLUDING_CASE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INCLUDE__INCLUDING_CASE, newIncludingCase, + newIncludingCase)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INCLUDE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INCLUDE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INCLUDE__INCLUDING_CASE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INCLUDE__INCLUDING_CASE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INCLUDE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INCLUDE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INCLUDE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INCLUDE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INCLUDE__INCLUDING_CASE : + return eBasicSetContainer(null, + UMLPackage.INCLUDE__INCLUDING_CASE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.INCLUDE__INCLUDING_CASE : + return eContainer.eInverseRemove(this, + UMLPackage.USE_CASE__INCLUDE, UseCase.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INCLUDE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INCLUDE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INCLUDE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INCLUDE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INCLUDE__NAME : + return getName(); + case UMLPackage.INCLUDE__VISIBILITY : + return getVisibility(); + case UMLPackage.INCLUDE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INCLUDE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INCLUDE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INCLUDE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INCLUDE__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.INCLUDE__SOURCE : + return getSources(); + case UMLPackage.INCLUDE__TARGET : + return getTargets(); + case UMLPackage.INCLUDE__ADDITION : + if (resolve) + return getAddition(); + return basicGetAddition(); + case UMLPackage.INCLUDE__INCLUDING_CASE : + return getIncludingCase(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INCLUDE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INCLUDE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INCLUDE__NAME : + setName((String) newValue); + return; + case UMLPackage.INCLUDE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INCLUDE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INCLUDE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INCLUDE__ADDITION : + setAddition((UseCase) newValue); + return; + case UMLPackage.INCLUDE__INCLUDING_CASE : + setIncludingCase((UseCase) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INCLUDE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INCLUDE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INCLUDE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INCLUDE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INCLUDE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INCLUDE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INCLUDE__ADDITION : + setAddition((UseCase) null); + return; + case UMLPackage.INCLUDE__INCLUDING_CASE : + setIncludingCase((UseCase) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INCLUDE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INCLUDE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INCLUDE__OWNER : + return isSetOwner(); + case UMLPackage.INCLUDE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INCLUDE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INCLUDE__NAME : + String name = eVirtualIsSet(UMLPackage.INCLUDE__NAME) + ? (String) eVirtualGet(UMLPackage.INCLUDE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INCLUDE__VISIBILITY : + return eVirtualIsSet(UMLPackage.INCLUDE__VISIBILITY) + && eVirtualGet(UMLPackage.INCLUDE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INCLUDE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INCLUDE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INCLUDE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INCLUDE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INCLUDE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INCLUDE__NAME_EXPRESSION) != null; + case UMLPackage.INCLUDE__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.INCLUDE__SOURCE : + return isSetSources(); + case UMLPackage.INCLUDE__TARGET : + return isSetTargets(); + case UMLPackage.INCLUDE__ADDITION : + return eVirtualGet(UMLPackage.INCLUDE__ADDITION) != null; + case UMLPackage.INCLUDE__INCLUDING_CASE : + return getIncludingCase() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case UMLPackage.INCLUDE__RELATED_ELEMENT : + return UMLPackage.RELATIONSHIP__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (derivedFeatureID) { + case UMLPackage.INCLUDE__SOURCE : + return UMLPackage.DIRECTED_RELATIONSHIP__SOURCE; + case UMLPackage.INCLUDE__TARGET : + return UMLPackage.DIRECTED_RELATIONSHIP__TARGET; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return UMLPackage.INCLUDE__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (baseFeatureID) { + case UMLPackage.DIRECTED_RELATIONSHIP__SOURCE : + return UMLPackage.INCLUDE__SOURCE; + case UMLPackage.DIRECTED_RELATIONSHIP__TARGET : + return UMLPackage.INCLUDE__TARGET; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return isSetSources() || isSetTargets(); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return eIsSet(UMLPackage.eINSTANCE.getInclude_IncludingCase()); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return eIsSet(UMLPackage.eINSTANCE.getInclude_Addition()); + } + +} //IncludeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java new file mode 100644 index 00000000..b72b0f81 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java @@ -0,0 +1,713 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InformationFlowImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InformationFlow; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InformationFlowOperations; + +/** + * + * An implementation of the model object 'Information Flow'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRelatedElements Related Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizations Realization}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getConveyeds Conveyed}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getInformationSources Information Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getInformationTargets Information Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizingActivityEdges Realizing Activity Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizingConnectors Realizing Connector}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizingMessages Realizing Message}
  • + *
+ *

+ * + * @generated + */ +public class InformationFlowImpl + extends PackageableElementImpl + implements InformationFlow { + + /** + * + * + * @generated + */ + protected InformationFlowImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInformationFlow(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDirectedRelationship_Source(), + UMLPackage.eINSTANCE.getDirectedRelationship_Target()})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.INFORMATION_FLOW__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInformationFlow_InformationSource()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.INFORMATION_FLOW__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInformationFlow_InformationTarget()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getRealizations() { + List realization = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZATION); + if (realization == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__REALIZATION, + realization = new EObjectResolvingEList(Relationship.class, + this, UMLPackage.INFORMATION_FLOW__REALIZATION)); + } + return realization; + } + + /** + * + * + * @generated + */ + public List getConveyeds() { + List conveyed = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__CONVEYED); + if (conveyed == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__CONVEYED, + conveyed = new EObjectResolvingEList(Classifier.class, this, + UMLPackage.INFORMATION_FLOW__CONVEYED)); + } + return conveyed; + } + + /** + * + * + * @generated + */ + public Classifier getConveyed(String name) { + for (Iterator i = getConveyeds().iterator(); i.hasNext();) { + Classifier conveyed = (Classifier) i.next(); + if (name.equals(conveyed.getName())) { + return conveyed; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInformationSources() { + List informationSource = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE); + if (informationSource == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE, + informationSource = new EObjectResolvingEList( + NamedElement.class, this, + UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE)); + } + return informationSource; + } + + /** + * + * + * @generated + */ + public NamedElement getInformationSource(String name) { + for (Iterator i = getInformationSources().iterator(); i.hasNext();) { + NamedElement informationSource = (NamedElement) i.next(); + if (name.equals(informationSource.getName())) { + return informationSource; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInformationTargets() { + List informationTarget = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET); + if (informationTarget == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET, + informationTarget = new EObjectResolvingEList( + NamedElement.class, this, + UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET)); + } + return informationTarget; + } + + /** + * + * + * @generated + */ + public NamedElement getInformationTarget(String name) { + for (Iterator i = getInformationTargets().iterator(); i.hasNext();) { + NamedElement informationTarget = (NamedElement) i.next(); + if (name.equals(informationTarget.getName())) { + return informationTarget; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRealizingActivityEdges() { + List realizingActivityEdge = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE); + if (realizingActivityEdge == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE, + realizingActivityEdge = new EObjectResolvingEList( + ActivityEdge.class, this, + UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE)); + } + return realizingActivityEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getRealizingActivityEdge(String name) { + for (Iterator i = getRealizingActivityEdges().iterator(); i.hasNext();) { + ActivityEdge realizingActivityEdge = (ActivityEdge) i.next(); + if (name.equals(realizingActivityEdge.getName())) { + return realizingActivityEdge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRealizingConnectors() { + List realizingConnector = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR); + if (realizingConnector == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR, + realizingConnector = new EObjectResolvingEList(Connector.class, + this, UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR)); + } + return realizingConnector; + } + + /** + * + * + * @generated + */ + public Connector getRealizingConnector(String name) { + for (Iterator i = getRealizingConnectors().iterator(); i.hasNext();) { + Connector realizingConnector = (Connector) i.next(); + if (name.equals(realizingConnector.getName())) { + return realizingConnector; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRealizingMessages() { + List realizingMessage = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE); + if (realizingMessage == null) { + eVirtualSet(UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE, + realizingMessage = new EObjectResolvingEList(Message.class, + this, UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE)); + } + return realizingMessage; + } + + /** + * + * + * @generated + */ + public Message getRealizingMessage(String name) { + for (Iterator i = getRealizingMessages().iterator(); i.hasNext();) { + Message realizingMessage = (Message) i.next(); + if (name.equals(realizingMessage.getName())) { + return realizingMessage; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSourcesAndTargetsKind(DiagnosticChain diagnostics, + Map context) { + return InformationFlowOperations.validateSourcesAndTargetsKind(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMustConform(DiagnosticChain diagnostics, Map context) { + return InformationFlowOperations.validateMustConform(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateConveyClassifiers(DiagnosticChain diagnostics, + Map context) { + return InformationFlowOperations.validateConveyClassifiers(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_FLOW__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INFORMATION_FLOW__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INFORMATION_FLOW__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INFORMATION_FLOW__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INFORMATION_FLOW__NAME : + return getName(); + case UMLPackage.INFORMATION_FLOW__VISIBILITY : + return getVisibility(); + case UMLPackage.INFORMATION_FLOW__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INFORMATION_FLOW__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INFORMATION_FLOW__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INFORMATION_FLOW__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INFORMATION_FLOW__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INFORMATION_FLOW__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.INFORMATION_FLOW__SOURCE : + return getSources(); + case UMLPackage.INFORMATION_FLOW__TARGET : + return getTargets(); + case UMLPackage.INFORMATION_FLOW__REALIZATION : + return getRealizations(); + case UMLPackage.INFORMATION_FLOW__CONVEYED : + return getConveyeds(); + case UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE : + return getInformationSources(); + case UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET : + return getInformationTargets(); + case UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE : + return getRealizingActivityEdges(); + case UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR : + return getRealizingConnectors(); + case UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE : + return getRealizingMessages(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_FLOW__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__NAME : + setName((String) newValue); + return; + case UMLPackage.INFORMATION_FLOW__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INFORMATION_FLOW__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INFORMATION_FLOW__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INFORMATION_FLOW__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INFORMATION_FLOW__REALIZATION : + getRealizations().clear(); + getRealizations().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__CONVEYED : + getConveyeds().clear(); + getConveyeds().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE : + getInformationSources().clear(); + getInformationSources().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET : + getInformationTargets().clear(); + getInformationTargets().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE : + getRealizingActivityEdges().clear(); + getRealizingActivityEdges().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR : + getRealizingConnectors().clear(); + getRealizingConnectors().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE : + getRealizingMessages().clear(); + getRealizingMessages().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_FLOW__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INFORMATION_FLOW__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INFORMATION_FLOW__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INFORMATION_FLOW__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INFORMATION_FLOW__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INFORMATION_FLOW__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INFORMATION_FLOW__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INFORMATION_FLOW__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INFORMATION_FLOW__REALIZATION : + getRealizations().clear(); + return; + case UMLPackage.INFORMATION_FLOW__CONVEYED : + getConveyeds().clear(); + return; + case UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE : + getInformationSources().clear(); + return; + case UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET : + getInformationTargets().clear(); + return; + case UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE : + getRealizingActivityEdges().clear(); + return; + case UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR : + getRealizingConnectors().clear(); + return; + case UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE : + getRealizingMessages().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_FLOW__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INFORMATION_FLOW__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INFORMATION_FLOW__OWNER : + return isSetOwner(); + case UMLPackage.INFORMATION_FLOW__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INFORMATION_FLOW__NAME : + String name = eVirtualIsSet(UMLPackage.INFORMATION_FLOW__NAME) + ? (String) eVirtualGet(UMLPackage.INFORMATION_FLOW__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INFORMATION_FLOW__VISIBILITY : + return eVirtualIsSet(UMLPackage.INFORMATION_FLOW__VISIBILITY) + && eVirtualGet(UMLPackage.INFORMATION_FLOW__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INFORMATION_FLOW__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INFORMATION_FLOW__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INFORMATION_FLOW__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INFORMATION_FLOW__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INFORMATION_FLOW__NAME_EXPRESSION) != null; + case UMLPackage.INFORMATION_FLOW__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INFORMATION_FLOW__TEMPLATE_PARAMETER) != null; + case UMLPackage.INFORMATION_FLOW__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.INFORMATION_FLOW__SOURCE : + return isSetSources(); + case UMLPackage.INFORMATION_FLOW__TARGET : + return isSetTargets(); + case UMLPackage.INFORMATION_FLOW__REALIZATION : + List realization = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZATION); + return realization != null && !realization.isEmpty(); + case UMLPackage.INFORMATION_FLOW__CONVEYED : + List conveyed = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__CONVEYED); + return conveyed != null && !conveyed.isEmpty(); + case UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE : + List informationSource = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__INFORMATION_SOURCE); + return informationSource != null + && !informationSource.isEmpty(); + case UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET : + List informationTarget = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__INFORMATION_TARGET); + return informationTarget != null + && !informationTarget.isEmpty(); + case UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE : + List realizingActivityEdge = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZING_ACTIVITY_EDGE); + return realizingActivityEdge != null + && !realizingActivityEdge.isEmpty(); + case UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR : + List realizingConnector = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZING_CONNECTOR); + return realizingConnector != null + && !realizingConnector.isEmpty(); + case UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE : + List realizingMessage = (List) eVirtualGet(UMLPackage.INFORMATION_FLOW__REALIZING_MESSAGE); + return realizingMessage != null && !realizingMessage.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT : + return UMLPackage.RELATIONSHIP__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (derivedFeatureID) { + case UMLPackage.INFORMATION_FLOW__SOURCE : + return UMLPackage.DIRECTED_RELATIONSHIP__SOURCE; + case UMLPackage.INFORMATION_FLOW__TARGET : + return UMLPackage.DIRECTED_RELATIONSHIP__TARGET; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return UMLPackage.INFORMATION_FLOW__RELATED_ELEMENT; + default : + return -1; + } + } + if (baseClass == DirectedRelationship.class) { + switch (baseFeatureID) { + case UMLPackage.DIRECTED_RELATIONSHIP__SOURCE : + return UMLPackage.INFORMATION_FLOW__SOURCE; + case UMLPackage.DIRECTED_RELATIONSHIP__TARGET : + return UMLPackage.INFORMATION_FLOW__TARGET; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return isSetSources() || isSetTargets(); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return eIsSet(UMLPackage.eINSTANCE + .getInformationFlow_InformationSource()); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return eIsSet(UMLPackage.eINSTANCE + .getInformationFlow_InformationTarget()); + } + +} //InformationFlowImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java new file mode 100644 index 00000000..fa22b051 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java @@ -0,0 +1,554 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InformationItemImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.InformationItem; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InformationItemOperations; + +/** + * + * An implementation of the model object 'Information Item'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InformationItemImpl#getRepresenteds Represented}
  • + *
+ *

+ * + * @generated + */ +public class InformationItemImpl + extends ClassifierImpl + implements InformationItem { + + /** + * + * + * @generated + */ + protected InformationItemImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInformationItem(); + } + + /** + * + * + * @generated + */ + public List getRepresenteds() { + List represented = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__REPRESENTED); + if (represented == null) { + eVirtualSet(UMLPackage.INFORMATION_ITEM__REPRESENTED, + represented = new EObjectResolvingEList(Classifier.class, this, + UMLPackage.INFORMATION_ITEM__REPRESENTED)); + } + return represented; + } + + /** + * + * + * @generated + */ + public Classifier getRepresented(String name) { + for (Iterator i = getRepresenteds().iterator(); i.hasNext();) { + Classifier represented = (Classifier) i.next(); + if (name.equals(represented.getName())) { + return represented; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSourcesAndTargets(DiagnosticChain diagnostics, + Map context) { + return InformationItemOperations.validateSourcesAndTargets(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateHasNo(DiagnosticChain diagnostics, Map context) { + return InformationItemOperations.validateHasNo(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotInstantiable(DiagnosticChain diagnostics, + Map context) { + return InformationItemOperations.validateNotInstantiable(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_ITEM__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INFORMATION_ITEM__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INFORMATION_ITEM__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INFORMATION_ITEM__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INFORMATION_ITEM__NAME : + return getName(); + case UMLPackage.INFORMATION_ITEM__VISIBILITY : + return getVisibility(); + case UMLPackage.INFORMATION_ITEM__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INFORMATION_ITEM__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INFORMATION_ITEM__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INFORMATION_ITEM__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INFORMATION_ITEM__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.INFORMATION_ITEM__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.INFORMATION_ITEM__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.INFORMATION_ITEM__MEMBER : + return getMembers(); + case UMLPackage.INFORMATION_ITEM__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.INFORMATION_ITEM__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.INFORMATION_ITEM__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INFORMATION_ITEM__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.INFORMATION_ITEM__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.INFORMATION_ITEM__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INFORMATION_ITEM__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INFORMATION_ITEM__PACKAGE : + return getPackage(); + case UMLPackage.INFORMATION_ITEM__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.INFORMATION_ITEM__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.INFORMATION_ITEM__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INFORMATION_ITEM__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.INFORMATION_ITEM__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.INFORMATION_ITEM__FEATURE : + return getFeatures(); + case UMLPackage.INFORMATION_ITEM__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.INFORMATION_ITEM__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.INFORMATION_ITEM__GENERAL : + return getGenerals(); + case UMLPackage.INFORMATION_ITEM__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.INFORMATION_ITEM__USE_CASE : + return getUseCases(); + case UMLPackage.INFORMATION_ITEM__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.INFORMATION_ITEM__ATTRIBUTE : + return getAttributes(); + case UMLPackage.INFORMATION_ITEM__REPRESENTATION : + return getRepresentation(); + case UMLPackage.INFORMATION_ITEM__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.INFORMATION_ITEM__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.INFORMATION_ITEM__REPRESENTED : + return getRepresenteds(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_ITEM__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__NAME : + setName((String) newValue); + return; + case UMLPackage.INFORMATION_ITEM__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INFORMATION_ITEM__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INFORMATION_ITEM__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INFORMATION_ITEM__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INFORMATION_ITEM__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INFORMATION_ITEM__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.INFORMATION_ITEM__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.INFORMATION_ITEM__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INFORMATION_ITEM__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.INFORMATION_ITEM__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.INFORMATION_ITEM__REPRESENTED : + getRepresenteds().clear(); + getRepresenteds().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_ITEM__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INFORMATION_ITEM__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INFORMATION_ITEM__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INFORMATION_ITEM__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INFORMATION_ITEM__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INFORMATION_ITEM__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.INFORMATION_ITEM__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.INFORMATION_ITEM__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.INFORMATION_ITEM__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INFORMATION_ITEM__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INFORMATION_ITEM__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.INFORMATION_ITEM__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.INFORMATION_ITEM__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.INFORMATION_ITEM__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.INFORMATION_ITEM__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.INFORMATION_ITEM__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.INFORMATION_ITEM__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.INFORMATION_ITEM__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.INFORMATION_ITEM__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.INFORMATION_ITEM__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.INFORMATION_ITEM__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.INFORMATION_ITEM__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.INFORMATION_ITEM__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.INFORMATION_ITEM__REPRESENTED : + getRepresenteds().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INFORMATION_ITEM__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INFORMATION_ITEM__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INFORMATION_ITEM__OWNER : + return isSetOwner(); + case UMLPackage.INFORMATION_ITEM__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INFORMATION_ITEM__NAME : + String name = eVirtualIsSet(UMLPackage.INFORMATION_ITEM__NAME) + ? (String) eVirtualGet(UMLPackage.INFORMATION_ITEM__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INFORMATION_ITEM__VISIBILITY : + return eVirtualIsSet(UMLPackage.INFORMATION_ITEM__VISIBILITY) + && eVirtualGet(UMLPackage.INFORMATION_ITEM__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INFORMATION_ITEM__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INFORMATION_ITEM__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INFORMATION_ITEM__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INFORMATION_ITEM__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INFORMATION_ITEM__NAME_EXPRESSION) != null; + case UMLPackage.INFORMATION_ITEM__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.INFORMATION_ITEM__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.INFORMATION_ITEM__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.INFORMATION_ITEM__MEMBER : + return isSetMembers(); + case UMLPackage.INFORMATION_ITEM__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.INFORMATION_ITEM__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.INFORMATION_ITEM__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.INFORMATION_ITEM__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.INFORMATION_ITEM__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.INFORMATION_ITEM__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INFORMATION_ITEM__TEMPLATE_PARAMETER) != null; + case UMLPackage.INFORMATION_ITEM__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INFORMATION_ITEM__PACKAGE : + return getPackage() != null; + case UMLPackage.INFORMATION_ITEM__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.INFORMATION_ITEM__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.INFORMATION_ITEM__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.INFORMATION_ITEM__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.INFORMATION_ITEM__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.INFORMATION_ITEM__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.INFORMATION_ITEM__FEATURE : + return isSetFeatures(); + case UMLPackage.INFORMATION_ITEM__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.INFORMATION_ITEM__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.INFORMATION_ITEM__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.INFORMATION_ITEM__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.INFORMATION_ITEM__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.INFORMATION_ITEM__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.INFORMATION_ITEM__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.INFORMATION_ITEM__REPRESENTATION : + return eVirtualGet(UMLPackage.INFORMATION_ITEM__REPRESENTATION) != null; + case UMLPackage.INFORMATION_ITEM__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.INFORMATION_ITEM__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.INFORMATION_ITEM__OWNED_SIGNATURE) != null; + case UMLPackage.INFORMATION_ITEM__REPRESENTED : + List represented = (List) eVirtualGet(UMLPackage.INFORMATION_ITEM__REPRESENTED); + return represented != null && !represented.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //InformationItemImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java new file mode 100644 index 00000000..1fa0d67d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InitialNodeImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.InitialNode; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.InitialNodeOperations; + +/** + * + * An implementation of the model object 'Initial Node'. + * + *

+ *

+ * + * @generated + */ +public class InitialNodeImpl + extends ControlNodeImpl + implements InitialNode { + + /** + * + * + * @generated + */ + protected InitialNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInitialNode(); + } + + /** + * + * + * @generated + */ + public boolean validateNoIncomingEdges(DiagnosticChain diagnostics, + Map context) { + return InitialNodeOperations.validateNoIncomingEdges(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateControlEdges(DiagnosticChain diagnostics, Map context) { + return InitialNodeOperations.validateControlEdges(this, diagnostics, + context); + } + +} //InitialNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java new file mode 100644 index 00000000..72fae1b7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InputPinImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Input Pin'. + * + *

+ *

+ * + * @generated + */ +public class InputPinImpl + extends PinImpl + implements InputPin { + + /** + * + * + * @generated + */ + protected InputPinImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInputPin(); + } + +} //InputPinImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java new file mode 100644 index 00000000..2f6aab48 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java @@ -0,0 +1,935 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InstanceSpecificationImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.DeployedArtifact; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.Slot; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InstanceSpecificationOperations; +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; + +/** + * + * An implementation of the model object 'Instance Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getClassifiers Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getSpecification Specification}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getSlots Slot}
  • + *
+ *

+ * + * @generated + */ +public class InstanceSpecificationImpl + extends DeploymentTargetImpl + implements InstanceSpecification { + + /** + * + * + * @generated + */ + protected InstanceSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInstanceSpecification(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet( + UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, + newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (getOwningTemplateParameter() != null + && getOwningTemplateParameter() != newTemplateParameter) { + setOwningTemplateParameter(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter).eInverseRemove( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter).eInverseAdd( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, + newTemplateParameter, newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet( + UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY, visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public boolean isSetVisibility() { + return eVirtualIsSet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getDeploymentTarget_Deployment(), + UMLPackage.eINSTANCE + .getInstanceSpecification_Specification(), + UMLPackage.eINSTANCE.getInstanceSpecification_Slot()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getClassifiers() { + List classifier = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER); + if (classifier == null) { + eVirtualSet(UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER, + classifier = new EObjectResolvingEList(Classifier.class, this, + UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER)); + } + return classifier; + } + + /** + * + * + * @generated + */ + public Classifier getClassifier(String name) { + for (Iterator i = getClassifiers().iterator(); i.hasNext();) { + Classifier classifier = (Classifier) i.next(); + if (name.equals(classifier.getName())) { + return classifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public ValueSpecification getSpecification() { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION); + return specification; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSpecification( + ValueSpecification newSpecification, NotificationChain msgs) { + Object oldSpecification = eVirtualSet( + UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, newSpecification); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, + oldSpecification == EVIRTUAL_NO_VALUE + ? null + : oldSpecification, newSpecification); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSpecification(ValueSpecification newSpecification) { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION); + if (newSpecification != specification) { + NotificationChain msgs = null; + if (specification != null) + msgs = ((InternalEObject) specification).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, + null, msgs); + if (newSpecification != null) + msgs = ((InternalEObject) newSpecification).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, + null, msgs); + msgs = basicSetSpecification(newSpecification, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, + newSpecification, newSpecification)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createSpecification(EClass eClass) { + ValueSpecification newSpecification = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setSpecification(newSpecification); + return newSpecification; + } + + /** + * + * + * @generated + */ + public List getSlots() { + List slot = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__SLOT); + if (slot == null) { + eVirtualSet(UMLPackage.INSTANCE_SPECIFICATION__SLOT, + slot = new EObjectContainmentWithInverseEList(Slot.class, this, + UMLPackage.INSTANCE_SPECIFICATION__SLOT, + UMLPackage.SLOT__OWNING_INSTANCE)); + } + return slot; + } + + /** + * + * + * @generated + */ + public Slot createSlot() { + Slot newSlot = UMLFactory.eINSTANCE.createSlot(); + getSlots().add(newSlot); + return newSlot; + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public boolean validateDefiningFeature(DiagnosticChain diagnostics, + Map context) { + return InstanceSpecificationOperations.validateDefiningFeature(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStructuralFeature(DiagnosticChain diagnostics, + Map context) { + return InstanceSpecificationOperations.validateStructuralFeature(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDeploymentTarget(DiagnosticChain diagnostics, + Map context) { + return InstanceSpecificationOperations.validateDeploymentTarget(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDeploymentArtifact(DiagnosticChain diagnostics, + Map context) { + return InstanceSpecificationOperations.validateDeploymentArtifact(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicAdd( + otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.INSTANCE_SPECIFICATION__SLOT : + return ((InternalEList) getSlots()) + .basicAdd(otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.INSTANCE_SPECIFICATION__SLOT : + return ((InternalEList) getSlots()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INSTANCE_SPECIFICATION__NAME : + return getName(); + case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.INSTANCE_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INSTANCE_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : + return getDeployments(); + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYED_ELEMENT : + return getDeployedElements(); + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : + return getClassifiers(); + case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : + return getSpecification(); + case UMLPackage.INSTANCE_SPECIFICATION__SLOT : + return getSlots(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : + getDeployments().clear(); + getDeployments().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : + getClassifiers().clear(); + getClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : + setSpecification((ValueSpecification) newValue); + return; + case UMLPackage.INSTANCE_SPECIFICATION__SLOT : + getSlots().clear(); + getSlots().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INSTANCE_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : + getDeployments().clear(); + return; + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : + getClassifiers().clear(); + return; + case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : + setSpecification((ValueSpecification) null); + return; + case UMLPackage.INSTANCE_SPECIFICATION__SLOT : + getSlots().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INSTANCE_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.INSTANCE_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INSTANCE_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INSTANCE_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : + List classifier = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER); + return classifier != null && !classifier.isEmpty(); + case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : + return eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION) != null; + case UMLPackage.INSTANCE_SPECIFICATION__SLOT : + List slot = (List) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__SLOT); + return slot != null && !slot.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + if (baseClass == DeployedArtifact.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + if (baseClass == DeployedArtifact.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (visibility: "); //$NON-NLS-1$ + result + .append(eVirtualIsSet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) + ? eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getInstanceSpecification_Specification()) + || eIsSet(UMLPackage.eINSTANCE.getInstanceSpecification_Slot()); + } + +} //InstanceSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java new file mode 100644 index 00000000..260f4381 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java @@ -0,0 +1,300 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InstanceValueImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.InstanceValue; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Instance Value'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceValueImpl#getInstance Instance}
  • + *
+ *

+ * + * @generated + */ +public class InstanceValueImpl + extends ValueSpecificationImpl + implements InstanceValue { + + /** + * + * + * @generated + */ + protected InstanceValueImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInstanceValue(); + } + + /** + * + * + * @generated + */ + public InstanceSpecification getInstance() { + InstanceSpecification instance = (InstanceSpecification) eVirtualGet(UMLPackage.INSTANCE_VALUE__INSTANCE); + if (instance != null && instance.eIsProxy()) { + InstanceSpecification oldInstance = instance; + instance = (InstanceSpecification) eResolveProxy((InternalEObject) instance); + if (instance != oldInstance) { + eVirtualSet(UMLPackage.INSTANCE_VALUE__INSTANCE, instance); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INSTANCE_VALUE__INSTANCE, oldInstance, + instance)); + } + } + return instance; + } + + /** + * + * + * @generated + */ + public InstanceSpecification basicGetInstance() { + return (InstanceSpecification) eVirtualGet(UMLPackage.INSTANCE_VALUE__INSTANCE); + } + + /** + * + * + * @generated + */ + public void setInstance(InstanceSpecification newInstance) { + InstanceSpecification instance = newInstance; + Object oldInstance = eVirtualSet(UMLPackage.INSTANCE_VALUE__INSTANCE, + instance); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INSTANCE_VALUE__INSTANCE, + oldInstance == EVIRTUAL_NO_VALUE + ? null + : oldInstance, instance)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_VALUE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INSTANCE_VALUE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INSTANCE_VALUE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INSTANCE_VALUE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INSTANCE_VALUE__NAME : + return getName(); + case UMLPackage.INSTANCE_VALUE__VISIBILITY : + return getVisibility(); + case UMLPackage.INSTANCE_VALUE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INSTANCE_VALUE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INSTANCE_VALUE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INSTANCE_VALUE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INSTANCE_VALUE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INSTANCE_VALUE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INSTANCE_VALUE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.INSTANCE_VALUE__INSTANCE : + if (resolve) + return getInstance(); + return basicGetInstance(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_VALUE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_VALUE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_VALUE__NAME : + setName((String) newValue); + return; + case UMLPackage.INSTANCE_VALUE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INSTANCE_VALUE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INSTANCE_VALUE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INSTANCE_VALUE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INSTANCE_VALUE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INSTANCE_VALUE__TYPE : + setType((Type) newValue); + return; + case UMLPackage.INSTANCE_VALUE__INSTANCE : + setInstance((InstanceSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_VALUE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INSTANCE_VALUE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INSTANCE_VALUE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INSTANCE_VALUE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INSTANCE_VALUE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INSTANCE_VALUE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INSTANCE_VALUE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INSTANCE_VALUE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INSTANCE_VALUE__TYPE : + setType((Type) null); + return; + case UMLPackage.INSTANCE_VALUE__INSTANCE : + setInstance((InstanceSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INSTANCE_VALUE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INSTANCE_VALUE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INSTANCE_VALUE__OWNER : + return isSetOwner(); + case UMLPackage.INSTANCE_VALUE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INSTANCE_VALUE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INSTANCE_VALUE__NAME : + String name = eVirtualIsSet(UMLPackage.INSTANCE_VALUE__NAME) + ? (String) eVirtualGet(UMLPackage.INSTANCE_VALUE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INSTANCE_VALUE__VISIBILITY : + return eVirtualIsSet(UMLPackage.INSTANCE_VALUE__VISIBILITY) + && eVirtualGet(UMLPackage.INSTANCE_VALUE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INSTANCE_VALUE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INSTANCE_VALUE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INSTANCE_VALUE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INSTANCE_VALUE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INSTANCE_VALUE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INSTANCE_VALUE__NAME_EXPRESSION) != null; + case UMLPackage.INSTANCE_VALUE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INSTANCE_VALUE__TEMPLATE_PARAMETER) != null; + case UMLPackage.INSTANCE_VALUE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INSTANCE_VALUE__TYPE : + return eVirtualGet(UMLPackage.INSTANCE_VALUE__TYPE) != null; + case UMLPackage.INSTANCE_VALUE__INSTANCE : + return eVirtualGet(UMLPackage.INSTANCE_VALUE__INSTANCE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //InstanceValueImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java new file mode 100644 index 00000000..9206e598 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java @@ -0,0 +1,577 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionConstraintImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InteractionConstraint; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InteractionConstraintOperations; + +/** + * + * An implementation of the model object 'Interaction Constraint'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl#getMinint Minint}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl#getMaxint Maxint}
  • + *
+ *

+ * + * @generated + */ +public class InteractionConstraintImpl + extends ConstraintImpl + implements InteractionConstraint { + + /** + * + * + * @generated + */ + protected InteractionConstraintImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInteractionConstraint(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet( + UMLPackage.INTERACTION_CONSTRAINT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INTERACTION_CONSTRAINT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getConstraint_Specification(), + UMLPackage.eINSTANCE.getInteractionConstraint_Minint(), + UMLPackage.eINSTANCE.getInteractionConstraint_Maxint()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public ValueSpecification getMinint() { + ValueSpecification minint = (ValueSpecification) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MININT); + return minint; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMinint(ValueSpecification newMinint, + NotificationChain msgs) { + Object oldMinint = eVirtualSet( + UMLPackage.INTERACTION_CONSTRAINT__MININT, newMinint); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.INTERACTION_CONSTRAINT__MININT, + oldMinint == EVIRTUAL_NO_VALUE + ? null + : oldMinint, newMinint); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setMinint(ValueSpecification newMinint) { + ValueSpecification minint = (ValueSpecification) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MININT); + if (newMinint != minint) { + NotificationChain msgs = null; + if (minint != null) + msgs = ((InternalEObject) minint) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION_CONSTRAINT__MININT, null, msgs); + if (newMinint != null) + msgs = ((InternalEObject) newMinint) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION_CONSTRAINT__MININT, null, msgs); + msgs = basicSetMinint(newMinint, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_CONSTRAINT__MININT, newMinint, newMinint)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createMinint(EClass eClass) { + ValueSpecification newMinint = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setMinint(newMinint); + return newMinint; + } + + /** + * + * + * @generated + */ + public ValueSpecification getMaxint() { + ValueSpecification maxint = (ValueSpecification) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MAXINT); + return maxint; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMaxint(ValueSpecification newMaxint, + NotificationChain msgs) { + Object oldMaxint = eVirtualSet( + UMLPackage.INTERACTION_CONSTRAINT__MAXINT, newMaxint); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.INTERACTION_CONSTRAINT__MAXINT, + oldMaxint == EVIRTUAL_NO_VALUE + ? null + : oldMaxint, newMaxint); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setMaxint(ValueSpecification newMaxint) { + ValueSpecification maxint = (ValueSpecification) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MAXINT); + if (newMaxint != maxint) { + NotificationChain msgs = null; + if (maxint != null) + msgs = ((InternalEObject) maxint) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION_CONSTRAINT__MAXINT, null, msgs); + if (newMaxint != null) + msgs = ((InternalEObject) newMaxint) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION_CONSTRAINT__MAXINT, null, msgs); + msgs = basicSetMaxint(newMaxint, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_CONSTRAINT__MAXINT, newMaxint, newMaxint)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createMaxint(EClass eClass) { + ValueSpecification newMaxint = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setMaxint(newMaxint); + return newMaxint; + } + + /** + * + * + * @generated + */ + public boolean validateDynamicVariables(DiagnosticChain diagnostics, + Map context) { + return InteractionConstraintOperations.validateDynamicVariables(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateGlobalData(DiagnosticChain diagnostics, Map context) { + return InteractionConstraintOperations.validateGlobalData(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMinintMaxint(DiagnosticChain diagnostics, Map context) { + return InteractionConstraintOperations.validateMinintMaxint(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMinint(DiagnosticChain diagnostics, Map context) { + return InteractionConstraintOperations.validateMinint(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMaxint(DiagnosticChain diagnostics, Map context) { + return InteractionConstraintOperations.validateMaxint(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMaxintGreaterEqualMinint( + DiagnosticChain diagnostics, Map context) { + return InteractionConstraintOperations + .validateMaxintGreaterEqualMinint(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION_CONSTRAINT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.INTERACTION_CONSTRAINT__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__CONTEXT : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_CONSTRAINT__CONTEXT, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__MININT : + return basicSetMinint(null, msgs); + case UMLPackage.INTERACTION_CONSTRAINT__MAXINT : + return basicSetMaxint(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_CONSTRAINT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERACTION_CONSTRAINT__NAME : + return getName(); + case UMLPackage.INTERACTION_CONSTRAINT__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERACTION_CONSTRAINT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERACTION_CONSTRAINT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERACTION_CONSTRAINT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INTERACTION_CONSTRAINT__CONSTRAINED_ELEMENT : + return getConstrainedElements(); + case UMLPackage.INTERACTION_CONSTRAINT__SPECIFICATION : + return getSpecification(); + case UMLPackage.INTERACTION_CONSTRAINT__CONTEXT : + return getContext(); + case UMLPackage.INTERACTION_CONSTRAINT__MININT : + return getMinint(); + case UMLPackage.INTERACTION_CONSTRAINT__MAXINT : + return getMaxint(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_CONSTRAINT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__CONSTRAINED_ELEMENT : + getConstrainedElements().clear(); + getConstrainedElements().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__SPECIFICATION : + setSpecification((ValueSpecification) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__CONTEXT : + setContext((Namespace) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__MININT : + setMinint((ValueSpecification) newValue); + return; + case UMLPackage.INTERACTION_CONSTRAINT__MAXINT : + setMaxint((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_CONSTRAINT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERACTION_CONSTRAINT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERACTION_CONSTRAINT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERACTION_CONSTRAINT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERACTION_CONSTRAINT__CONSTRAINED_ELEMENT : + getConstrainedElements().clear(); + return; + case UMLPackage.INTERACTION_CONSTRAINT__SPECIFICATION : + setSpecification((ValueSpecification) null); + return; + case UMLPackage.INTERACTION_CONSTRAINT__CONTEXT : + setContext((Namespace) null); + return; + case UMLPackage.INTERACTION_CONSTRAINT__MININT : + setMinint((ValueSpecification) null); + return; + case UMLPackage.INTERACTION_CONSTRAINT__MAXINT : + setMaxint((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_CONSTRAINT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNER : + return isSetOwner(); + case UMLPackage.INTERACTION_CONSTRAINT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERACTION_CONSTRAINT__NAME : + String name = eVirtualIsSet(UMLPackage.INTERACTION_CONSTRAINT__NAME) + ? (String) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERACTION_CONSTRAINT__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERACTION_CONSTRAINT__VISIBILITY) + && eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERACTION_CONSTRAINT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERACTION_CONSTRAINT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERACTION_CONSTRAINT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__NAME_EXPRESSION) != null; + case UMLPackage.INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__TEMPLATE_PARAMETER) != null; + case UMLPackage.INTERACTION_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INTERACTION_CONSTRAINT__CONSTRAINED_ELEMENT : + List constrainedElement = (List) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__CONSTRAINED_ELEMENT); + return constrainedElement != null + && !constrainedElement.isEmpty(); + case UMLPackage.INTERACTION_CONSTRAINT__SPECIFICATION : + return eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__SPECIFICATION) != null; + case UMLPackage.INTERACTION_CONSTRAINT__CONTEXT : + return getContext() != null; + case UMLPackage.INTERACTION_CONSTRAINT__MININT : + return eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MININT) != null; + case UMLPackage.INTERACTION_CONSTRAINT__MAXINT : + return eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MAXINT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getInteractionConstraint_Minint()) + || eIsSet(UMLPackage.eINSTANCE.getInteractionConstraint_Maxint()); + } + +} //InteractionConstraintImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionFragmentImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionFragmentImpl.java new file mode 100644 index 00000000..3222deb7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionFragmentImpl.java @@ -0,0 +1,585 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionFragmentImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Interaction Fragment'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getCovereds Covered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getGeneralOrderings General Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getEnclosingInteraction Enclosing Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getEnclosingOperand Enclosing Operand}
  • + *
+ *

+ * + * @generated + */ +public abstract class InteractionFragmentImpl + extends NamedElementImpl + implements InteractionFragment { + + /** + * + * + * @generated + */ + protected InteractionFragmentImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInteractionFragment(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.INTERACTION_FRAGMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INTERACTION_FRAGMENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getCovereds() { + List covered = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__COVERED); + if (covered == null) { + eVirtualSet(UMLPackage.INTERACTION_FRAGMENT__COVERED, + covered = new EObjectWithInverseResolvingEList.ManyInverse( + Lifeline.class, this, + UMLPackage.INTERACTION_FRAGMENT__COVERED, + UMLPackage.LIFELINE__COVERED_BY)); + } + return covered; + } + + /** + * + * + * @generated + */ + public Lifeline getCovered(String name) { + for (Iterator i = getCovereds().iterator(); i.hasNext();) { + Lifeline covered = (Lifeline) i.next(); + if (name.equals(covered.getName())) { + return covered; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getGeneralOrderings() { + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING); + if (generalOrdering == null) { + eVirtualSet(UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING, + generalOrdering = new EObjectContainmentEList( + GeneralOrdering.class, this, + UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING)); + } + return generalOrdering; + } + + /** + * + * + * @generated + */ + public GeneralOrdering createGeneralOrdering() { + GeneralOrdering newGeneralOrdering = UMLFactory.eINSTANCE + .createGeneralOrdering(); + getGeneralOrderings().add(newGeneralOrdering); + return newGeneralOrdering; + } + + /** + * + * + * @generated + */ + public GeneralOrdering getGeneralOrdering(String name) { + for (Iterator i = getGeneralOrderings().iterator(); i.hasNext();) { + GeneralOrdering generalOrdering = (GeneralOrdering) i.next(); + if (name.equals(generalOrdering.getName())) { + return generalOrdering; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Interaction getEnclosingInteraction() { + if (eContainerFeatureID != UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION) + return null; + return (Interaction) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnclosingInteraction(Interaction newEnclosingInteraction) { + if (newEnclosingInteraction != eContainer + || (eContainerFeatureID != UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION && newEnclosingInteraction != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnclosingInteraction)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnclosingInteraction != null) + msgs = ((InternalEObject) newEnclosingInteraction).eInverseAdd( + this, UMLPackage.INTERACTION__FRAGMENT, Interaction.class, + msgs); + msgs = eBasicSetContainer( + (InternalEObject) newEnclosingInteraction, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION, + newEnclosingInteraction, newEnclosingInteraction)); + + } + + /** + * + * + * @generated + */ + public InteractionOperand getEnclosingOperand() { + if (eContainerFeatureID != UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND) + return null; + return (InteractionOperand) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnclosingOperand(InteractionOperand newEnclosingOperand) { + if (newEnclosingOperand != eContainer + || (eContainerFeatureID != UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND && newEnclosingOperand != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnclosingOperand)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnclosingOperand != null) + msgs = ((InternalEObject) newEnclosingOperand).eInverseAdd( + this, UMLPackage.INTERACTION_OPERAND__FRAGMENT, + InteractionOperand.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newEnclosingOperand, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND, + newEnclosingOperand, newEnclosingOperand)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION_FRAGMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + return ((InternalEList) getCovereds()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION_FRAGMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION__FRAGMENT, Interaction.class, + msgs); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION_OPERAND__FRAGMENT, + InteractionOperand.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_FRAGMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERACTION_FRAGMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERACTION_FRAGMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERACTION_FRAGMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERACTION_FRAGMENT__NAME : + return getName(); + case UMLPackage.INTERACTION_FRAGMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERACTION_FRAGMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERACTION_FRAGMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERACTION_FRAGMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + return getCovereds(); + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + return getEnclosingOperand(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_FRAGMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_FRAGMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERACTION_FRAGMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERACTION_FRAGMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERACTION_FRAGMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERACTION_FRAGMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + getCovereds().clear(); + return; + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_FRAGMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERACTION_FRAGMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERACTION_FRAGMENT__OWNER : + return isSetOwner(); + case UMLPackage.INTERACTION_FRAGMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERACTION_FRAGMENT__NAME : + String name = eVirtualIsSet(UMLPackage.INTERACTION_FRAGMENT__NAME) + ? (String) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERACTION_FRAGMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERACTION_FRAGMENT__VISIBILITY) + && eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERACTION_FRAGMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERACTION_FRAGMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERACTION_FRAGMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__NAME_EXPRESSION) != null; + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + List covered = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + InteractionOperand enclosingOperand = getEnclosingOperand(); + if (enclosingOperand != null) { + return enclosingOperand; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE + .getInteractionFragment_EnclosingOperand()); + } + +} //InteractionFragmentImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionImpl.java new file mode 100644 index 00000000..5c65feeb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionImpl.java @@ -0,0 +1,1708 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Interaction'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getCovereds Covered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getGeneralOrderings General Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getEnclosingInteraction Enclosing Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getEnclosingOperand Enclosing Operand}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getLifelines Lifeline}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getFragments Fragment}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getActions Action}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getFormalGates Formal Gate}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getMessages Message}
  • + *
+ *

+ * + * @generated + */ +public class InteractionImpl + extends BehaviorImpl + implements Interaction { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits2 = 0; + + /** + * + * + * @generated + */ + protected InteractionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInteraction(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.INTERACTION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INTERACTION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization(), + UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering(), + UMLPackage.eINSTANCE.getInteraction_Action()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getCovereds() { + List covered = (List) eVirtualGet(UMLPackage.INTERACTION__COVERED); + if (covered == null) { + eVirtualSet(UMLPackage.INTERACTION__COVERED, + covered = new EObjectWithInverseResolvingEList.ManyInverse( + Lifeline.class, this, UMLPackage.INTERACTION__COVERED, + UMLPackage.LIFELINE__COVERED_BY)); + } + return covered; + } + + /** + * + * + * @generated + */ + public Lifeline getCovered(String name) { + for (Iterator i = getCovereds().iterator(); i.hasNext();) { + Lifeline covered = (Lifeline) i.next(); + if (name.equals(covered.getName())) { + return covered; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getGeneralOrderings() { + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION__GENERAL_ORDERING); + if (generalOrdering == null) { + eVirtualSet(UMLPackage.INTERACTION__GENERAL_ORDERING, + generalOrdering = new EObjectContainmentEList( + GeneralOrdering.class, this, + UMLPackage.INTERACTION__GENERAL_ORDERING)); + } + return generalOrdering; + } + + /** + * + * + * @generated + */ + public GeneralOrdering createGeneralOrdering() { + GeneralOrdering newGeneralOrdering = UMLFactory.eINSTANCE + .createGeneralOrdering(); + getGeneralOrderings().add(newGeneralOrdering); + return newGeneralOrdering; + } + + /** + * + * + * @generated + */ + public GeneralOrdering getGeneralOrdering(String name) { + for (Iterator i = getGeneralOrderings().iterator(); i.hasNext();) { + GeneralOrdering generalOrdering = (GeneralOrdering) i.next(); + if (name.equals(generalOrdering.getName())) { + return generalOrdering; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Interaction getEnclosingInteraction() { + if (eContainerFeatureID != UMLPackage.INTERACTION__ENCLOSING_INTERACTION) + return null; + return (Interaction) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnclosingInteraction(Interaction newEnclosingInteraction) { + if (newEnclosingInteraction != eContainer + || (eContainerFeatureID != UMLPackage.INTERACTION__ENCLOSING_INTERACTION && newEnclosingInteraction != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnclosingInteraction)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnclosingInteraction != null) + msgs = ((InternalEObject) newEnclosingInteraction).eInverseAdd( + this, UMLPackage.INTERACTION__FRAGMENT, Interaction.class, + msgs); + msgs = eBasicSetContainer( + (InternalEObject) newEnclosingInteraction, + UMLPackage.INTERACTION__ENCLOSING_INTERACTION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION__ENCLOSING_INTERACTION, + newEnclosingInteraction, newEnclosingInteraction)); + + } + + /** + * + * + * @generated + */ + public InteractionOperand getEnclosingOperand() { + if (eContainerFeatureID != UMLPackage.INTERACTION__ENCLOSING_OPERAND) + return null; + return (InteractionOperand) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnclosingOperand(InteractionOperand newEnclosingOperand) { + if (newEnclosingOperand != eContainer + || (eContainerFeatureID != UMLPackage.INTERACTION__ENCLOSING_OPERAND && newEnclosingOperand != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnclosingOperand)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnclosingOperand != null) + msgs = ((InternalEObject) newEnclosingOperand).eInverseAdd( + this, UMLPackage.INTERACTION_OPERAND__FRAGMENT, + InteractionOperand.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newEnclosingOperand, + UMLPackage.INTERACTION__ENCLOSING_OPERAND, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION__ENCLOSING_OPERAND, newEnclosingOperand, + newEnclosingOperand)); + + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.INTERACTION__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.INTERACTION__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameter(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameterSet(), + UMLPackage.eINSTANCE.getInteraction_Lifeline(), + UMLPackage.eINSTANCE.getInteraction_Fragment(), + UMLPackage.eINSTANCE.getInteraction_FormalGate(), + UMLPackage.eINSTANCE.getInteraction_Message()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getLifelines() { + List lifeline = (List) eVirtualGet(UMLPackage.INTERACTION__LIFELINE); + if (lifeline == null) { + eVirtualSet(UMLPackage.INTERACTION__LIFELINE, + lifeline = new EObjectContainmentWithInverseEList( + Lifeline.class, this, UMLPackage.INTERACTION__LIFELINE, + UMLPackage.LIFELINE__INTERACTION)); + } + return lifeline; + } + + /** + * + * + * @generated + */ + public Lifeline createLifeline() { + Lifeline newLifeline = UMLFactory.eINSTANCE.createLifeline(); + getLifelines().add(newLifeline); + return newLifeline; + } + + /** + * + * + * @generated + */ + public Lifeline getLifeline(String name) { + for (Iterator i = getLifelines().iterator(); i.hasNext();) { + Lifeline lifeline = (Lifeline) i.next(); + if (name.equals(lifeline.getName())) { + return lifeline; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getFragments() { + List fragment = (List) eVirtualGet(UMLPackage.INTERACTION__FRAGMENT); + if (fragment == null) { + eVirtualSet(UMLPackage.INTERACTION__FRAGMENT, + fragment = new EObjectContainmentWithInverseEList( + InteractionFragment.class, this, + UMLPackage.INTERACTION__FRAGMENT, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION)); + } + return fragment; + } + + /** + * + * + * @generated + */ + public InteractionFragment createFragment(EClass eClass) { + InteractionFragment newFragment = (InteractionFragment) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getFragments().add(newFragment); + return newFragment; + } + + /** + * + * + * @generated + */ + public InteractionFragment getFragment(String name) { + for (Iterator i = getFragments().iterator(); i.hasNext();) { + InteractionFragment fragment = (InteractionFragment) i.next(); + if (name.equals(fragment.getName())) { + return fragment; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getActions() { + List action = (List) eVirtualGet(UMLPackage.INTERACTION__ACTION); + if (action == null) { + eVirtualSet(UMLPackage.INTERACTION__ACTION, + action = new EObjectContainmentEList(Action.class, this, + UMLPackage.INTERACTION__ACTION)); + } + return action; + } + + /** + * + * + * @generated + */ + public Action createAction(EClass eClass) { + Action newAction = (Action) eClass.getEPackage().getEFactoryInstance() + .create(eClass); + getActions().add(newAction); + return newAction; + } + + /** + * + * + * @generated + */ + public Action createAction() { + Action newAction = UMLFactory.eINSTANCE.createAction(); + getActions().add(newAction); + return newAction; + } + + /** + * + * + * @generated + */ + public Action getAction(String name) { + for (Iterator i = getActions().iterator(); i.hasNext();) { + Action action = (Action) i.next(); + if (name.equals(action.getName())) { + return action; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getFormalGates() { + List formalGate = (List) eVirtualGet(UMLPackage.INTERACTION__FORMAL_GATE); + if (formalGate == null) { + eVirtualSet(UMLPackage.INTERACTION__FORMAL_GATE, + formalGate = new EObjectContainmentEList(Gate.class, this, + UMLPackage.INTERACTION__FORMAL_GATE)); + } + return formalGate; + } + + /** + * + * + * @generated + */ + public Gate createFormalGate() { + Gate newFormalGate = UMLFactory.eINSTANCE.createGate(); + getFormalGates().add(newFormalGate); + return newFormalGate; + } + + /** + * + * + * @generated + */ + public Gate getFormalGate(String name) { + for (Iterator i = getFormalGates().iterator(); i.hasNext();) { + Gate formalGate = (Gate) i.next(); + if (name.equals(formalGate.getName())) { + return formalGate; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getMessages() { + List message = (List) eVirtualGet(UMLPackage.INTERACTION__MESSAGE); + if (message == null) { + eVirtualSet(UMLPackage.INTERACTION__MESSAGE, + message = new EObjectContainmentWithInverseEList(Message.class, + this, UMLPackage.INTERACTION__MESSAGE, + UMLPackage.MESSAGE__INTERACTION)); + } + return message; + } + + /** + * + * + * @generated + */ + public Message createMessage() { + Message newMessage = UMLFactory.eINSTANCE.createMessage(); + getMessages().add(newMessage); + return newMessage; + } + + /** + * + * + * @generated + */ + public Message getMessage(String name) { + for (Iterator i = getMessages().iterator(); i.hasNext();) { + Message message = (Message) i.next(); + if (name.equals(message.getName())) { + return message; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.INTERACTION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.INTERACTION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.INTERACTION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.INTERACTION__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.INTERACTION__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION__SPECIFICATION : + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.INTERACTION__SPECIFICATION); + if (specification != null) + msgs = ((InternalEObject) specification) + .eInverseRemove(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + return basicSetSpecification((BehavioralFeature) otherEnd, + msgs); + case UMLPackage.INTERACTION__COVERED : + return ((InternalEList) getCovereds()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION__ENCLOSING_INTERACTION, msgs); + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION__ENCLOSING_OPERAND, msgs); + case UMLPackage.INTERACTION__LIFELINE : + return ((InternalEList) getLifelines()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION__FRAGMENT : + return ((InternalEList) getFragments()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION__MESSAGE : + return ((InternalEList) getMessages()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERACTION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.INTERACTION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.INTERACTION__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.INTERACTION__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.INTERACTION__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + return eBasicSetContainer(null, + UMLPackage.INTERACTION__ENCLOSING_INTERACTION, msgs); + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.INTERACTION__ENCLOSING_OPERAND, msgs); + case UMLPackage.INTERACTION__LIFELINE : + return ((InternalEList) getLifelines()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__FRAGMENT : + return ((InternalEList) getFragments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__ACTION : + return ((InternalEList) getActions()).basicRemove(otherEnd, + msgs); + case UMLPackage.INTERACTION__FORMAL_GATE : + return ((InternalEList) getFormalGates()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION__MESSAGE : + return ((InternalEList) getMessages()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION__FRAGMENT, Interaction.class, + msgs); + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION_OPERAND__FRAGMENT, + InteractionOperand.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERACTION__NAME : + return getName(); + case UMLPackage.INTERACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERACTION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.INTERACTION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.INTERACTION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.INTERACTION__MEMBER : + return getMembers(); + case UMLPackage.INTERACTION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.INTERACTION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.INTERACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INTERACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.INTERACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.INTERACTION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INTERACTION__PACKAGE : + return getPackage(); + case UMLPackage.INTERACTION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.INTERACTION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INTERACTION__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.INTERACTION__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.INTERACTION__FEATURE : + return getFeatures(); + case UMLPackage.INTERACTION__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.INTERACTION__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.INTERACTION__GENERAL : + return getGenerals(); + case UMLPackage.INTERACTION__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.INTERACTION__USE_CASE : + return getUseCases(); + case UMLPackage.INTERACTION__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.INTERACTION__ATTRIBUTE : + return getAttributes(); + case UMLPackage.INTERACTION__REPRESENTATION : + return getRepresentation(); + case UMLPackage.INTERACTION__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.INTERACTION__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.INTERACTION__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.INTERACTION__PART : + return getParts(); + case UMLPackage.INTERACTION__ROLE : + return getRoles(); + case UMLPackage.INTERACTION__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.INTERACTION__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.INTERACTION__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.INTERACTION__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.INTERACTION__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.INTERACTION__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.INTERACTION__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.INTERACTION__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.INTERACTION__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.INTERACTION__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INTERACTION__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.INTERACTION__EXTENSION : + return getExtensions(); + case UMLPackage.INTERACTION__IS_REENTRANT : + return isReentrant() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INTERACTION__REDEFINED_BEHAVIOR : + return getRedefinedBehaviors(); + case UMLPackage.INTERACTION__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.INTERACTION__CONTEXT : + if (resolve) + return getContext(); + return basicGetContext(); + case UMLPackage.INTERACTION__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.INTERACTION__SPECIFICATION : + if (resolve) + return getSpecification(); + return basicGetSpecification(); + case UMLPackage.INTERACTION__COVERED : + return getCovereds(); + case UMLPackage.INTERACTION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.INTERACTION__LIFELINE : + return getLifelines(); + case UMLPackage.INTERACTION__FRAGMENT : + return getFragments(); + case UMLPackage.INTERACTION__ACTION : + return getActions(); + case UMLPackage.INTERACTION__FORMAL_GATE : + return getFormalGates(); + case UMLPackage.INTERACTION__MESSAGE : + return getMessages(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERACTION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INTERACTION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERACTION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.INTERACTION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.INTERACTION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INTERACTION__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.INTERACTION__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.INTERACTION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.INTERACTION__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INTERACTION__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__IS_REENTRANT : + setIsReentrant(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INTERACTION__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + getRedefinedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__CONTEXT : + setContext((BehavioredClassifier) newValue); + return; + case UMLPackage.INTERACTION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__SPECIFICATION : + setSpecification((BehavioralFeature) newValue); + return; + case UMLPackage.INTERACTION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.INTERACTION__LIFELINE : + getLifelines().clear(); + getLifelines().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__FRAGMENT : + getFragments().clear(); + getFragments().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__ACTION : + getActions().clear(); + getActions().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__FORMAL_GATE : + getFormalGates().clear(); + getFormalGates().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION__MESSAGE : + getMessages().clear(); + getMessages().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERACTION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.INTERACTION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.INTERACTION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.INTERACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.INTERACTION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERACTION__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.INTERACTION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.INTERACTION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.INTERACTION__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.INTERACTION__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.INTERACTION__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.INTERACTION__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.INTERACTION__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.INTERACTION__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.INTERACTION__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.INTERACTION__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.INTERACTION__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.INTERACTION__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.INTERACTION__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.INTERACTION__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.INTERACTION__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.INTERACTION__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.INTERACTION__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.INTERACTION__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.INTERACTION__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.INTERACTION__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.INTERACTION__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.INTERACTION__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.INTERACTION__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.INTERACTION__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.INTERACTION__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.INTERACTION__IS_REENTRANT : + setIsReentrant(IS_REENTRANT_EDEFAULT); + return; + case UMLPackage.INTERACTION__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + return; + case UMLPackage.INTERACTION__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.INTERACTION__CONTEXT : + setContext((BehavioredClassifier) null); + return; + case UMLPackage.INTERACTION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.INTERACTION__SPECIFICATION : + setSpecification((BehavioralFeature) null); + return; + case UMLPackage.INTERACTION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.INTERACTION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.INTERACTION__LIFELINE : + getLifelines().clear(); + return; + case UMLPackage.INTERACTION__FRAGMENT : + getFragments().clear(); + return; + case UMLPackage.INTERACTION__ACTION : + getActions().clear(); + return; + case UMLPackage.INTERACTION__FORMAL_GATE : + getFormalGates().clear(); + return; + case UMLPackage.INTERACTION__MESSAGE : + getMessages().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERACTION__OWNER : + return isSetOwner(); + case UMLPackage.INTERACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERACTION__NAME : + String name = eVirtualIsSet(UMLPackage.INTERACTION__NAME) + ? (String) eVirtualGet(UMLPackage.INTERACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERACTION__VISIBILITY) + && eVirtualGet(UMLPackage.INTERACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERACTION__NAME_EXPRESSION) != null; + case UMLPackage.INTERACTION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.INTERACTION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.INTERACTION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.INTERACTION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.INTERACTION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.INTERACTION__MEMBER : + return isSetMembers(); + case UMLPackage.INTERACTION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.INTERACTION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.INTERACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.INTERACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.INTERACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.INTERACTION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INTERACTION__TEMPLATE_PARAMETER) != null; + case UMLPackage.INTERACTION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INTERACTION__PACKAGE : + return getPackage() != null; + case UMLPackage.INTERACTION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.INTERACTION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.INTERACTION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.INTERACTION__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.INTERACTION__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.INTERACTION__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.INTERACTION__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.INTERACTION__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.INTERACTION__FEATURE : + return isSetFeatures(); + case UMLPackage.INTERACTION__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.INTERACTION__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.INTERACTION__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.INTERACTION__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.INTERACTION__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.INTERACTION__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.INTERACTION__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.INTERACTION__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.INTERACTION__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.INTERACTION__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.INTERACTION__REPRESENTATION : + return eVirtualGet(UMLPackage.INTERACTION__REPRESENTATION) != null; + case UMLPackage.INTERACTION__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.INTERACTION__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.INTERACTION__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.INTERACTION__OWNED_SIGNATURE) != null; + case UMLPackage.INTERACTION__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.INTERACTION__PART : + return !getParts().isEmpty(); + case UMLPackage.INTERACTION__ROLE : + return isSetRoles(); + case UMLPackage.INTERACTION__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.INTERACTION__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.INTERACTION__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.INTERACTION__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.INTERACTION__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.INTERACTION__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.INTERACTION__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.INTERACTION__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.INTERACTION__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.INTERACTION__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.INTERACTION__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.INTERACTION__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.INTERACTION__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.INTERACTION__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.INTERACTION__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.INTERACTION__IS_REENTRANT : + return ((eFlags & IS_REENTRANT_EFLAG) != 0) != IS_REENTRANT_EDEFAULT; + case UMLPackage.INTERACTION__REDEFINED_BEHAVIOR : + List redefinedBehavior = (List) eVirtualGet(UMLPackage.INTERACTION__REDEFINED_BEHAVIOR); + return redefinedBehavior != null + && !redefinedBehavior.isEmpty(); + case UMLPackage.INTERACTION__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.INTERACTION__CONTEXT : + return basicGetContext() != null; + case UMLPackage.INTERACTION__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.INTERACTION__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.INTERACTION__SPECIFICATION : + return eVirtualGet(UMLPackage.INTERACTION__SPECIFICATION) != null; + case UMLPackage.INTERACTION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.INTERACTION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.INTERACTION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.INTERACTION__LIFELINE : + List lifeline = (List) eVirtualGet(UMLPackage.INTERACTION__LIFELINE); + return lifeline != null && !lifeline.isEmpty(); + case UMLPackage.INTERACTION__FRAGMENT : + List fragment = (List) eVirtualGet(UMLPackage.INTERACTION__FRAGMENT); + return fragment != null && !fragment.isEmpty(); + case UMLPackage.INTERACTION__ACTION : + List action = (List) eVirtualGet(UMLPackage.INTERACTION__ACTION); + return action != null && !action.isEmpty(); + case UMLPackage.INTERACTION__FORMAL_GATE : + List formalGate = (List) eVirtualGet(UMLPackage.INTERACTION__FORMAL_GATE); + return formalGate != null && !formalGate.isEmpty(); + case UMLPackage.INTERACTION__MESSAGE : + List message = (List) eVirtualGet(UMLPackage.INTERACTION__MESSAGE); + return message != null && !message.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == InteractionFragment.class) { + switch (derivedFeatureID) { + case UMLPackage.INTERACTION__COVERED : + return UMLPackage.INTERACTION_FRAGMENT__COVERED; + case UMLPackage.INTERACTION__GENERAL_ORDERING : + return UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING; + case UMLPackage.INTERACTION__ENCLOSING_INTERACTION : + return UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + case UMLPackage.INTERACTION__ENCLOSING_OPERAND : + return UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == InteractionFragment.class) { + switch (baseFeatureID) { + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + return UMLPackage.INTERACTION__COVERED; + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + return UMLPackage.INTERACTION__GENERAL_ORDERING; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + return UMLPackage.INTERACTION__ENCLOSING_INTERACTION; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + return UMLPackage.INTERACTION__ENCLOSING_OPERAND; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + case 2 : + return eVirtualIndexBits2; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + case 2 : + eVirtualIndexBits2 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering()) + || eIsSet(UMLPackage.eINSTANCE.getInteraction_Action()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + InteractionOperand enclosingOperand = getEnclosingOperand(); + if (enclosingOperand != null) { + return enclosingOperand; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE + .getInteractionFragment_EnclosingOperand()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getInteraction_Lifeline()) + || eIsSet(UMLPackage.eINSTANCE.getInteraction_Fragment()) + || eIsSet(UMLPackage.eINSTANCE.getInteraction_FormalGate()) + || eIsSet(UMLPackage.eINSTANCE.getInteraction_Message()); + } + +} //InteractionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java new file mode 100644 index 00000000..641f7e50 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java @@ -0,0 +1,907 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionOperandImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionConstraint; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InteractionOperandOperations; + +/** + * + * An implementation of the model object 'Interaction Operand'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getCovereds Covered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getGeneralOrderings General Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getEnclosingInteraction Enclosing Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getEnclosingOperand Enclosing Operand}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getFragments Fragment}
  • + *
+ *

+ * + * @generated + */ +public class InteractionOperandImpl + extends NamespaceImpl + implements InteractionOperand { + + /** + * + * + * @generated + */ + protected InteractionOperandImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInteractionOperand(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.INTERACTION_OPERAND__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INTERACTION_OPERAND__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering(), + UMLPackage.eINSTANCE.getInteractionOperand_Guard()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getCovereds() { + List covered = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__COVERED); + if (covered == null) { + eVirtualSet(UMLPackage.INTERACTION_OPERAND__COVERED, + covered = new EObjectWithInverseResolvingEList.ManyInverse( + Lifeline.class, this, + UMLPackage.INTERACTION_OPERAND__COVERED, + UMLPackage.LIFELINE__COVERED_BY)); + } + return covered; + } + + /** + * + * + * @generated + */ + public Lifeline getCovered(String name) { + for (Iterator i = getCovereds().iterator(); i.hasNext();) { + Lifeline covered = (Lifeline) i.next(); + if (name.equals(covered.getName())) { + return covered; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getGeneralOrderings() { + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING); + if (generalOrdering == null) { + eVirtualSet(UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING, + generalOrdering = new EObjectContainmentEList( + GeneralOrdering.class, this, + UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING)); + } + return generalOrdering; + } + + /** + * + * + * @generated + */ + public GeneralOrdering createGeneralOrdering() { + GeneralOrdering newGeneralOrdering = UMLFactory.eINSTANCE + .createGeneralOrdering(); + getGeneralOrderings().add(newGeneralOrdering); + return newGeneralOrdering; + } + + /** + * + * + * @generated + */ + public GeneralOrdering getGeneralOrdering(String name) { + for (Iterator i = getGeneralOrderings().iterator(); i.hasNext();) { + GeneralOrdering generalOrdering = (GeneralOrdering) i.next(); + if (name.equals(generalOrdering.getName())) { + return generalOrdering; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Interaction getEnclosingInteraction() { + if (eContainerFeatureID != UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION) + return null; + return (Interaction) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnclosingInteraction(Interaction newEnclosingInteraction) { + if (newEnclosingInteraction != eContainer + || (eContainerFeatureID != UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION && newEnclosingInteraction != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnclosingInteraction)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnclosingInteraction != null) + msgs = ((InternalEObject) newEnclosingInteraction).eInverseAdd( + this, UMLPackage.INTERACTION__FRAGMENT, Interaction.class, + msgs); + msgs = eBasicSetContainer( + (InternalEObject) newEnclosingInteraction, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION, + newEnclosingInteraction, newEnclosingInteraction)); + + } + + /** + * + * + * @generated + */ + public InteractionOperand getEnclosingOperand() { + if (eContainerFeatureID != UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND) + return null; + return (InteractionOperand) eContainer; + } + + /** + * + * + * @generated + */ + public void setEnclosingOperand(InteractionOperand newEnclosingOperand) { + if (newEnclosingOperand != eContainer + || (eContainerFeatureID != UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND && newEnclosingOperand != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newEnclosingOperand)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newEnclosingOperand != null) + msgs = ((InternalEObject) newEnclosingOperand).eInverseAdd( + this, UMLPackage.INTERACTION_OPERAND__FRAGMENT, + InteractionOperand.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newEnclosingOperand, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND, + newEnclosingOperand, newEnclosingOperand)); + + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.INTERACTION_OPERAND__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.INTERACTION_OPERAND__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getInteractionOperand_Fragment()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public InteractionConstraint getGuard() { + InteractionConstraint guard = (InteractionConstraint) eVirtualGet(UMLPackage.INTERACTION_OPERAND__GUARD); + return guard; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetGuard(InteractionConstraint newGuard, + NotificationChain msgs) { + Object oldGuard = eVirtualSet(UMLPackage.INTERACTION_OPERAND__GUARD, + newGuard); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.INTERACTION_OPERAND__GUARD, + oldGuard == EVIRTUAL_NO_VALUE + ? null + : oldGuard, newGuard); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setGuard(InteractionConstraint newGuard) { + InteractionConstraint guard = (InteractionConstraint) eVirtualGet(UMLPackage.INTERACTION_OPERAND__GUARD); + if (newGuard != guard) { + NotificationChain msgs = null; + if (guard != null) + msgs = ((InternalEObject) guard).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION_OPERAND__GUARD, null, msgs); + if (newGuard != null) + msgs = ((InternalEObject) newGuard).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERACTION_OPERAND__GUARD, null, msgs); + msgs = basicSetGuard(newGuard, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_OPERAND__GUARD, newGuard, newGuard)); + + } + + /** + * + * + * @generated + */ + public InteractionConstraint createGuard() { + InteractionConstraint newGuard = UMLFactory.eINSTANCE + .createInteractionConstraint(); + setGuard(newGuard); + return newGuard; + } + + /** + * + * + * @generated + */ + public List getFragments() { + List fragment = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__FRAGMENT); + if (fragment == null) { + eVirtualSet(UMLPackage.INTERACTION_OPERAND__FRAGMENT, + fragment = new EObjectContainmentWithInverseEList( + InteractionFragment.class, this, + UMLPackage.INTERACTION_OPERAND__FRAGMENT, + UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND)); + } + return fragment; + } + + /** + * + * + * @generated + */ + public InteractionFragment createFragment(EClass eClass) { + InteractionFragment newFragment = (InteractionFragment) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getFragments().add(newFragment); + return newFragment; + } + + /** + * + * + * @generated + */ + public InteractionFragment getFragment(String name) { + for (Iterator i = getFragments().iterator(); i.hasNext();) { + InteractionFragment fragment = (InteractionFragment) i.next(); + if (name.equals(fragment.getName())) { + return fragment; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateGuardDirectlyPrior(DiagnosticChain diagnostics, + Map context) { + return InteractionOperandOperations.validateGuardDirectlyPrior(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateGuardContainReferences(DiagnosticChain diagnostics, + Map context) { + return InteractionOperandOperations.validateGuardContainReferences( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION_OPERAND__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION_OPERAND__COVERED : + return ((InternalEList) getCovereds()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND, msgs); + case UMLPackage.INTERACTION_OPERAND__FRAGMENT : + return ((InternalEList) getFragments()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION_OPERAND__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND, msgs); + case UMLPackage.INTERACTION_OPERAND__GUARD : + return basicSetGuard(null, msgs); + case UMLPackage.INTERACTION_OPERAND__FRAGMENT : + return ((InternalEList) getFragments()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION__FRAGMENT, Interaction.class, + msgs); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION_OPERAND__FRAGMENT, + InteractionOperand.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_OPERAND__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERACTION_OPERAND__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERACTION_OPERAND__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERACTION_OPERAND__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERACTION_OPERAND__NAME : + return getName(); + case UMLPackage.INTERACTION_OPERAND__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERACTION_OPERAND__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERACTION_OPERAND__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERACTION_OPERAND__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.INTERACTION_OPERAND__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.INTERACTION_OPERAND__MEMBER : + return getMembers(); + case UMLPackage.INTERACTION_OPERAND__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.INTERACTION_OPERAND__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.INTERACTION_OPERAND__COVERED : + return getCovereds(); + case UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.INTERACTION_OPERAND__GUARD : + return getGuard(); + case UMLPackage.INTERACTION_OPERAND__FRAGMENT : + return getFragments(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_OPERAND__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__GUARD : + setGuard((InteractionConstraint) newValue); + return; + case UMLPackage.INTERACTION_OPERAND__FRAGMENT : + getFragments().clear(); + getFragments().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_OPERAND__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERACTION_OPERAND__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__COVERED : + getCovereds().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.INTERACTION_OPERAND__GUARD : + setGuard((InteractionConstraint) null); + return; + case UMLPackage.INTERACTION_OPERAND__FRAGMENT : + getFragments().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_OPERAND__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERACTION_OPERAND__OWNER : + return isSetOwner(); + case UMLPackage.INTERACTION_OPERAND__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__NAME : + String name = eVirtualIsSet(UMLPackage.INTERACTION_OPERAND__NAME) + ? (String) eVirtualGet(UMLPackage.INTERACTION_OPERAND__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERACTION_OPERAND__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERACTION_OPERAND__VISIBILITY) + && eVirtualGet(UMLPackage.INTERACTION_OPERAND__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERACTION_OPERAND__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERACTION_OPERAND__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERACTION_OPERAND__NAME_EXPRESSION) != null; + case UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__MEMBER : + return isSetMembers(); + case UMLPackage.INTERACTION_OPERAND__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.INTERACTION_OPERAND__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.INTERACTION_OPERAND__COVERED : + List covered = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.INTERACTION_OPERAND__GUARD : + return eVirtualGet(UMLPackage.INTERACTION_OPERAND__GUARD) != null; + case UMLPackage.INTERACTION_OPERAND__FRAGMENT : + List fragment = (List) eVirtualGet(UMLPackage.INTERACTION_OPERAND__FRAGMENT); + return fragment != null && !fragment.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == InteractionFragment.class) { + switch (derivedFeatureID) { + case UMLPackage.INTERACTION_OPERAND__COVERED : + return UMLPackage.INTERACTION_FRAGMENT__COVERED; + case UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING : + return UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION : + return UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION; + case UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND : + return UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == InteractionFragment.class) { + switch (baseFeatureID) { + case UMLPackage.INTERACTION_FRAGMENT__COVERED : + return UMLPackage.INTERACTION_OPERAND__COVERED; + case UMLPackage.INTERACTION_FRAGMENT__GENERAL_ORDERING : + return UMLPackage.INTERACTION_OPERAND__GENERAL_ORDERING; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION : + return UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION; + case UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND : + return UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering()) + || eIsSet(UMLPackage.eINSTANCE.getInteractionOperand_Guard()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + InteractionOperand enclosingOperand = getEnclosingOperand(); + if (enclosingOperand != null) { + return enclosingOperand; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE + .getInteractionFragment_EnclosingOperand()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getInteractionOperand_Fragment()); + } + +} //InteractionOperandImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java new file mode 100644 index 00000000..efe938ee --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java @@ -0,0 +1,565 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionUseImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionUse; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InteractionUseOperations; + +/** + * + * An implementation of the model object 'Interaction Use'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getRefersTo Refers To}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getActualGates Actual Gate}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getArguments Argument}
  • + *
+ *

+ * + * @generated + */ +public class InteractionUseImpl + extends InteractionFragmentImpl + implements InteractionUse { + + /** + * + * + * @generated + */ + protected InteractionUseImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInteractionUse(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.INTERACTION_USE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.INTERACTION_USE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.INTERACTION_USE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering(), + UMLPackage.eINSTANCE.getInteractionUse_ActualGate()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Interaction getRefersTo() { + Interaction refersTo = (Interaction) eVirtualGet(UMLPackage.INTERACTION_USE__REFERS_TO); + if (refersTo != null && refersTo.eIsProxy()) { + Interaction oldRefersTo = refersTo; + refersTo = (Interaction) eResolveProxy((InternalEObject) refersTo); + if (refersTo != oldRefersTo) { + eVirtualSet(UMLPackage.INTERACTION_USE__REFERS_TO, refersTo); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INTERACTION_USE__REFERS_TO, oldRefersTo, + refersTo)); + } + } + return refersTo; + } + + /** + * + * + * @generated + */ + public Interaction basicGetRefersTo() { + return (Interaction) eVirtualGet(UMLPackage.INTERACTION_USE__REFERS_TO); + } + + /** + * + * + * @generated + */ + public void setRefersTo(Interaction newRefersTo) { + Interaction refersTo = newRefersTo; + Object oldRefersTo = eVirtualSet(UMLPackage.INTERACTION_USE__REFERS_TO, + refersTo); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERACTION_USE__REFERS_TO, + oldRefersTo == EVIRTUAL_NO_VALUE + ? null + : oldRefersTo, refersTo)); + + } + + /** + * + * + * @generated + */ + public List getActualGates() { + List actualGate = (List) eVirtualGet(UMLPackage.INTERACTION_USE__ACTUAL_GATE); + if (actualGate == null) { + eVirtualSet(UMLPackage.INTERACTION_USE__ACTUAL_GATE, + actualGate = new EObjectContainmentEList(Gate.class, this, + UMLPackage.INTERACTION_USE__ACTUAL_GATE)); + } + return actualGate; + } + + /** + * + * + * @generated + */ + public Gate createActualGate() { + Gate newActualGate = UMLFactory.eINSTANCE.createGate(); + getActualGates().add(newActualGate); + return newActualGate; + } + + /** + * + * + * @generated + */ + public Gate getActualGate(String name) { + for (Iterator i = getActualGates().iterator(); i.hasNext();) { + Gate actualGate = (Gate) i.next(); + if (name.equals(actualGate.getName())) { + return actualGate; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getArguments() { + List argument = (List) eVirtualGet(UMLPackage.INTERACTION_USE__ARGUMENT); + if (argument == null) { + eVirtualSet(UMLPackage.INTERACTION_USE__ARGUMENT, + argument = new EObjectContainmentEList(Action.class, this, + UMLPackage.INTERACTION_USE__ARGUMENT)); + } + return argument; + } + + /** + * + * + * @generated + */ + public Action createArgument(EClass eClass) { + Action newArgument = (Action) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getArguments().add(newArgument); + return newArgument; + } + + /** + * + * + * @generated + */ + public Action createArgument() { + Action newArgument = UMLFactory.eINSTANCE.createAction(); + getArguments().add(newArgument); + return newArgument; + } + + /** + * + * + * @generated + */ + public Action getArgument(String name) { + for (Iterator i = getArguments().iterator(); i.hasNext();) { + Action argument = (Action) i.next(); + if (name.equals(argument.getName())) { + return argument; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateGatesMatch(DiagnosticChain diagnostics, Map context) { + return InteractionUseOperations.validateGatesMatch(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateAllLifelines(DiagnosticChain diagnostics, Map context) { + return InteractionUseOperations.validateAllLifelines(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateArgumentsCorrespondToParameters( + DiagnosticChain diagnostics, Map context) { + return InteractionUseOperations + .validateArgumentsCorrespondToParameters(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateArgumentsAreConstants(DiagnosticChain diagnostics, + Map context) { + return InteractionUseOperations.validateArgumentsAreConstants(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERACTION_USE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_USE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_USE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERACTION_USE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERACTION_USE__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_USE__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_USE__ENCLOSING_INTERACTION : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_USE__ENCLOSING_INTERACTION, msgs); + case UMLPackage.INTERACTION_USE__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.INTERACTION_USE__ENCLOSING_OPERAND, msgs); + case UMLPackage.INTERACTION_USE__ACTUAL_GATE : + return ((InternalEList) getActualGates()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERACTION_USE__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_USE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERACTION_USE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERACTION_USE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERACTION_USE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERACTION_USE__NAME : + return getName(); + case UMLPackage.INTERACTION_USE__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERACTION_USE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERACTION_USE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERACTION_USE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERACTION_USE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERACTION_USE__COVERED : + return getCovereds(); + case UMLPackage.INTERACTION_USE__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.INTERACTION_USE__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.INTERACTION_USE__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.INTERACTION_USE__REFERS_TO : + if (resolve) + return getRefersTo(); + return basicGetRefersTo(); + case UMLPackage.INTERACTION_USE__ACTUAL_GATE : + return getActualGates(); + case UMLPackage.INTERACTION_USE__ARGUMENT : + return getArguments(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_USE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_USE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_USE__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERACTION_USE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERACTION_USE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_USE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERACTION_USE__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_USE__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_USE__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.INTERACTION_USE__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.INTERACTION_USE__REFERS_TO : + setRefersTo((Interaction) newValue); + return; + case UMLPackage.INTERACTION_USE__ACTUAL_GATE : + getActualGates().clear(); + getActualGates().addAll((Collection) newValue); + return; + case UMLPackage.INTERACTION_USE__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_USE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERACTION_USE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERACTION_USE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERACTION_USE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERACTION_USE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERACTION_USE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERACTION_USE__COVERED : + getCovereds().clear(); + return; + case UMLPackage.INTERACTION_USE__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.INTERACTION_USE__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.INTERACTION_USE__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.INTERACTION_USE__REFERS_TO : + setRefersTo((Interaction) null); + return; + case UMLPackage.INTERACTION_USE__ACTUAL_GATE : + getActualGates().clear(); + return; + case UMLPackage.INTERACTION_USE__ARGUMENT : + getArguments().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERACTION_USE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERACTION_USE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERACTION_USE__OWNER : + return isSetOwner(); + case UMLPackage.INTERACTION_USE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERACTION_USE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERACTION_USE__NAME : + String name = eVirtualIsSet(UMLPackage.INTERACTION_USE__NAME) + ? (String) eVirtualGet(UMLPackage.INTERACTION_USE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERACTION_USE__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERACTION_USE__VISIBILITY) + && eVirtualGet(UMLPackage.INTERACTION_USE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERACTION_USE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERACTION_USE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERACTION_USE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERACTION_USE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERACTION_USE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERACTION_USE__NAME_EXPRESSION) != null; + case UMLPackage.INTERACTION_USE__COVERED : + List covered = (List) eVirtualGet(UMLPackage.INTERACTION_USE__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.INTERACTION_USE__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.INTERACTION_USE__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.INTERACTION_USE__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.INTERACTION_USE__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.INTERACTION_USE__REFERS_TO : + return eVirtualGet(UMLPackage.INTERACTION_USE__REFERS_TO) != null; + case UMLPackage.INTERACTION_USE__ACTUAL_GATE : + List actualGate = (List) eVirtualGet(UMLPackage.INTERACTION_USE__ACTUAL_GATE); + return actualGate != null && !actualGate.isEmpty(); + case UMLPackage.INTERACTION_USE__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.INTERACTION_USE__ARGUMENT); + return argument != null && !argument.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getInteractionUse_ActualGate()); + } + +} //InteractionUseImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java new file mode 100644 index 00000000..7a268ed5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java @@ -0,0 +1,1163 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterfaceImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InterfaceOperations; + +/** + * + * An implementation of the model object 'Interface'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getNestedClassifiers Nested Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getRedefinedInterfaces Redefined Interface}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedReceptions Owned Reception}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getProtocol Protocol}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedOperations Owned Operation}
  • + *
+ *

+ * + * @generated + */ +public class InterfaceImpl + extends ClassifierImpl + implements Interface { + + /** + * + * + * @generated + */ + protected InterfaceImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInterface(); + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.INTERFACE__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.INTERFACE__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.INTERFACE__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInterface_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.INTERFACE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.INTERFACE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE.getInterface_OwnedAttribute(), + UMLPackage.eINSTANCE.getInterface_NestedClassifier(), + UMLPackage.eINSTANCE.getInterface_OwnedReception(), + UMLPackage.eINSTANCE.getInterface_Protocol(), + UMLPackage.eINSTANCE.getInterface_OwnedOperation()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.INTERFACE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet( + UMLPackage.INTERFACE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.INTERFACE__REDEFINED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getClassifier_RedefinedClassifier(), + UMLPackage.eINSTANCE.getInterface_RedefinedInterface()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.INTERFACE__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.INTERFACE__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.INTERFACE__FEATURE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE.getInterface_OwnedReception(), + UMLPackage.eINSTANCE.getInterface_OwnedOperation()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.INTERFACE__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentEList(Property.class, + this, UMLPackage.INTERFACE__OWNED_ATTRIBUTE)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNestedClassifiers() { + List nestedClassifier = (List) eVirtualGet(UMLPackage.INTERFACE__NESTED_CLASSIFIER); + if (nestedClassifier == null) { + eVirtualSet(UMLPackage.INTERFACE__NESTED_CLASSIFIER, + nestedClassifier = new EObjectContainmentEList( + Classifier.class, this, + UMLPackage.INTERFACE__NESTED_CLASSIFIER)); + } + return nestedClassifier; + } + + /** + * + * + * @generated + */ + public Classifier createNestedClassifier(EClass eClass) { + Classifier newNestedClassifier = (Classifier) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getNestedClassifiers().add(newNestedClassifier); + return newNestedClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getNestedClassifier(String name) { + for (Iterator i = getNestedClassifiers().iterator(); i.hasNext();) { + Classifier nestedClassifier = (Classifier) i.next(); + if (name.equals(nestedClassifier.getName())) { + return nestedClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinedInterfaces() { + List redefinedInterface = (List) eVirtualGet(UMLPackage.INTERFACE__REDEFINED_INTERFACE); + if (redefinedInterface == null) { + eVirtualSet(UMLPackage.INTERFACE__REDEFINED_INTERFACE, + redefinedInterface = new EObjectResolvingEList(Interface.class, + this, UMLPackage.INTERFACE__REDEFINED_INTERFACE)); + } + return redefinedInterface; + } + + /** + * + * + * @generated + */ + public Interface getRedefinedInterface(String name) { + for (Iterator i = getRedefinedInterfaces().iterator(); i.hasNext();) { + Interface redefinedInterface = (Interface) i.next(); + if (name.equals(redefinedInterface.getName())) { + return redefinedInterface; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedReceptions() { + List ownedReception = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_RECEPTION); + if (ownedReception == null) { + eVirtualSet(UMLPackage.INTERFACE__OWNED_RECEPTION, + ownedReception = new EObjectContainmentEList(Reception.class, + this, UMLPackage.INTERFACE__OWNED_RECEPTION)); + } + return ownedReception; + } + + /** + * + * + * @generated + */ + public Reception createOwnedReception() { + Reception newOwnedReception = UMLFactory.eINSTANCE.createReception(); + getOwnedReceptions().add(newOwnedReception); + return newOwnedReception; + } + + /** + * + * + * @generated + */ + public Reception getOwnedReception(String name) { + for (Iterator i = getOwnedReceptions().iterator(); i.hasNext();) { + Reception ownedReception = (Reception) i.next(); + if (name.equals(ownedReception.getName())) { + return ownedReception; + } + } + return null; + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine getProtocol() { + ProtocolStateMachine protocol = (ProtocolStateMachine) eVirtualGet(UMLPackage.INTERFACE__PROTOCOL); + return protocol; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetProtocol(ProtocolStateMachine newProtocol, + NotificationChain msgs) { + Object oldProtocol = eVirtualSet(UMLPackage.INTERFACE__PROTOCOL, + newProtocol); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.INTERFACE__PROTOCOL, + oldProtocol == EVIRTUAL_NO_VALUE + ? null + : oldProtocol, newProtocol); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setProtocol(ProtocolStateMachine newProtocol) { + ProtocolStateMachine protocol = (ProtocolStateMachine) eVirtualGet(UMLPackage.INTERFACE__PROTOCOL); + if (newProtocol != protocol) { + NotificationChain msgs = null; + if (protocol != null) + msgs = ((InternalEObject) protocol).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.INTERFACE__PROTOCOL, + null, msgs); + if (newProtocol != null) + msgs = ((InternalEObject) newProtocol).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.INTERFACE__PROTOCOL, + null, msgs); + msgs = basicSetProtocol(newProtocol, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERFACE__PROTOCOL, newProtocol, newProtocol)); + + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine createProtocol() { + ProtocolStateMachine newProtocol = UMLFactory.eINSTANCE + .createProtocolStateMachine(); + setProtocol(newProtocol); + return newProtocol; + } + + /** + * + * + * @generated + */ + public List getOwnedOperations() { + List ownedOperation = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_OPERATION); + if (ownedOperation == null) { + eVirtualSet(UMLPackage.INTERFACE__OWNED_OPERATION, + ownedOperation = new EObjectContainmentWithInverseEList( + Operation.class, this, + UMLPackage.INTERFACE__OWNED_OPERATION, + UMLPackage.OPERATION__INTERFACE)); + } + return ownedOperation; + } + + /** + * + * + * @generated + */ + public Operation createOwnedOperation() { + Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation(); + getOwnedOperations().add(newOwnedOperation); + return newOwnedOperation; + } + + /** + * + * + * @generated + */ + public Operation getOwnedOperation(String name) { + for (Iterator i = getOwnedOperations().iterator(); i.hasNext();) { + Operation ownedOperation = (Operation) i.next(); + if (name.equals(ownedOperation.getName())) { + return ownedOperation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateVisibility(DiagnosticChain diagnostics, Map context) { + return InterfaceOperations.validateVisibility(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERFACE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERFACE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.INTERFACE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.INTERFACE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.INTERFACE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERFACE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.INTERFACE__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERFACE__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERFACE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERFACE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERFACE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.INTERFACE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.INTERFACE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.INTERFACE__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERFACE__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE__PROTOCOL : + return basicSetProtocol(null, msgs); + case UMLPackage.INTERFACE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERFACE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERFACE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERFACE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERFACE__NAME : + return getName(); + case UMLPackage.INTERFACE__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERFACE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERFACE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERFACE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERFACE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERFACE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.INTERFACE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.INTERFACE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.INTERFACE__MEMBER : + return getMembers(); + case UMLPackage.INTERFACE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.INTERFACE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.INTERFACE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INTERFACE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.INTERFACE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.INTERFACE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INTERFACE__PACKAGE : + return getPackage(); + case UMLPackage.INTERFACE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.INTERFACE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INTERFACE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.INTERFACE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.INTERFACE__FEATURE : + return getFeatures(); + case UMLPackage.INTERFACE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.INTERFACE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.INTERFACE__GENERAL : + return getGenerals(); + case UMLPackage.INTERFACE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.INTERFACE__USE_CASE : + return getUseCases(); + case UMLPackage.INTERFACE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.INTERFACE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.INTERFACE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.INTERFACE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.INTERFACE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.INTERFACE__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.INTERFACE__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.INTERFACE__REDEFINED_INTERFACE : + return getRedefinedInterfaces(); + case UMLPackage.INTERFACE__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.INTERFACE__PROTOCOL : + return getProtocol(); + case UMLPackage.INTERFACE__OWNED_OPERATION : + return getOwnedOperations(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERFACE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERFACE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERFACE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INTERFACE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERFACE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.INTERFACE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.INTERFACE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INTERFACE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.INTERFACE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.INTERFACE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__REDEFINED_INTERFACE : + getRedefinedInterfaces().clear(); + getRedefinedInterfaces().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE__PROTOCOL : + setProtocol((ProtocolStateMachine) newValue); + return; + case UMLPackage.INTERFACE__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERFACE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERFACE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERFACE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERFACE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERFACE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERFACE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.INTERFACE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.INTERFACE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.INTERFACE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.INTERFACE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERFACE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.INTERFACE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.INTERFACE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.INTERFACE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.INTERFACE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.INTERFACE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.INTERFACE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.INTERFACE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.INTERFACE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.INTERFACE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.INTERFACE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.INTERFACE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.INTERFACE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.INTERFACE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.INTERFACE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.INTERFACE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.INTERFACE__REDEFINED_INTERFACE : + getRedefinedInterfaces().clear(); + return; + case UMLPackage.INTERFACE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.INTERFACE__PROTOCOL : + setProtocol((ProtocolStateMachine) null); + return; + case UMLPackage.INTERFACE__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERFACE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERFACE__OWNER : + return isSetOwner(); + case UMLPackage.INTERFACE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERFACE__NAME : + String name = eVirtualIsSet(UMLPackage.INTERFACE__NAME) + ? (String) eVirtualGet(UMLPackage.INTERFACE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERFACE__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERFACE__VISIBILITY) + && eVirtualGet(UMLPackage.INTERFACE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERFACE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERFACE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERFACE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERFACE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERFACE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERFACE__NAME_EXPRESSION) != null; + case UMLPackage.INTERFACE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.INTERFACE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.INTERFACE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.INTERFACE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.INTERFACE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.INTERFACE__MEMBER : + return isSetMembers(); + case UMLPackage.INTERFACE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.INTERFACE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.INTERFACE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.INTERFACE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.INTERFACE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.INTERFACE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INTERFACE__TEMPLATE_PARAMETER) != null; + case UMLPackage.INTERFACE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INTERFACE__PACKAGE : + return getPackage() != null; + case UMLPackage.INTERFACE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.INTERFACE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.INTERFACE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.INTERFACE__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.INTERFACE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.INTERFACE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.INTERFACE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.INTERFACE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.INTERFACE__FEATURE : + return isSetFeatures(); + case UMLPackage.INTERFACE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.INTERFACE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.INTERFACE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.INTERFACE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.INTERFACE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.INTERFACE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.INTERFACE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.INTERFACE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.INTERFACE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.INTERFACE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.INTERFACE__REPRESENTATION : + return eVirtualGet(UMLPackage.INTERFACE__REPRESENTATION) != null; + case UMLPackage.INTERFACE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.INTERFACE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.INTERFACE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.INTERFACE__OWNED_SIGNATURE) != null; + case UMLPackage.INTERFACE__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.INTERFACE__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.INTERFACE__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.INTERFACE__REDEFINED_INTERFACE : + List redefinedInterface = (List) eVirtualGet(UMLPackage.INTERFACE__REDEFINED_INTERFACE); + return redefinedInterface != null + && !redefinedInterface.isEmpty(); + case UMLPackage.INTERFACE__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.INTERFACE__PROTOCOL : + return eVirtualGet(UMLPackage.INTERFACE__PROTOCOL) != null; + case UMLPackage.INTERFACE__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.INTERFACE__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() + || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedAttribute()) + || eIsSet(UMLPackage.eINSTANCE.getInterface_NestedClassifier()) + || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedReception()) + || eIsSet(UMLPackage.eINSTANCE.getInterface_Protocol()) + || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedOperation()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getInterface_RedefinedInterface()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedReception()) + || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedOperation()); + } + +} //InterfaceImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceRealizationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceRealizationImpl.java new file mode 100644 index 00000000..325874a9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceRealizationImpl.java @@ -0,0 +1,636 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterfaceRealizationImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Interface Realization'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getClients Client}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getContract Contract}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getImplementingClassifier Implementing Classifier}
  • + *
+ *

+ * + * @generated + */ +public class InterfaceRealizationImpl + extends RealizationImpl + implements InterfaceRealization { + + /** + * + * + * @generated + */ + protected InterfaceRealizationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInterfaceRealization(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__TARGET); + if (target == null) { + eVirtualSet( + UMLPackage.INTERFACE_REALIZATION__TARGET, + target = new DerivedUnionEObjectEList( + Element.class, + this, + UMLPackage.INTERFACE_REALIZATION__TARGET, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Supplier(), + UMLPackage.eINSTANCE.getInterfaceRealization_Contract()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.INTERFACE_REALIZATION__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.INTERFACE_REALIZATION__SOURCE, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Client(), + UMLPackage.eINSTANCE + .getInterfaceRealization_ImplementingClassifier()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getSuppliers() { + List supplier = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__SUPPLIER); + if (supplier == null) { + eVirtualSet(UMLPackage.INTERFACE_REALIZATION__SUPPLIER, + supplier = new SupersetEObjectResolvingEList( + NamedElement.class, this, + UMLPackage.INTERFACE_REALIZATION__SUPPLIER, + new int[]{UMLPackage.INTERFACE_REALIZATION__CONTRACT})); + } + return supplier; + } + + /** + * + * + * @generated + */ + public List getClients() { + List client = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CLIENT); + if (client == null) { + eVirtualSet( + UMLPackage.INTERFACE_REALIZATION__CLIENT, + client = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + NamedElement.class, + this, + UMLPackage.INTERFACE_REALIZATION__CLIENT, + new int[]{UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER}, + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY)); + } + return client; + } + + /** + * + * + * @generated + */ + public Interface getContract() { + Interface contract = (Interface) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CONTRACT); + if (contract != null && contract.eIsProxy()) { + Interface oldContract = contract; + contract = (Interface) eResolveProxy((InternalEObject) contract); + if (contract != oldContract) { + eVirtualSet(UMLPackage.INTERFACE_REALIZATION__CONTRACT, + contract); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INTERFACE_REALIZATION__CONTRACT, + oldContract, contract)); + } + } + return contract; + } + + /** + * + * + * @generated + */ + public Interface basicGetContract() { + return (Interface) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CONTRACT); + } + + /** + * + * + * @generated + */ + public void setContract(Interface newContract) { + if (newContract != null && !getSuppliers().contains(newContract)) { + getSuppliers().add(newContract); + } + Interface contract = newContract; + Object oldContract = eVirtualSet( + UMLPackage.INTERFACE_REALIZATION__CONTRACT, contract); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERFACE_REALIZATION__CONTRACT, + oldContract == EVIRTUAL_NO_VALUE + ? null + : oldContract, contract)); + + } + + /** + * + * + * @generated + */ + public BehavioredClassifier getImplementingClassifier() { + if (eContainerFeatureID != UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER) + return null; + return (BehavioredClassifier) eContainer; + } + + /** + * + * + * @generated + */ + public void setImplementingClassifier( + BehavioredClassifier newImplementingClassifier) { + if (newImplementingClassifier != null + && !getClients().contains(newImplementingClassifier)) { + getClients().add(newImplementingClassifier); + } + if (newImplementingClassifier != eContainer + || (eContainerFeatureID != UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER && newImplementingClassifier != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newImplementingClassifier)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newImplementingClassifier != null) + msgs = ((InternalEObject) newImplementingClassifier) + .eInverseAdd( + this, + UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION, + BehavioredClassifier.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newImplementingClassifier, + UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER, + newImplementingClassifier, newImplementingClassifier)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERFACE_REALIZATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.INTERFACE_REALIZATION__CLIENT : + return ((InternalEList) getClients()).basicAdd(otherEnd, + msgs); + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERFACE_REALIZATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE_REALIZATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INTERFACE_REALIZATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.INTERFACE_REALIZATION__CLIENT : + return ((InternalEList) getClients()).basicRemove(otherEnd, + msgs); + case UMLPackage.INTERFACE_REALIZATION__MAPPING : + return basicSetMapping(null, msgs); + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + return eBasicSetContainer( + null, + UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + return eContainer + .eInverseRemove( + this, + UMLPackage.BEHAVIORED_CLASSIFIER__INTERFACE_REALIZATION, + BehavioredClassifier.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE_REALIZATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERFACE_REALIZATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERFACE_REALIZATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERFACE_REALIZATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERFACE_REALIZATION__NAME : + return getName(); + case UMLPackage.INTERFACE_REALIZATION__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERFACE_REALIZATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERFACE_REALIZATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERFACE_REALIZATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INTERFACE_REALIZATION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.INTERFACE_REALIZATION__SOURCE : + return getSources(); + case UMLPackage.INTERFACE_REALIZATION__TARGET : + return getTargets(); + case UMLPackage.INTERFACE_REALIZATION__SUPPLIER : + return getSuppliers(); + case UMLPackage.INTERFACE_REALIZATION__CLIENT : + return getClients(); + case UMLPackage.INTERFACE_REALIZATION__MAPPING : + return getMapping(); + case UMLPackage.INTERFACE_REALIZATION__CONTRACT : + if (resolve) + return getContract(); + return basicGetContract(); + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + return getImplementingClassifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE_REALIZATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__MAPPING : + setMapping((OpaqueExpression) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__CONTRACT : + setContract((Interface) newValue); + return; + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + setImplementingClassifier((BehavioredClassifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE_REALIZATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERFACE_REALIZATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERFACE_REALIZATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERFACE_REALIZATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERFACE_REALIZATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERFACE_REALIZATION__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.INTERFACE_REALIZATION__CLIENT : + getClients().clear(); + return; + case UMLPackage.INTERFACE_REALIZATION__MAPPING : + setMapping((OpaqueExpression) null); + return; + case UMLPackage.INTERFACE_REALIZATION__CONTRACT : + setContract((Interface) null); + return; + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + setImplementingClassifier((BehavioredClassifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERFACE_REALIZATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERFACE_REALIZATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERFACE_REALIZATION__OWNER : + return isSetOwner(); + case UMLPackage.INTERFACE_REALIZATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERFACE_REALIZATION__NAME : + String name = eVirtualIsSet(UMLPackage.INTERFACE_REALIZATION__NAME) + ? (String) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERFACE_REALIZATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERFACE_REALIZATION__VISIBILITY) + && eVirtualGet(UMLPackage.INTERFACE_REALIZATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERFACE_REALIZATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERFACE_REALIZATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERFACE_REALIZATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERFACE_REALIZATION__NAME_EXPRESSION) != null; + case UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INTERFACE_REALIZATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.INTERFACE_REALIZATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INTERFACE_REALIZATION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.INTERFACE_REALIZATION__SOURCE : + return isSetSources(); + case UMLPackage.INTERFACE_REALIZATION__TARGET : + return isSetTargets(); + case UMLPackage.INTERFACE_REALIZATION__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.INTERFACE_REALIZATION__CLIENT : + List client = (List) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CLIENT); + return client != null && !client.isEmpty(); + case UMLPackage.INTERFACE_REALIZATION__MAPPING : + return eVirtualGet(UMLPackage.INTERFACE_REALIZATION__MAPPING) != null; + case UMLPackage.INTERFACE_REALIZATION__CONTRACT : + return eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CONTRACT) != null; + case UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER : + return getImplementingClassifier() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getInterfaceRealization_Contract()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE + .getInterfaceRealization_ImplementingClassifier()); + } + +} //InterfaceRealizationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java new file mode 100644 index 00000000..9b3e760d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java @@ -0,0 +1,381 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterruptibleActivityRegionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.InterruptibleActivityRegionOperations; + +/** + * + * An implementation of the model object 'Interruptible Activity Region'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl#getContainedNodes Contained Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl#getInterruptingEdges Interrupting Edge}
  • + *
+ *

+ * + * @generated + */ +public class InterruptibleActivityRegionImpl + extends ActivityGroupImpl + implements InterruptibleActivityRegion { + + /** + * + * + * @generated + */ + protected InterruptibleActivityRegionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInterruptibleActivityRegion(); + } + + /** + * + * + * @generated + */ + public List getContainedNodes() { + List containedNode = (List) eVirtualGet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE); + if (containedNode == null) { + eVirtualSet( + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE, + containedNode = new DerivedUnionEObjectEList( + ActivityNode.class, this, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInterruptibleActivityRegion_Node()})); + } + return containedNode; + } + + /** + * + * + * @generated + */ + public List getNodes() { + List node = (List) eVirtualGet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE); + if (node == null) { + eVirtualSet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE, + node = new EObjectWithInverseResolvingEList.ManyInverse( + ActivityNode.class, this, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE, + UMLPackage.ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION)); + } + return node; + } + + /** + * + * + * @generated + */ + public ActivityNode getNode(String name) { + for (Iterator i = getNodes().iterator(); i.hasNext();) { + ActivityNode node = (ActivityNode) i.next(); + if (name.equals(node.getName())) { + return node; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInterruptingEdges() { + List interruptingEdge = (List) eVirtualGet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE); + if (interruptingEdge == null) { + eVirtualSet( + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE, + interruptingEdge = new EObjectWithInverseResolvingEList( + ActivityEdge.class, + this, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE, + UMLPackage.ACTIVITY_EDGE__INTERRUPTS)); + } + return interruptingEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getInterruptingEdge(String name) { + for (Iterator i = getInterruptingEdges().iterator(); i.hasNext();) { + ActivityEdge interruptingEdge = (ActivityEdge) i.next(); + if (name.equals(interruptingEdge.getName())) { + return interruptingEdge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateInterruptingEdges(DiagnosticChain diagnostics, + Map context) { + return InterruptibleActivityRegionOperations.validateInterruptingEdges( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY, + msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE : + return ((InternalEList) getNodes()) + .basicAdd(otherEnd, msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE : + return ((InternalEList) getInterruptingEdges()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY, + msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE : + return ((InternalEList) getInterruptingEdges()) + .basicRemove(otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__SUBGROUP : + return getSubgroups(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE : + return getNodes(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE : + return getInterruptingEdges(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE : + getInterruptingEdges().clear(); + getInterruptingEdges().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE : + getNodes().clear(); + return; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE : + getInterruptingEdges().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNER : + return isSetOwner(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE : + List node = (List) eVirtualGet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE : + List interruptingEdge = (List) eVirtualGet(UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGE); + return interruptingEdge != null && !interruptingEdge.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetContainedNodes() { + return super.isSetContainedNodes() + || eIsSet(UMLPackage.eINSTANCE + .getInterruptibleActivityRegion_Node()); + } + +} //InterruptibleActivityRegionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalConstraintImpl.java new file mode 100644 index 00000000..0409844b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalConstraintImpl.java @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: IntervalConstraintImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.IntervalConstraint; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * An implementation of the model object 'Interval Constraint'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl#getSpecification Specification}
  • + *
+ *

+ * + * @generated + */ +public class IntervalConstraintImpl + extends ConstraintImpl + implements IntervalConstraint { + + /** + * + * + * @generated + */ + protected IntervalConstraintImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getIntervalConstraint(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getSpecification() { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION); + return specification; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSpecification( + ValueSpecification newSpecification, NotificationChain msgs) { + Object oldSpecification = eVirtualSet( + UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION, newSpecification); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION, + oldSpecification == EVIRTUAL_NO_VALUE + ? null + : oldSpecification, newSpecification); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSpecification(ValueSpecification newSpecification) { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION); + if (newSpecification != specification) { + NotificationChain msgs = null; + if (specification != null) + msgs = ((InternalEObject) specification).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION, null, + msgs); + if (newSpecification != null) + msgs = ((InternalEObject) newSpecification).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION, null, + msgs); + msgs = basicSetSpecification(newSpecification, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION, + newSpecification, newSpecification)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createSpecification(EClass eClass) { + ValueSpecification newSpecification = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setSpecification(newSpecification); + return newSpecification; + } + + /** + * + * + * @generated + */ + public boolean isSetSpecification() { + return eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERVAL_CONSTRAINT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERVAL_CONSTRAINT__NAME : + return getName(); + case UMLPackage.INTERVAL_CONSTRAINT__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERVAL_CONSTRAINT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERVAL_CONSTRAINT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERVAL_CONSTRAINT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERVAL_CONSTRAINT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERVAL_CONSTRAINT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INTERVAL_CONSTRAINT__CONSTRAINED_ELEMENT : + return getConstrainedElements(); + case UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION : + return getSpecification(); + case UMLPackage.INTERVAL_CONSTRAINT__CONTEXT : + return getContext(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERVAL_CONSTRAINT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNER : + return isSetOwner(); + case UMLPackage.INTERVAL_CONSTRAINT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERVAL_CONSTRAINT__NAME : + String name = eVirtualIsSet(UMLPackage.INTERVAL_CONSTRAINT__NAME) + ? (String) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERVAL_CONSTRAINT__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERVAL_CONSTRAINT__VISIBILITY) + && eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERVAL_CONSTRAINT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERVAL_CONSTRAINT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERVAL_CONSTRAINT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERVAL_CONSTRAINT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__NAME_EXPRESSION) != null; + case UMLPackage.INTERVAL_CONSTRAINT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__TEMPLATE_PARAMETER) != null; + case UMLPackage.INTERVAL_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INTERVAL_CONSTRAINT__CONSTRAINED_ELEMENT : + List constrainedElement = (List) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__CONSTRAINED_ELEMENT); + return constrainedElement != null + && !constrainedElement.isEmpty(); + case UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION : + return eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION) != null; + case UMLPackage.INTERVAL_CONSTRAINT__CONTEXT : + return getContext() != null; + } + return eDynamicIsSet(eFeature); + } + +} //IntervalConstraintImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalImpl.java new file mode 100644 index 00000000..6da09521 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalImpl.java @@ -0,0 +1,355 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: IntervalImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Interval; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Interval'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.IntervalImpl#getMin Min}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.IntervalImpl#getMax Max}
  • + *
+ *

+ * + * @generated + */ +public class IntervalImpl + extends ValueSpecificationImpl + implements Interval { + + /** + * + * + * @generated + */ + protected IntervalImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInterval(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getMin() { + ValueSpecification min = (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL__MIN); + if (min != null && min.eIsProxy()) { + ValueSpecification oldMin = min; + min = (ValueSpecification) eResolveProxy((InternalEObject) min); + if (min != oldMin) { + eVirtualSet(UMLPackage.INTERVAL__MIN, min); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INTERVAL__MIN, oldMin, min)); + } + } + return min; + } + + /** + * + * + * @generated + */ + public ValueSpecification basicGetMin() { + return (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL__MIN); + } + + /** + * + * + * @generated + */ + public void setMin(ValueSpecification newMin) { + ValueSpecification min = newMin; + Object oldMin = eVirtualSet(UMLPackage.INTERVAL__MIN, min); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERVAL__MIN, oldMin == EVIRTUAL_NO_VALUE + ? null + : oldMin, min)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification getMax() { + ValueSpecification max = (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL__MAX); + if (max != null && max.eIsProxy()) { + ValueSpecification oldMax = max; + max = (ValueSpecification) eResolveProxy((InternalEObject) max); + if (max != oldMax) { + eVirtualSet(UMLPackage.INTERVAL__MAX, max); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INTERVAL__MAX, oldMax, max)); + } + } + return max; + } + + /** + * + * + * @generated + */ + public ValueSpecification basicGetMax() { + return (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL__MAX); + } + + /** + * + * + * @generated + */ + public void setMax(ValueSpecification newMax) { + ValueSpecification max = newMax; + Object oldMax = eVirtualSet(UMLPackage.INTERVAL__MAX, max); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INTERVAL__MAX, oldMax == EVIRTUAL_NO_VALUE + ? null + : oldMax, max)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERVAL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INTERVAL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INTERVAL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INTERVAL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INTERVAL__NAME : + return getName(); + case UMLPackage.INTERVAL__VISIBILITY : + return getVisibility(); + case UMLPackage.INTERVAL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INTERVAL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INTERVAL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INTERVAL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INTERVAL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.INTERVAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.INTERVAL__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.INTERVAL__MIN : + if (resolve) + return getMin(); + return basicGetMin(); + case UMLPackage.INTERVAL__MAX : + if (resolve) + return getMax(); + return basicGetMax(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERVAL__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INTERVAL__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INTERVAL__NAME : + setName((String) newValue); + return; + case UMLPackage.INTERVAL__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INTERVAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INTERVAL__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INTERVAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERVAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.INTERVAL__TYPE : + setType((Type) newValue); + return; + case UMLPackage.INTERVAL__MIN : + setMin((ValueSpecification) newValue); + return; + case UMLPackage.INTERVAL__MAX : + setMax((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERVAL__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INTERVAL__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INTERVAL__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INTERVAL__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INTERVAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INTERVAL__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INTERVAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERVAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.INTERVAL__TYPE : + setType((Type) null); + return; + case UMLPackage.INTERVAL__MIN : + setMin((ValueSpecification) null); + return; + case UMLPackage.INTERVAL__MAX : + setMax((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INTERVAL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INTERVAL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INTERVAL__OWNER : + return isSetOwner(); + case UMLPackage.INTERVAL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INTERVAL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INTERVAL__NAME : + String name = eVirtualIsSet(UMLPackage.INTERVAL__NAME) + ? (String) eVirtualGet(UMLPackage.INTERVAL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INTERVAL__VISIBILITY : + return eVirtualIsSet(UMLPackage.INTERVAL__VISIBILITY) + && eVirtualGet(UMLPackage.INTERVAL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INTERVAL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INTERVAL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INTERVAL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INTERVAL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INTERVAL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INTERVAL__NAME_EXPRESSION) != null; + case UMLPackage.INTERVAL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.INTERVAL__TEMPLATE_PARAMETER) != null; + case UMLPackage.INTERVAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.INTERVAL__TYPE : + return eVirtualGet(UMLPackage.INTERVAL__TYPE) != null; + case UMLPackage.INTERVAL__MIN : + return eVirtualGet(UMLPackage.INTERVAL__MIN) != null; + case UMLPackage.INTERVAL__MAX : + return eVirtualGet(UMLPackage.INTERVAL__MAX) != null; + } + return eDynamicIsSet(eFeature); + } + +} //IntervalImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java new file mode 100644 index 00000000..7d102945 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java @@ -0,0 +1,597 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InvocationActionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.InvocationAction; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.InvocationActionOperations; + +/** + * + * An implementation of the model object 'Invocation Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl#getArguments Argument}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl#getOnPort On Port}
  • + *
+ *

+ * + * @generated + */ +public abstract class InvocationActionImpl + extends ActionImpl + implements InvocationAction { + + /** + * + * + * @generated + */ + protected InvocationActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getInvocationAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.INVOCATION_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.INVOCATION_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getInvocationAction_Argument()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getArguments() { + List argument = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__ARGUMENT); + if (argument == null) { + eVirtualSet(UMLPackage.INVOCATION_ACTION__ARGUMENT, + argument = new EObjectContainmentEList(InputPin.class, this, + UMLPackage.INVOCATION_ACTION__ARGUMENT)); + } + return argument; + } + + /** + * + * + * @generated + */ + public InputPin createArgument(EClass eClass) { + InputPin newArgument = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getArguments().add(newArgument); + return newArgument; + } + + /** + * + * + * @generated + */ + public InputPin createArgument() { + InputPin newArgument = UMLFactory.eINSTANCE.createInputPin(); + getArguments().add(newArgument); + return newArgument; + } + + /** + * + * + * @generated + */ + public InputPin getArgument(String name) { + for (Iterator i = getArguments().iterator(); i.hasNext();) { + InputPin argument = (InputPin) i.next(); + if (name.equals(argument.getName())) { + return argument; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Port getOnPort() { + Port onPort = (Port) eVirtualGet(UMLPackage.INVOCATION_ACTION__ON_PORT); + if (onPort != null && onPort.eIsProxy()) { + Port oldOnPort = onPort; + onPort = (Port) eResolveProxy((InternalEObject) onPort); + if (onPort != oldOnPort) { + eVirtualSet(UMLPackage.INVOCATION_ACTION__ON_PORT, onPort); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.INVOCATION_ACTION__ON_PORT, oldOnPort, + onPort)); + } + } + return onPort; + } + + /** + * + * + * @generated + */ + public Port basicGetOnPort() { + return (Port) eVirtualGet(UMLPackage.INVOCATION_ACTION__ON_PORT); + } + + /** + * + * + * @generated + */ + public void setOnPort(Port newOnPort) { + Port onPort = newOnPort; + Object oldOnPort = eVirtualSet(UMLPackage.INVOCATION_ACTION__ON_PORT, + onPort); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.INVOCATION_ACTION__ON_PORT, + oldOnPort == EVIRTUAL_NO_VALUE + ? null + : oldOnPort, onPort)); + + } + + /** + * + * + * @generated + */ + public boolean validateOnPort(DiagnosticChain diagnostics, Map context) { + return InvocationActionOperations.validateOnPort(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.INVOCATION_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.INVOCATION_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.INVOCATION_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.INVOCATION_ACTION__ACTIVITY, msgs); + case UMLPackage.INVOCATION_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.INVOCATION_ACTION__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INVOCATION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.INVOCATION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.INVOCATION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.INVOCATION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.INVOCATION_ACTION__NAME : + return getName(); + case UMLPackage.INVOCATION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.INVOCATION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.INVOCATION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.INVOCATION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.INVOCATION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.INVOCATION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.INVOCATION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.INVOCATION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.INVOCATION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.INVOCATION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.INVOCATION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.INVOCATION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.INVOCATION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.INVOCATION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.INVOCATION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.INVOCATION_ACTION__INPUT : + return getInputs(); + case UMLPackage.INVOCATION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.INVOCATION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.INVOCATION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.INVOCATION_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.INVOCATION_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INVOCATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.INVOCATION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.INVOCATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.INVOCATION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.INVOCATION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.INVOCATION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.INVOCATION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.INVOCATION_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INVOCATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.INVOCATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.INVOCATION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.INVOCATION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.INVOCATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.INVOCATION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.INVOCATION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.INVOCATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.INVOCATION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.INVOCATION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.INVOCATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.INVOCATION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.INVOCATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.INVOCATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.INVOCATION_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.INVOCATION_ACTION__ON_PORT : + setOnPort((Port) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.INVOCATION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.INVOCATION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.INVOCATION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.INVOCATION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.INVOCATION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.INVOCATION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.INVOCATION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.INVOCATION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.INVOCATION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.INVOCATION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.INVOCATION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.INVOCATION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.INVOCATION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.INVOCATION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.INVOCATION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.INVOCATION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.INVOCATION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.INVOCATION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.INVOCATION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.INVOCATION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.INVOCATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.INVOCATION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.INVOCATION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.INVOCATION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.INVOCATION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.INVOCATION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.INVOCATION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.INVOCATION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.INVOCATION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.INVOCATION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.INVOCATION_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.INVOCATION_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.INVOCATION_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.INVOCATION_ACTION__ON_PORT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getInvocationAction_Argument()); + } + +} //InvocationActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java new file mode 100644 index 00000000..8ffefc73 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java @@ -0,0 +1,581 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: JoinNodeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.JoinNode; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.JoinNodeOperations; + +/** + * + * An implementation of the model object 'Join Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl#isCombineDuplicate Is Combine Duplicate}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl#getJoinSpec Join Spec}
  • + *
+ *

+ * + * @generated + */ +public class JoinNodeImpl + extends ControlNodeImpl + implements JoinNode { + + /** + * The default value of the '{@link #isCombineDuplicate() Is Combine Duplicate}' attribute. + * + * + * @see #isCombineDuplicate() + * @generated + * @ordered + */ + protected static final boolean IS_COMBINE_DUPLICATE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isCombineDuplicate() Is Combine Duplicate}' attribute. + * + * + * @see #isCombineDuplicate() + * @generated + * @ordered + */ + protected static final int IS_COMBINE_DUPLICATE_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected JoinNodeImpl() { + super(); + eFlags |= IS_COMBINE_DUPLICATE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getJoinNode(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.JOIN_NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.JOIN_NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.JOIN_NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getJoinNode_JoinSpec()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isCombineDuplicate() { + return (eFlags & IS_COMBINE_DUPLICATE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsCombineDuplicate(boolean newIsCombineDuplicate) { + boolean oldIsCombineDuplicate = (eFlags & IS_COMBINE_DUPLICATE_EFLAG) != 0; + if (newIsCombineDuplicate) + eFlags |= IS_COMBINE_DUPLICATE_EFLAG; + else + eFlags &= ~IS_COMBINE_DUPLICATE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE, + oldIsCombineDuplicate, newIsCombineDuplicate)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification getJoinSpec() { + ValueSpecification joinSpec = (ValueSpecification) eVirtualGet(UMLPackage.JOIN_NODE__JOIN_SPEC); + return joinSpec; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetJoinSpec(ValueSpecification newJoinSpec, + NotificationChain msgs) { + Object oldJoinSpec = eVirtualSet(UMLPackage.JOIN_NODE__JOIN_SPEC, + newJoinSpec); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.JOIN_NODE__JOIN_SPEC, + oldJoinSpec == EVIRTUAL_NO_VALUE + ? null + : oldJoinSpec, newJoinSpec); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setJoinSpec(ValueSpecification newJoinSpec) { + ValueSpecification joinSpec = (ValueSpecification) eVirtualGet(UMLPackage.JOIN_NODE__JOIN_SPEC); + if (newJoinSpec != joinSpec) { + NotificationChain msgs = null; + if (joinSpec != null) + msgs = ((InternalEObject) joinSpec).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.JOIN_NODE__JOIN_SPEC, + null, msgs); + if (newJoinSpec != null) + msgs = ((InternalEObject) newJoinSpec).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.JOIN_NODE__JOIN_SPEC, + null, msgs); + msgs = basicSetJoinSpec(newJoinSpec, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.JOIN_NODE__JOIN_SPEC, newJoinSpec, newJoinSpec)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createJoinSpec(EClass eClass) { + ValueSpecification newJoinSpec = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setJoinSpec(newJoinSpec); + return newJoinSpec; + } + + /** + * + * + * @generated + */ + public boolean validateOneOutgoingEdge(DiagnosticChain diagnostics, + Map context) { + return JoinNodeOperations.validateOneOutgoingEdge(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateIncomingObjectFlow(DiagnosticChain diagnostics, + Map context) { + return JoinNodeOperations.validateIncomingObjectFlow(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.JOIN_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.JOIN_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.JOIN_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.JOIN_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.JOIN_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.JOIN_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.JOIN_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.JOIN_NODE__ACTIVITY, msgs); + case UMLPackage.JOIN_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.JOIN_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.JOIN_NODE__JOIN_SPEC : + return basicSetJoinSpec(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.JOIN_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.JOIN_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.JOIN_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.JOIN_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.JOIN_NODE__NAME : + return getName(); + case UMLPackage.JOIN_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.JOIN_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.JOIN_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.JOIN_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.JOIN_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.JOIN_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.JOIN_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.JOIN_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.JOIN_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.JOIN_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.JOIN_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.JOIN_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.JOIN_NODE__INCOMING : + return getIncomings(); + case UMLPackage.JOIN_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.JOIN_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE : + return isCombineDuplicate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.JOIN_NODE__JOIN_SPEC : + return getJoinSpec(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.JOIN_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.JOIN_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.JOIN_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.JOIN_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.JOIN_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.JOIN_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.JOIN_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE : + setIsCombineDuplicate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.JOIN_NODE__JOIN_SPEC : + setJoinSpec((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.JOIN_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.JOIN_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.JOIN_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.JOIN_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.JOIN_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.JOIN_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.JOIN_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.JOIN_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.JOIN_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.JOIN_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.JOIN_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.JOIN_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.JOIN_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE : + setIsCombineDuplicate(IS_COMBINE_DUPLICATE_EDEFAULT); + return; + case UMLPackage.JOIN_NODE__JOIN_SPEC : + setJoinSpec((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.JOIN_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.JOIN_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.JOIN_NODE__OWNER : + return isSetOwner(); + case UMLPackage.JOIN_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.JOIN_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.JOIN_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.JOIN_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.JOIN_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.JOIN_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.JOIN_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.JOIN_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.JOIN_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.JOIN_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.JOIN_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.JOIN_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.JOIN_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.JOIN_NODE__NAME_EXPRESSION) != null; + case UMLPackage.JOIN_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.JOIN_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.JOIN_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.JOIN_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.JOIN_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.JOIN_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.JOIN_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.JOIN_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.JOIN_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.JOIN_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.JOIN_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.JOIN_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.JOIN_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.JOIN_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.JOIN_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.JOIN_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.JOIN_NODE__IS_COMBINE_DUPLICATE : + return ((eFlags & IS_COMBINE_DUPLICATE_EFLAG) != 0) != IS_COMBINE_DUPLICATE_EDEFAULT; + case UMLPackage.JOIN_NODE__JOIN_SPEC : + return eVirtualGet(UMLPackage.JOIN_NODE__JOIN_SPEC) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isCombineDuplicate: "); //$NON-NLS-1$ + result.append((eFlags & IS_COMBINE_DUPLICATE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getJoinNode_JoinSpec()); + } + +} //JoinNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java new file mode 100644 index 00000000..45bc3a1f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java @@ -0,0 +1,698 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LifelineImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PartDecomposition; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LifelineOperations; + +/** + * + * An implementation of the model object 'Lifeline'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getRepresents Represents}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getInteraction Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getSelector Selector}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getDecomposedAs Decomposed As}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getCoveredBys Covered By}
  • + *
+ *

+ * + * @generated + */ +public class LifelineImpl + extends NamedElementImpl + implements Lifeline { + + /** + * + * + * @generated + */ + protected LifelineImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLifeline(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.LIFELINE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.LIFELINE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.LIFELINE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getLifeline_Selector()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public ConnectableElement getRepresents() { + ConnectableElement represents = (ConnectableElement) eVirtualGet(UMLPackage.LIFELINE__REPRESENTS); + if (represents != null && represents.eIsProxy()) { + ConnectableElement oldRepresents = represents; + represents = (ConnectableElement) eResolveProxy((InternalEObject) represents); + if (represents != oldRepresents) { + eVirtualSet(UMLPackage.LIFELINE__REPRESENTS, represents); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LIFELINE__REPRESENTS, oldRepresents, + represents)); + } + } + return represents; + } + + /** + * + * + * @generated + */ + public ConnectableElement basicGetRepresents() { + return (ConnectableElement) eVirtualGet(UMLPackage.LIFELINE__REPRESENTS); + } + + /** + * + * + * @generated + */ + public void setRepresents(ConnectableElement newRepresents) { + ConnectableElement represents = newRepresents; + Object oldRepresents = eVirtualSet(UMLPackage.LIFELINE__REPRESENTS, + represents); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LIFELINE__REPRESENTS, + oldRepresents == EVIRTUAL_NO_VALUE + ? null + : oldRepresents, represents)); + + } + + /** + * + * + * @generated + */ + public Interaction getInteraction() { + if (eContainerFeatureID != UMLPackage.LIFELINE__INTERACTION) + return null; + return (Interaction) eContainer; + } + + /** + * + * + * @generated + */ + public void setInteraction(Interaction newInteraction) { + if (newInteraction != eContainer + || (eContainerFeatureID != UMLPackage.LIFELINE__INTERACTION && newInteraction != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInteraction)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInteraction != null) + msgs = ((InternalEObject) newInteraction).eInverseAdd(this, + UMLPackage.INTERACTION__LIFELINE, Interaction.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newInteraction, + UMLPackage.LIFELINE__INTERACTION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LIFELINE__INTERACTION, newInteraction, + newInteraction)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification getSelector() { + ValueSpecification selector = (ValueSpecification) eVirtualGet(UMLPackage.LIFELINE__SELECTOR); + return selector; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSelector(ValueSpecification newSelector, + NotificationChain msgs) { + Object oldSelector = eVirtualSet(UMLPackage.LIFELINE__SELECTOR, + newSelector); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.LIFELINE__SELECTOR, + oldSelector == EVIRTUAL_NO_VALUE + ? null + : oldSelector, newSelector); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSelector(ValueSpecification newSelector) { + ValueSpecification selector = (ValueSpecification) eVirtualGet(UMLPackage.LIFELINE__SELECTOR); + if (newSelector != selector) { + NotificationChain msgs = null; + if (selector != null) + msgs = ((InternalEObject) selector).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.LIFELINE__SELECTOR, + null, msgs); + if (newSelector != null) + msgs = ((InternalEObject) newSelector).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.LIFELINE__SELECTOR, + null, msgs); + msgs = basicSetSelector(newSelector, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LIFELINE__SELECTOR, newSelector, newSelector)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createSelector(EClass eClass) { + ValueSpecification newSelector = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setSelector(newSelector); + return newSelector; + } + + /** + * + * + * @generated + */ + public PartDecomposition getDecomposedAs() { + PartDecomposition decomposedAs = (PartDecomposition) eVirtualGet(UMLPackage.LIFELINE__DECOMPOSED_AS); + if (decomposedAs != null && decomposedAs.eIsProxy()) { + PartDecomposition oldDecomposedAs = decomposedAs; + decomposedAs = (PartDecomposition) eResolveProxy((InternalEObject) decomposedAs); + if (decomposedAs != oldDecomposedAs) { + eVirtualSet(UMLPackage.LIFELINE__DECOMPOSED_AS, decomposedAs); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LIFELINE__DECOMPOSED_AS, oldDecomposedAs, + decomposedAs)); + } + } + return decomposedAs; + } + + /** + * + * + * @generated + */ + public PartDecomposition basicGetDecomposedAs() { + return (PartDecomposition) eVirtualGet(UMLPackage.LIFELINE__DECOMPOSED_AS); + } + + /** + * + * + * @generated + */ + public void setDecomposedAs(PartDecomposition newDecomposedAs) { + PartDecomposition decomposedAs = newDecomposedAs; + Object oldDecomposedAs = eVirtualSet( + UMLPackage.LIFELINE__DECOMPOSED_AS, decomposedAs); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LIFELINE__DECOMPOSED_AS, + oldDecomposedAs == EVIRTUAL_NO_VALUE + ? null + : oldDecomposedAs, decomposedAs)); + + } + + /** + * + * + * @generated + */ + public List getCoveredBys() { + List coveredBy = (List) eVirtualGet(UMLPackage.LIFELINE__COVERED_BY); + if (coveredBy == null) { + eVirtualSet(UMLPackage.LIFELINE__COVERED_BY, + coveredBy = new EObjectWithInverseResolvingEList.ManyInverse( + InteractionFragment.class, this, + UMLPackage.LIFELINE__COVERED_BY, + UMLPackage.INTERACTION_FRAGMENT__COVERED)); + } + return coveredBy; + } + + /** + * + * + * @generated + */ + public InteractionFragment getCoveredBy(String name) { + for (Iterator i = getCoveredBys().iterator(); i.hasNext();) { + InteractionFragment coveredBy = (InteractionFragment) i.next(); + if (name.equals(coveredBy.getName())) { + return coveredBy; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateInteractionUsesShareLifeline( + DiagnosticChain diagnostics, Map context) { + return LifelineOperations.validateInteractionUsesShareLifeline(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSelectorSpecified(DiagnosticChain diagnostics, + Map context) { + return LifelineOperations.validateSelectorSpecified(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSameClassifier(DiagnosticChain diagnostics, + Map context) { + return LifelineOperations.validateSameClassifier(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.LIFELINE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.LIFELINE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.LIFELINE__INTERACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.LIFELINE__INTERACTION, msgs); + case UMLPackage.LIFELINE__COVERED_BY : + return ((InternalEList) getCoveredBys()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.LIFELINE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.LIFELINE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.LIFELINE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LIFELINE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.LIFELINE__INTERACTION : + return eBasicSetContainer(null, + UMLPackage.LIFELINE__INTERACTION, msgs); + case UMLPackage.LIFELINE__SELECTOR : + return basicSetSelector(null, msgs); + case UMLPackage.LIFELINE__COVERED_BY : + return ((InternalEList) getCoveredBys()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.LIFELINE__INTERACTION : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION__LIFELINE, Interaction.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LIFELINE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LIFELINE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LIFELINE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LIFELINE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LIFELINE__NAME : + return getName(); + case UMLPackage.LIFELINE__VISIBILITY : + return getVisibility(); + case UMLPackage.LIFELINE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LIFELINE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LIFELINE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LIFELINE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LIFELINE__REPRESENTS : + if (resolve) + return getRepresents(); + return basicGetRepresents(); + case UMLPackage.LIFELINE__INTERACTION : + return getInteraction(); + case UMLPackage.LIFELINE__SELECTOR : + return getSelector(); + case UMLPackage.LIFELINE__DECOMPOSED_AS : + if (resolve) + return getDecomposedAs(); + return basicGetDecomposedAs(); + case UMLPackage.LIFELINE__COVERED_BY : + return getCoveredBys(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LIFELINE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LIFELINE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LIFELINE__NAME : + setName((String) newValue); + return; + case UMLPackage.LIFELINE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LIFELINE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LIFELINE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LIFELINE__REPRESENTS : + setRepresents((ConnectableElement) newValue); + return; + case UMLPackage.LIFELINE__INTERACTION : + setInteraction((Interaction) newValue); + return; + case UMLPackage.LIFELINE__SELECTOR : + setSelector((ValueSpecification) newValue); + return; + case UMLPackage.LIFELINE__DECOMPOSED_AS : + setDecomposedAs((PartDecomposition) newValue); + return; + case UMLPackage.LIFELINE__COVERED_BY : + getCoveredBys().clear(); + getCoveredBys().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LIFELINE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LIFELINE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LIFELINE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LIFELINE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LIFELINE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LIFELINE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LIFELINE__REPRESENTS : + setRepresents((ConnectableElement) null); + return; + case UMLPackage.LIFELINE__INTERACTION : + setInteraction((Interaction) null); + return; + case UMLPackage.LIFELINE__SELECTOR : + setSelector((ValueSpecification) null); + return; + case UMLPackage.LIFELINE__DECOMPOSED_AS : + setDecomposedAs((PartDecomposition) null); + return; + case UMLPackage.LIFELINE__COVERED_BY : + getCoveredBys().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LIFELINE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LIFELINE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LIFELINE__OWNER : + return isSetOwner(); + case UMLPackage.LIFELINE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LIFELINE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LIFELINE__NAME : + String name = eVirtualIsSet(UMLPackage.LIFELINE__NAME) + ? (String) eVirtualGet(UMLPackage.LIFELINE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LIFELINE__VISIBILITY : + return eVirtualIsSet(UMLPackage.LIFELINE__VISIBILITY) + && eVirtualGet(UMLPackage.LIFELINE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LIFELINE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LIFELINE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LIFELINE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LIFELINE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LIFELINE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LIFELINE__NAME_EXPRESSION) != null; + case UMLPackage.LIFELINE__REPRESENTS : + return eVirtualGet(UMLPackage.LIFELINE__REPRESENTS) != null; + case UMLPackage.LIFELINE__INTERACTION : + return getInteraction() != null; + case UMLPackage.LIFELINE__SELECTOR : + return eVirtualGet(UMLPackage.LIFELINE__SELECTOR) != null; + case UMLPackage.LIFELINE__DECOMPOSED_AS : + return eVirtualGet(UMLPackage.LIFELINE__DECOMPOSED_AS) != null; + case UMLPackage.LIFELINE__COVERED_BY : + List coveredBy = (List) eVirtualGet(UMLPackage.LIFELINE__COVERED_BY); + return coveredBy != null && !coveredBy.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Interaction interaction = getInteraction(); + if (interaction != null) { + return interaction; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getLifeline_Interaction()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getLifeline_Selector()); + } + +} //LifelineImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java new file mode 100644 index 00000000..671c5868 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java @@ -0,0 +1,618 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.LinkAction; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LinkActionOperations; + +/** + * + * An implementation of the model object 'Link Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl#getEndData End Data}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl#getInputValues Input Value}
  • + *
+ *

+ * + * @generated + */ +public abstract class LinkActionImpl + extends ActionImpl + implements LinkAction { + + /** + * + * + * @generated + */ + protected LinkActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLinkAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.LINK_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.LINK_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.LINK_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getLinkAction_InputValue()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getEndData() { + List endData = (List) eVirtualGet(UMLPackage.LINK_ACTION__END_DATA); + if (endData == null) { + eVirtualSet(UMLPackage.LINK_ACTION__END_DATA, + endData = new EObjectContainmentEList(LinkEndData.class, this, + UMLPackage.LINK_ACTION__END_DATA)); + } + return endData; + } + + /** + * + * + * @generated + */ + public LinkEndData createEndData(EClass eClass) { + LinkEndData newEndData = (LinkEndData) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getEndData().add(newEndData); + return newEndData; + } + + /** + * + * + * @generated + */ + public LinkEndData createEndData() { + LinkEndData newEndData = UMLFactory.eINSTANCE.createLinkEndData(); + getEndData().add(newEndData); + return newEndData; + } + + /** + * + * + * @generated + */ + public List getInputValues() { + List inputValue = (List) eVirtualGet(UMLPackage.LINK_ACTION__INPUT_VALUE); + if (inputValue == null) { + eVirtualSet(UMLPackage.LINK_ACTION__INPUT_VALUE, + inputValue = new EObjectContainmentEList(InputPin.class, this, + UMLPackage.LINK_ACTION__INPUT_VALUE)); + } + return inputValue; + } + + /** + * + * + * @generated + */ + public InputPin createInputValue(EClass eClass) { + InputPin newInputValue = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getInputValues().add(newInputValue); + return newInputValue; + } + + /** + * + * + * @generated + */ + public InputPin createInputValue() { + InputPin newInputValue = UMLFactory.eINSTANCE.createInputPin(); + getInputValues().add(newInputValue); + return newInputValue; + } + + /** + * + * + * @generated + */ + public InputPin getInputValue(String name) { + for (Iterator i = getInputValues().iterator(); i.hasNext();) { + InputPin inputValue = (InputPin) i.next(); + if (name.equals(inputValue.getName())) { + return inputValue; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSameAssociation(DiagnosticChain diagnostics, + Map context) { + return LinkActionOperations.validateSameAssociation(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotStatic(DiagnosticChain diagnostics, Map context) { + return LinkActionOperations.validateNotStatic(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSamePins(DiagnosticChain diagnostics, Map context) { + return LinkActionOperations + .validateSamePins(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Association association() { + return LinkActionOperations.association(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.LINK_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LINK_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.LINK_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.LINK_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.LINK_ACTION__ACTIVITY, msgs); + case UMLPackage.LINK_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LINK_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LINK_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LINK_ACTION__END_DATA : + return ((InternalEList) getEndData()).basicRemove(otherEnd, + msgs); + case UMLPackage.LINK_ACTION__INPUT_VALUE : + return ((InternalEList) getInputValues()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LINK_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LINK_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LINK_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LINK_ACTION__NAME : + return getName(); + case UMLPackage.LINK_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.LINK_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LINK_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LINK_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LINK_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LINK_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.LINK_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.LINK_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.LINK_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.LINK_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.LINK_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.LINK_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.LINK_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.LINK_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.LINK_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.LINK_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.LINK_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.LINK_ACTION__INPUT : + return getInputs(); + case UMLPackage.LINK_ACTION__CONTEXT : + return getContext(); + case UMLPackage.LINK_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.LINK_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.LINK_ACTION__END_DATA : + return getEndData(); + case UMLPackage.LINK_ACTION__INPUT_VALUE : + return getInputValues(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.LINK_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LINK_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LINK_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.LINK_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.LINK_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.LINK_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__END_DATA : + getEndData().clear(); + getEndData().addAll((Collection) newValue); + return; + case UMLPackage.LINK_ACTION__INPUT_VALUE : + getInputValues().clear(); + getInputValues().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LINK_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LINK_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LINK_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LINK_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LINK_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LINK_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.LINK_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.LINK_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.LINK_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.LINK_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.LINK_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.LINK_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.LINK_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.LINK_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.LINK_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.LINK_ACTION__END_DATA : + getEndData().clear(); + return; + case UMLPackage.LINK_ACTION__INPUT_VALUE : + getInputValues().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LINK_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LINK_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.LINK_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LINK_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LINK_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.LINK_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.LINK_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LINK_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.LINK_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.LINK_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LINK_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LINK_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LINK_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LINK_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LINK_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LINK_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.LINK_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.LINK_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.LINK_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.LINK_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.LINK_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.LINK_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.LINK_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.LINK_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.LINK_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.LINK_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.LINK_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.LINK_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.LINK_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.LINK_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.LINK_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.LINK_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.LINK_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.LINK_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.LINK_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.LINK_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.LINK_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.LINK_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.LINK_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.LINK_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.LINK_ACTION__END_DATA : + List endData = (List) eVirtualGet(UMLPackage.LINK_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + case UMLPackage.LINK_ACTION__INPUT_VALUE : + List inputValue = (List) eVirtualGet(UMLPackage.LINK_ACTION__INPUT_VALUE); + return inputValue != null && !inputValue.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getLinkAction_InputValue()); + } + +} //LinkActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java new file mode 100644 index 00000000..5a519e86 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndCreationDataImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.LinkEndCreationData; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.LinkEndCreationDataOperations; + +/** + * + * An implementation of the model object 'Link End Creation Data'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl#getInsertAt Insert At}
  • + *
+ *

+ * + * @generated + */ +public class LinkEndCreationDataImpl + extends LinkEndDataImpl + implements LinkEndCreationData { + + /** + * The default value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final boolean IS_REPLACE_ALL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final int IS_REPLACE_ALL_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected LinkEndCreationDataImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLinkEndCreationData(); + } + + /** + * + * + * @generated + */ + public boolean isReplaceAll() { + return (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReplaceAll(boolean newIsReplaceAll) { + boolean oldIsReplaceAll = (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + if (newIsReplaceAll) + eFlags |= IS_REPLACE_ALL_EFLAG; + else + eFlags &= ~IS_REPLACE_ALL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LINK_END_CREATION_DATA__IS_REPLACE_ALL, + oldIsReplaceAll, newIsReplaceAll)); + + } + + /** + * + * + * @generated + */ + public InputPin getInsertAt() { + InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__INSERT_AT); + if (insertAt != null && insertAt.eIsProxy()) { + InputPin oldInsertAt = insertAt; + insertAt = (InputPin) eResolveProxy((InternalEObject) insertAt); + if (insertAt != oldInsertAt) { + eVirtualSet(UMLPackage.LINK_END_CREATION_DATA__INSERT_AT, + insertAt); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LINK_END_CREATION_DATA__INSERT_AT, + oldInsertAt, insertAt)); + } + } + return insertAt; + } + + /** + * + * + * @generated + */ + public InputPin basicGetInsertAt() { + return (InputPin) eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__INSERT_AT); + } + + /** + * + * + * @generated + */ + public void setInsertAt(InputPin newInsertAt) { + InputPin insertAt = newInsertAt; + Object oldInsertAt = eVirtualSet( + UMLPackage.LINK_END_CREATION_DATA__INSERT_AT, insertAt); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LINK_END_CREATION_DATA__INSERT_AT, + oldInsertAt == EVIRTUAL_NO_VALUE + ? null + : oldInsertAt, insertAt)); + + } + + /** + * + * + * @generated + */ + public boolean validateCreateLinkAction(DiagnosticChain diagnostics, + Map context) { + return LinkEndCreationDataOperations.validateCreateLinkAction(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSingleInputPin(DiagnosticChain diagnostics, + Map context) { + return LinkEndCreationDataOperations.validateSingleInputPin(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_CREATION_DATA__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LINK_END_CREATION_DATA__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LINK_END_CREATION_DATA__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LINK_END_CREATION_DATA__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LINK_END_CREATION_DATA__VALUE : + if (resolve) + return getValue(); + return basicGetValue(); + case UMLPackage.LINK_END_CREATION_DATA__END : + if (resolve) + return getEnd(); + return basicGetEnd(); + case UMLPackage.LINK_END_CREATION_DATA__QUALIFIER : + return getQualifiers(); + case UMLPackage.LINK_END_CREATION_DATA__IS_REPLACE_ALL : + return isReplaceAll() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.LINK_END_CREATION_DATA__INSERT_AT : + if (resolve) + return getInsertAt(); + return basicGetInsertAt(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_CREATION_DATA__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_CREATION_DATA__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_CREATION_DATA__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.LINK_END_CREATION_DATA__END : + setEnd((Property) newValue); + return; + case UMLPackage.LINK_END_CREATION_DATA__QUALIFIER : + getQualifiers().clear(); + getQualifiers().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_CREATION_DATA__IS_REPLACE_ALL : + setIsReplaceAll(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.LINK_END_CREATION_DATA__INSERT_AT : + setInsertAt((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_CREATION_DATA__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LINK_END_CREATION_DATA__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LINK_END_CREATION_DATA__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.LINK_END_CREATION_DATA__END : + setEnd((Property) null); + return; + case UMLPackage.LINK_END_CREATION_DATA__QUALIFIER : + getQualifiers().clear(); + return; + case UMLPackage.LINK_END_CREATION_DATA__IS_REPLACE_ALL : + setIsReplaceAll(IS_REPLACE_ALL_EDEFAULT); + return; + case UMLPackage.LINK_END_CREATION_DATA__INSERT_AT : + setInsertAt((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_CREATION_DATA__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LINK_END_CREATION_DATA__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LINK_END_CREATION_DATA__OWNER : + return isSetOwner(); + case UMLPackage.LINK_END_CREATION_DATA__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LINK_END_CREATION_DATA__VALUE : + return eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__VALUE) != null; + case UMLPackage.LINK_END_CREATION_DATA__END : + return eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__END) != null; + case UMLPackage.LINK_END_CREATION_DATA__QUALIFIER : + List qualifier = (List) eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__QUALIFIER); + return qualifier != null && !qualifier.isEmpty(); + case UMLPackage.LINK_END_CREATION_DATA__IS_REPLACE_ALL : + return ((eFlags & IS_REPLACE_ALL_EFLAG) != 0) != IS_REPLACE_ALL_EDEFAULT; + case UMLPackage.LINK_END_CREATION_DATA__INSERT_AT : + return eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__INSERT_AT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isReplaceAll: "); //$NON-NLS-1$ + result.append((eFlags & IS_REPLACE_ALL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //LinkEndCreationDataImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java new file mode 100644 index 00000000..410ac6f1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java @@ -0,0 +1,387 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndDataImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.QualifierValue; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.LinkEndDataOperations; + +/** + * + * An implementation of the model object 'Link End Data'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl#getValue Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl#getEnd End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl#getQualifiers Qualifier}
  • + *
+ *

+ * + * @generated + */ +public class LinkEndDataImpl + extends ElementImpl + implements LinkEndData { + + /** + * + * + * @generated + */ + protected LinkEndDataImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLinkEndData(); + } + + /** + * + * + * @generated + */ + public InputPin getValue() { + InputPin value = (InputPin) eVirtualGet(UMLPackage.LINK_END_DATA__VALUE); + if (value != null && value.eIsProxy()) { + InputPin oldValue = value; + value = (InputPin) eResolveProxy((InternalEObject) value); + if (value != oldValue) { + eVirtualSet(UMLPackage.LINK_END_DATA__VALUE, value); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LINK_END_DATA__VALUE, oldValue, value)); + } + } + return value; + } + + /** + * + * + * @generated + */ + public InputPin basicGetValue() { + return (InputPin) eVirtualGet(UMLPackage.LINK_END_DATA__VALUE); + } + + /** + * + * + * @generated + */ + public void setValue(InputPin newValue) { + InputPin value = newValue; + Object oldValue = eVirtualSet(UMLPackage.LINK_END_DATA__VALUE, value); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LINK_END_DATA__VALUE, oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, value)); + + } + + /** + * + * + * @generated + */ + public Property getEnd() { + Property end = (Property) eVirtualGet(UMLPackage.LINK_END_DATA__END); + if (end != null && end.eIsProxy()) { + Property oldEnd = end; + end = (Property) eResolveProxy((InternalEObject) end); + if (end != oldEnd) { + eVirtualSet(UMLPackage.LINK_END_DATA__END, end); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LINK_END_DATA__END, oldEnd, end)); + } + } + return end; + } + + /** + * + * + * @generated + */ + public Property basicGetEnd() { + return (Property) eVirtualGet(UMLPackage.LINK_END_DATA__END); + } + + /** + * + * + * @generated + */ + public void setEnd(Property newEnd) { + Property end = newEnd; + Object oldEnd = eVirtualSet(UMLPackage.LINK_END_DATA__END, end); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LINK_END_DATA__END, oldEnd == EVIRTUAL_NO_VALUE + ? null + : oldEnd, end)); + + } + + /** + * + * + * @generated + */ + public List getQualifiers() { + List qualifier = (List) eVirtualGet(UMLPackage.LINK_END_DATA__QUALIFIER); + if (qualifier == null) { + eVirtualSet(UMLPackage.LINK_END_DATA__QUALIFIER, + qualifier = new EObjectContainmentEList(QualifierValue.class, + this, UMLPackage.LINK_END_DATA__QUALIFIER)); + } + return qualifier; + } + + /** + * + * + * @generated + */ + public QualifierValue createQualifier() { + QualifierValue newQualifier = UMLFactory.eINSTANCE + .createQualifierValue(); + getQualifiers().add(newQualifier); + return newQualifier; + } + + /** + * + * + * @generated + */ + public boolean validatePropertyIsAssociationEnd( + DiagnosticChain diagnostics, Map context) { + return LinkEndDataOperations.validatePropertyIsAssociationEnd(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return LinkEndDataOperations.validateSameType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return LinkEndDataOperations.validateMultiplicity(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateQualifiers(DiagnosticChain diagnostics, Map context) { + return LinkEndDataOperations.validateQualifiers(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEndObjectInputPin(DiagnosticChain diagnostics, + Map context) { + return LinkEndDataOperations.validateEndObjectInputPin(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.LINK_END_DATA__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_END_DATA__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.LINK_END_DATA__QUALIFIER : + return ((InternalEList) getQualifiers()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DATA__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LINK_END_DATA__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LINK_END_DATA__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LINK_END_DATA__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LINK_END_DATA__VALUE : + if (resolve) + return getValue(); + return basicGetValue(); + case UMLPackage.LINK_END_DATA__END : + if (resolve) + return getEnd(); + return basicGetEnd(); + case UMLPackage.LINK_END_DATA__QUALIFIER : + return getQualifiers(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DATA__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_DATA__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_DATA__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.LINK_END_DATA__END : + setEnd((Property) newValue); + return; + case UMLPackage.LINK_END_DATA__QUALIFIER : + getQualifiers().clear(); + getQualifiers().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DATA__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LINK_END_DATA__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LINK_END_DATA__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.LINK_END_DATA__END : + setEnd((Property) null); + return; + case UMLPackage.LINK_END_DATA__QUALIFIER : + getQualifiers().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DATA__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LINK_END_DATA__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LINK_END_DATA__OWNER : + return isSetOwner(); + case UMLPackage.LINK_END_DATA__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LINK_END_DATA__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LINK_END_DATA__VALUE : + return eVirtualGet(UMLPackage.LINK_END_DATA__VALUE) != null; + case UMLPackage.LINK_END_DATA__END : + return eVirtualGet(UMLPackage.LINK_END_DATA__END) != null; + case UMLPackage.LINK_END_DATA__QUALIFIER : + List qualifier = (List) eVirtualGet(UMLPackage.LINK_END_DATA__QUALIFIER); + return qualifier != null && !qualifier.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //LinkEndDataImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java new file mode 100644 index 00000000..b5e13b30 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndDestructionDataImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.LinkEndDestructionData; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.LinkEndDestructionDataOperations; + +/** + * + * An implementation of the model object 'Link End Destruction Data'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl#isDestroyDuplicates Is Destroy Duplicates}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl#getDestroyAt Destroy At}
  • + *
+ *

+ * + * @generated + */ +public class LinkEndDestructionDataImpl + extends LinkEndDataImpl + implements LinkEndDestructionData { + + /** + * The default value of the '{@link #isDestroyDuplicates() Is Destroy Duplicates}' attribute. + * + * + * @see #isDestroyDuplicates() + * @generated + * @ordered + */ + protected static final boolean IS_DESTROY_DUPLICATES_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDestroyDuplicates() Is Destroy Duplicates}' attribute. + * + * + * @see #isDestroyDuplicates() + * @generated + * @ordered + */ + protected static final int IS_DESTROY_DUPLICATES_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected LinkEndDestructionDataImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLinkEndDestructionData(); + } + + /** + * + * + * @generated + */ + public boolean isDestroyDuplicates() { + return (eFlags & IS_DESTROY_DUPLICATES_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDestroyDuplicates(boolean newIsDestroyDuplicates) { + boolean oldIsDestroyDuplicates = (eFlags & IS_DESTROY_DUPLICATES_EFLAG) != 0; + if (newIsDestroyDuplicates) + eFlags |= IS_DESTROY_DUPLICATES_EFLAG; + else + eFlags &= ~IS_DESTROY_DUPLICATES_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LINK_END_DESTRUCTION_DATA__IS_DESTROY_DUPLICATES, + oldIsDestroyDuplicates, newIsDestroyDuplicates)); + + } + + /** + * + * + * @generated + */ + public InputPin getDestroyAt() { + InputPin destroyAt = (InputPin) eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT); + if (destroyAt != null && destroyAt.eIsProxy()) { + InputPin oldDestroyAt = destroyAt; + destroyAt = (InputPin) eResolveProxy((InternalEObject) destroyAt); + if (destroyAt != oldDestroyAt) { + eVirtualSet(UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT, + destroyAt); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT, + oldDestroyAt, destroyAt)); + } + } + return destroyAt; + } + + /** + * + * + * @generated + */ + public InputPin basicGetDestroyAt() { + return (InputPin) eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT); + } + + /** + * + * + * @generated + */ + public void setDestroyAt(InputPin newDestroyAt) { + InputPin destroyAt = newDestroyAt; + Object oldDestroyAt = eVirtualSet( + UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT, destroyAt); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT, + oldDestroyAt == EVIRTUAL_NO_VALUE + ? null + : oldDestroyAt, destroyAt)); + + } + + /** + * + * + * @generated + */ + public boolean validateDestroyLinkAction(DiagnosticChain diagnostics, + Map context) { + return LinkEndDestructionDataOperations.validateDestroyLinkAction(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUnlimitedNaturalAndMultiplicity( + DiagnosticChain diagnostics, Map context) { + return LinkEndDestructionDataOperations + .validateUnlimitedNaturalAndMultiplicity(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DESTRUCTION_DATA__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__VALUE : + if (resolve) + return getValue(); + return basicGetValue(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__END : + if (resolve) + return getEnd(); + return basicGetEnd(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__QUALIFIER : + return getQualifiers(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__IS_DESTROY_DUPLICATES : + return isDestroyDuplicates() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT : + if (resolve) + return getDestroyAt(); + return basicGetDestroyAt(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DESTRUCTION_DATA__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__END : + setEnd((Property) newValue); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__QUALIFIER : + getQualifiers().clear(); + getQualifiers().addAll((Collection) newValue); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__IS_DESTROY_DUPLICATES : + setIsDestroyDuplicates(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT : + setDestroyAt((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DESTRUCTION_DATA__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__END : + setEnd((Property) null); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__QUALIFIER : + getQualifiers().clear(); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__IS_DESTROY_DUPLICATES : + setIsDestroyDuplicates(IS_DESTROY_DUPLICATES_EDEFAULT); + return; + case UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT : + setDestroyAt((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LINK_END_DESTRUCTION_DATA__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNER : + return isSetOwner(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__VALUE : + return eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__VALUE) != null; + case UMLPackage.LINK_END_DESTRUCTION_DATA__END : + return eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__END) != null; + case UMLPackage.LINK_END_DESTRUCTION_DATA__QUALIFIER : + List qualifier = (List) eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__QUALIFIER); + return qualifier != null && !qualifier.isEmpty(); + case UMLPackage.LINK_END_DESTRUCTION_DATA__IS_DESTROY_DUPLICATES : + return ((eFlags & IS_DESTROY_DUPLICATES_EFLAG) != 0) != IS_DESTROY_DUPLICATES_EDEFAULT; + case UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT : + return eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDestroyDuplicates: "); //$NON-NLS-1$ + result.append((eFlags & IS_DESTROY_DUPLICATES_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //LinkEndDestructionDataImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java new file mode 100644 index 00000000..c8279faa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java @@ -0,0 +1,332 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralBooleanImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.LiteralBoolean; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LiteralBooleanOperations; + +/** + * + * An implementation of the model object 'Literal Boolean'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl#isValue Value}
  • + *
+ *

+ * + * @generated + */ +public class LiteralBooleanImpl + extends LiteralSpecificationImpl + implements LiteralBoolean { + + /** + * The default value of the '{@link #isValue() Value}' attribute. + * + * + * @see #isValue() + * @generated + * @ordered + */ + protected static final boolean VALUE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isValue() Value}' attribute. + * + * + * @see #isValue() + * @generated + * @ordered + */ + protected static final int VALUE_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected LiteralBooleanImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLiteralBoolean(); + } + + /** + * + * + * @generated + */ + public boolean isValue() { + return (eFlags & VALUE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setValue(boolean newValue) { + boolean oldValue = (eFlags & VALUE_EFLAG) != 0; + if (newValue) + eFlags |= VALUE_EFLAG; + else + eFlags &= ~VALUE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LITERAL_BOOLEAN__VALUE, oldValue, newValue)); + + } + + /** + * + * + * @generated + */ + public boolean isComputable() { + return LiteralBooleanOperations.isComputable(this); + } + + /** + * + * + * @generated + */ + public boolean booleanValue() { + return LiteralBooleanOperations.booleanValue(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_BOOLEAN__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LITERAL_BOOLEAN__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LITERAL_BOOLEAN__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LITERAL_BOOLEAN__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LITERAL_BOOLEAN__NAME : + return getName(); + case UMLPackage.LITERAL_BOOLEAN__VISIBILITY : + return getVisibility(); + case UMLPackage.LITERAL_BOOLEAN__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LITERAL_BOOLEAN__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LITERAL_BOOLEAN__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LITERAL_BOOLEAN__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LITERAL_BOOLEAN__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.LITERAL_BOOLEAN__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.LITERAL_BOOLEAN__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.LITERAL_BOOLEAN__VALUE : + return isValue() + ? Boolean.TRUE + : Boolean.FALSE; + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_BOOLEAN__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__NAME : + setName((String) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__TYPE : + setType((Type) newValue); + return; + case UMLPackage.LITERAL_BOOLEAN__VALUE : + setValue(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_BOOLEAN__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LITERAL_BOOLEAN__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LITERAL_BOOLEAN__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LITERAL_BOOLEAN__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LITERAL_BOOLEAN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LITERAL_BOOLEAN__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LITERAL_BOOLEAN__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_BOOLEAN__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_BOOLEAN__TYPE : + setType((Type) null); + return; + case UMLPackage.LITERAL_BOOLEAN__VALUE : + setValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_BOOLEAN__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LITERAL_BOOLEAN__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LITERAL_BOOLEAN__OWNER : + return isSetOwner(); + case UMLPackage.LITERAL_BOOLEAN__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LITERAL_BOOLEAN__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LITERAL_BOOLEAN__NAME : + String name = eVirtualIsSet(UMLPackage.LITERAL_BOOLEAN__NAME) + ? (String) eVirtualGet(UMLPackage.LITERAL_BOOLEAN__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LITERAL_BOOLEAN__VISIBILITY : + return eVirtualIsSet(UMLPackage.LITERAL_BOOLEAN__VISIBILITY) + && eVirtualGet(UMLPackage.LITERAL_BOOLEAN__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LITERAL_BOOLEAN__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LITERAL_BOOLEAN__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LITERAL_BOOLEAN__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LITERAL_BOOLEAN__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LITERAL_BOOLEAN__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LITERAL_BOOLEAN__NAME_EXPRESSION) != null; + case UMLPackage.LITERAL_BOOLEAN__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.LITERAL_BOOLEAN__TEMPLATE_PARAMETER) != null; + case UMLPackage.LITERAL_BOOLEAN__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.LITERAL_BOOLEAN__TYPE : + return eVirtualGet(UMLPackage.LITERAL_BOOLEAN__TYPE) != null; + case UMLPackage.LITERAL_BOOLEAN__VALUE : + return ((eFlags & VALUE_EFLAG) != 0) != VALUE_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); //$NON-NLS-1$ + result.append((eFlags & VALUE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //LiteralBooleanImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java new file mode 100644 index 00000000..9fbe1c03 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java @@ -0,0 +1,327 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralIntegerImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.LiteralInteger; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LiteralIntegerOperations; + +/** + * + * An implementation of the model object 'Literal Integer'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class LiteralIntegerImpl + extends LiteralSpecificationImpl + implements LiteralInteger { + + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final int VALUE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected int value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected LiteralIntegerImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLiteralInteger(); + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(int newValue) { + int oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LITERAL_INTEGER__VALUE, oldValue, value)); + + } + + /** + * + * + * @generated + */ + public boolean isComputable() { + return LiteralIntegerOperations.isComputable(this); + } + + /** + * + * + * @generated + */ + public int integerValue() { + return LiteralIntegerOperations.integerValue(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_INTEGER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LITERAL_INTEGER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LITERAL_INTEGER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LITERAL_INTEGER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LITERAL_INTEGER__NAME : + return getName(); + case UMLPackage.LITERAL_INTEGER__VISIBILITY : + return getVisibility(); + case UMLPackage.LITERAL_INTEGER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LITERAL_INTEGER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LITERAL_INTEGER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LITERAL_INTEGER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LITERAL_INTEGER__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.LITERAL_INTEGER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.LITERAL_INTEGER__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.LITERAL_INTEGER__VALUE : + return new Integer(getValue()); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_INTEGER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_INTEGER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_INTEGER__NAME : + setName((String) newValue); + return; + case UMLPackage.LITERAL_INTEGER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LITERAL_INTEGER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_INTEGER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LITERAL_INTEGER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_INTEGER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_INTEGER__TYPE : + setType((Type) newValue); + return; + case UMLPackage.LITERAL_INTEGER__VALUE : + setValue(((Integer) newValue).intValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_INTEGER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LITERAL_INTEGER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LITERAL_INTEGER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LITERAL_INTEGER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LITERAL_INTEGER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LITERAL_INTEGER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LITERAL_INTEGER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_INTEGER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_INTEGER__TYPE : + setType((Type) null); + return; + case UMLPackage.LITERAL_INTEGER__VALUE : + setValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_INTEGER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LITERAL_INTEGER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LITERAL_INTEGER__OWNER : + return isSetOwner(); + case UMLPackage.LITERAL_INTEGER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LITERAL_INTEGER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LITERAL_INTEGER__NAME : + String name = eVirtualIsSet(UMLPackage.LITERAL_INTEGER__NAME) + ? (String) eVirtualGet(UMLPackage.LITERAL_INTEGER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LITERAL_INTEGER__VISIBILITY : + return eVirtualIsSet(UMLPackage.LITERAL_INTEGER__VISIBILITY) + && eVirtualGet(UMLPackage.LITERAL_INTEGER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LITERAL_INTEGER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LITERAL_INTEGER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LITERAL_INTEGER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LITERAL_INTEGER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LITERAL_INTEGER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LITERAL_INTEGER__NAME_EXPRESSION) != null; + case UMLPackage.LITERAL_INTEGER__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.LITERAL_INTEGER__TEMPLATE_PARAMETER) != null; + case UMLPackage.LITERAL_INTEGER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.LITERAL_INTEGER__TYPE : + return eVirtualGet(UMLPackage.LITERAL_INTEGER__TYPE) != null; + case UMLPackage.LITERAL_INTEGER__VALUE : + return value != VALUE_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); //$NON-NLS-1$ + result.append(value); + result.append(')'); + return result.toString(); + } + +} //LiteralIntegerImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java new file mode 100644 index 00000000..21883bd1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralNullImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.LiteralNull; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.LiteralNullOperations; + +/** + * + * An implementation of the model object 'Literal Null'. + * + *

+ *

+ * + * @generated + */ +public class LiteralNullImpl + extends LiteralSpecificationImpl + implements LiteralNull { + + /** + * + * + * @generated + */ + protected LiteralNullImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLiteralNull(); + } + + /** + * + * + * @generated + */ + public boolean isComputable() { + return LiteralNullOperations.isComputable(this); + } + + /** + * + * + * @generated + */ + public boolean isNull() { + return LiteralNullOperations.isNull(this); + } + +} //LiteralNullImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralSpecificationImpl.java new file mode 100644 index 00000000..67a11e25 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralSpecificationImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralSpecificationImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.LiteralSpecification; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Literal Specification'. + * + *

+ *

+ * + * @generated + */ +public abstract class LiteralSpecificationImpl + extends ValueSpecificationImpl + implements LiteralSpecification { + + /** + * + * + * @generated + */ + protected LiteralSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLiteralSpecification(); + } + +} //LiteralSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java new file mode 100644 index 00000000..e466f604 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java @@ -0,0 +1,332 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralStringImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.LiteralString; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LiteralStringOperations; + +/** + * + * An implementation of the model object 'Literal String'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LiteralStringImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class LiteralStringImpl + extends LiteralSpecificationImpl + implements LiteralString { + + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected LiteralStringImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLiteralString(); + } + + /** + * + * + * @generated + */ + public String getValue() { + String value = (String) eVirtualGet(UMLPackage.LITERAL_STRING__VALUE); + return value == null + ? VALUE_EDEFAULT + : value; + } + + /** + * + * + * @generated + */ + public void setValue(String newValue) { + newValue = newValue == null + ? VALUE_EDEFAULT + : newValue; + String value = newValue; + Object oldValue = eVirtualSet(UMLPackage.LITERAL_STRING__VALUE, value); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LITERAL_STRING__VALUE, oldValue == EVIRTUAL_NO_VALUE + ? VALUE_EDEFAULT + : oldValue, value)); + + } + + /** + * + * + * @generated + */ + public boolean isComputable() { + return LiteralStringOperations.isComputable(this); + } + + /** + * + * + * @generated + */ + public String stringValue() { + return LiteralStringOperations.stringValue(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_STRING__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LITERAL_STRING__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LITERAL_STRING__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LITERAL_STRING__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LITERAL_STRING__NAME : + return getName(); + case UMLPackage.LITERAL_STRING__VISIBILITY : + return getVisibility(); + case UMLPackage.LITERAL_STRING__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LITERAL_STRING__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LITERAL_STRING__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LITERAL_STRING__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LITERAL_STRING__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.LITERAL_STRING__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.LITERAL_STRING__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.LITERAL_STRING__VALUE : + return getValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_STRING__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_STRING__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_STRING__NAME : + setName((String) newValue); + return; + case UMLPackage.LITERAL_STRING__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LITERAL_STRING__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_STRING__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LITERAL_STRING__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_STRING__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_STRING__TYPE : + setType((Type) newValue); + return; + case UMLPackage.LITERAL_STRING__VALUE : + setValue((String) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_STRING__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LITERAL_STRING__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LITERAL_STRING__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LITERAL_STRING__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LITERAL_STRING__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LITERAL_STRING__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LITERAL_STRING__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_STRING__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_STRING__TYPE : + setType((Type) null); + return; + case UMLPackage.LITERAL_STRING__VALUE : + setValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_STRING__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LITERAL_STRING__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LITERAL_STRING__OWNER : + return isSetOwner(); + case UMLPackage.LITERAL_STRING__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LITERAL_STRING__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LITERAL_STRING__NAME : + String name = eVirtualIsSet(UMLPackage.LITERAL_STRING__NAME) + ? (String) eVirtualGet(UMLPackage.LITERAL_STRING__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LITERAL_STRING__VISIBILITY : + return eVirtualIsSet(UMLPackage.LITERAL_STRING__VISIBILITY) + && eVirtualGet(UMLPackage.LITERAL_STRING__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LITERAL_STRING__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LITERAL_STRING__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LITERAL_STRING__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LITERAL_STRING__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LITERAL_STRING__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LITERAL_STRING__NAME_EXPRESSION) != null; + case UMLPackage.LITERAL_STRING__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.LITERAL_STRING__TEMPLATE_PARAMETER) != null; + case UMLPackage.LITERAL_STRING__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.LITERAL_STRING__TYPE : + return eVirtualGet(UMLPackage.LITERAL_STRING__TYPE) != null; + case UMLPackage.LITERAL_STRING__VALUE : + String value = eVirtualIsSet(UMLPackage.LITERAL_STRING__VALUE) + ? (String) eVirtualGet(UMLPackage.LITERAL_STRING__VALUE) + : VALUE_EDEFAULT; + return VALUE_EDEFAULT == null + ? value != null + : !VALUE_EDEFAULT.equals(value); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.LITERAL_STRING__VALUE) + ? eVirtualGet(UMLPackage.LITERAL_STRING__VALUE) + : VALUE_EDEFAULT); + result.append(')'); + return result.toString(); + } + +} //LiteralStringImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java new file mode 100644 index 00000000..f9d332b3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java @@ -0,0 +1,327 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralUnlimitedNaturalImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LiteralUnlimitedNaturalOperations; + +/** + * + * An implementation of the model object 'Literal Unlimited Natural'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class LiteralUnlimitedNaturalImpl + extends LiteralSpecificationImpl + implements LiteralUnlimitedNatural { + + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final int VALUE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected int value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected LiteralUnlimitedNaturalImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLiteralUnlimitedNatural(); + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(int newValue) { + int oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LITERAL_UNLIMITED_NATURAL__VALUE, oldValue, value)); + + } + + /** + * + * + * @generated + */ + public boolean isComputable() { + return LiteralUnlimitedNaturalOperations.isComputable(this); + } + + /** + * + * + * @generated + */ + public int unlimitedValue() { + return LiteralUnlimitedNaturalOperations.unlimitedValue(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_UNLIMITED_NATURAL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME : + return getName(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VISIBILITY : + return getVisibility(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VALUE : + return new Integer(getValue()); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_UNLIMITED_NATURAL__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME : + setName((String) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TYPE : + setType((Type) newValue); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VALUE : + setValue(((Integer) newValue).intValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_UNLIMITED_NATURAL__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TYPE : + setType((Type) null); + return; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VALUE : + setValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LITERAL_UNLIMITED_NATURAL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNER : + return isSetOwner(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME : + String name = eVirtualIsSet(UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME) + ? (String) eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VISIBILITY : + return eVirtualIsSet(UMLPackage.LITERAL_UNLIMITED_NATURAL__VISIBILITY) + && eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__NAME_EXPRESSION) != null; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__TEMPLATE_PARAMETER) != null; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__TYPE : + return eVirtualGet(UMLPackage.LITERAL_UNLIMITED_NATURAL__TYPE) != null; + case UMLPackage.LITERAL_UNLIMITED_NATURAL__VALUE : + return value != VALUE_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); //$NON-NLS-1$ + result.append(value); + result.append(')'); + return result.toString(); + } + +} //LiteralUnlimitedNaturalImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java new file mode 100644 index 00000000..e96b3ec6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java @@ -0,0 +1,1193 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LoopNodeImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.LoopNode; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.LoopNodeOperations; + +/** + * + * An implementation of the model object 'Loop Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#isTestedFirst Is Tested First}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getBodyParts Body Part}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getSetupParts Setup Part}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getDecider Decider}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getTests Test}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getResults Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getLoopVariables Loop Variable}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getBodyOutputs Body Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getLoopVariableInputs Loop Variable Input}
  • + *
+ *

+ * + * @generated + */ +public class LoopNodeImpl + extends StructuredActivityNodeImpl + implements LoopNode { + + /** + * The default value of the '{@link #isTestedFirst() Is Tested First}' attribute. + * + * + * @see #isTestedFirst() + * @generated + * @ordered + */ + protected static final boolean IS_TESTED_FIRST_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isTestedFirst() Is Tested First}' attribute. + * + * + * @see #isTestedFirst() + * @generated + * @ordered + */ + protected static final int IS_TESTED_FIRST_EFLAG = 1 << 10; + + /** + * + * + * @generated + */ + protected LoopNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getLoopNode(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.LOOP_NODE__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.LOOP_NODE__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.LOOP_NODE__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getLoopNode_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.LOOP_NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.LOOP_NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.LOOP_NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExecutableNode_Handler(), + UMLPackage.eINSTANCE.getAction_Output(), + UMLPackage.eINSTANCE.getAction_Input(), + UMLPackage.eINSTANCE.getAction_LocalPrecondition(), + UMLPackage.eINSTANCE.getAction_LocalPostcondition(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getActivityGroup_Subgroup(), + UMLPackage.eINSTANCE.getLoopNode_LoopVariable()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.LOOP_NODE__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.LOOP_NODE__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.LOOP_NODE__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getLoopNode_LoopVariableInput()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isTestedFirst() { + return (eFlags & IS_TESTED_FIRST_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsTestedFirst(boolean newIsTestedFirst) { + boolean oldIsTestedFirst = (eFlags & IS_TESTED_FIRST_EFLAG) != 0; + if (newIsTestedFirst) + eFlags |= IS_TESTED_FIRST_EFLAG; + else + eFlags &= ~IS_TESTED_FIRST_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LOOP_NODE__IS_TESTED_FIRST, oldIsTestedFirst, + newIsTestedFirst)); + + } + + /** + * + * + * @generated + */ + public List getBodyParts() { + List bodyPart = (List) eVirtualGet(UMLPackage.LOOP_NODE__BODY_PART); + if (bodyPart == null) { + eVirtualSet(UMLPackage.LOOP_NODE__BODY_PART, + bodyPart = new EObjectResolvingEList(ExecutableNode.class, + this, UMLPackage.LOOP_NODE__BODY_PART)); + } + return bodyPart; + } + + /** + * + * + * @generated + */ + public ExecutableNode getBodyPart(String name) { + for (Iterator i = getBodyParts().iterator(); i.hasNext();) { + ExecutableNode bodyPart = (ExecutableNode) i.next(); + if (name.equals(bodyPart.getName())) { + return bodyPart; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getSetupParts() { + List setupPart = (List) eVirtualGet(UMLPackage.LOOP_NODE__SETUP_PART); + if (setupPart == null) { + eVirtualSet(UMLPackage.LOOP_NODE__SETUP_PART, + setupPart = new EObjectResolvingEList(ExecutableNode.class, + this, UMLPackage.LOOP_NODE__SETUP_PART)); + } + return setupPart; + } + + /** + * + * + * @generated + */ + public ExecutableNode getSetupPart(String name) { + for (Iterator i = getSetupParts().iterator(); i.hasNext();) { + ExecutableNode setupPart = (ExecutableNode) i.next(); + if (name.equals(setupPart.getName())) { + return setupPart; + } + } + return null; + } + + /** + * + * + * @generated + */ + public OutputPin getDecider() { + OutputPin decider = (OutputPin) eVirtualGet(UMLPackage.LOOP_NODE__DECIDER); + if (decider != null && decider.eIsProxy()) { + OutputPin oldDecider = decider; + decider = (OutputPin) eResolveProxy((InternalEObject) decider); + if (decider != oldDecider) { + eVirtualSet(UMLPackage.LOOP_NODE__DECIDER, decider); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.LOOP_NODE__DECIDER, oldDecider, decider)); + } + } + return decider; + } + + /** + * + * + * @generated + */ + public OutputPin basicGetDecider() { + return (OutputPin) eVirtualGet(UMLPackage.LOOP_NODE__DECIDER); + } + + /** + * + * + * @generated + */ + public void setDecider(OutputPin newDecider) { + OutputPin decider = newDecider; + Object oldDecider = eVirtualSet(UMLPackage.LOOP_NODE__DECIDER, decider); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.LOOP_NODE__DECIDER, oldDecider == EVIRTUAL_NO_VALUE + ? null + : oldDecider, decider)); + + } + + /** + * + * + * @generated + */ + public List getTests() { + List test = (List) eVirtualGet(UMLPackage.LOOP_NODE__TEST); + if (test == null) { + eVirtualSet(UMLPackage.LOOP_NODE__TEST, + test = new EObjectResolvingEList(ExecutableNode.class, this, + UMLPackage.LOOP_NODE__TEST)); + } + return test; + } + + /** + * + * + * @generated + */ + public ExecutableNode getTest(String name) { + for (Iterator i = getTests().iterator(); i.hasNext();) { + ExecutableNode test = (ExecutableNode) i.next(); + if (name.equals(test.getName())) { + return test; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getResults() { + List result = (List) eVirtualGet(UMLPackage.LOOP_NODE__RESULT); + if (result == null) { + eVirtualSet(UMLPackage.LOOP_NODE__RESULT, + result = new EObjectContainmentEList(OutputPin.class, this, + UMLPackage.LOOP_NODE__RESULT)); + } + return result; + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + getResults().add(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public OutputPin getResult(String name) { + for (Iterator i = getResults().iterator(); i.hasNext();) { + OutputPin result = (OutputPin) i.next(); + if (name.equals(result.getName())) { + return result; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getLoopVariables() { + List loopVariable = (List) eVirtualGet(UMLPackage.LOOP_NODE__LOOP_VARIABLE); + if (loopVariable == null) { + eVirtualSet(UMLPackage.LOOP_NODE__LOOP_VARIABLE, + loopVariable = new EObjectContainmentEList(OutputPin.class, + this, UMLPackage.LOOP_NODE__LOOP_VARIABLE)); + } + return loopVariable; + } + + /** + * + * + * @generated + */ + public OutputPin createLoopVariable() { + OutputPin newLoopVariable = UMLFactory.eINSTANCE.createOutputPin(); + getLoopVariables().add(newLoopVariable); + return newLoopVariable; + } + + /** + * + * + * @generated + */ + public OutputPin getLoopVariable(String name) { + for (Iterator i = getLoopVariables().iterator(); i.hasNext();) { + OutputPin loopVariable = (OutputPin) i.next(); + if (name.equals(loopVariable.getName())) { + return loopVariable; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getBodyOutputs() { + List bodyOutput = (List) eVirtualGet(UMLPackage.LOOP_NODE__BODY_OUTPUT); + if (bodyOutput == null) { + eVirtualSet(UMLPackage.LOOP_NODE__BODY_OUTPUT, + bodyOutput = new EObjectResolvingEList(OutputPin.class, this, + UMLPackage.LOOP_NODE__BODY_OUTPUT)); + } + return bodyOutput; + } + + /** + * + * + * @generated + */ + public OutputPin getBodyOutput(String name) { + for (Iterator i = getBodyOutputs().iterator(); i.hasNext();) { + OutputPin bodyOutput = (OutputPin) i.next(); + if (name.equals(bodyOutput.getName())) { + return bodyOutput; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getLoopVariableInputs() { + List loopVariableInput = (List) eVirtualGet(UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT); + if (loopVariableInput == null) { + eVirtualSet(UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT, + loopVariableInput = new EObjectContainmentEList(InputPin.class, + this, UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT)); + } + return loopVariableInput; + } + + /** + * + * + * @generated + */ + public InputPin createLoopVariableInput(EClass eClass) { + InputPin newLoopVariableInput = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getLoopVariableInputs().add(newLoopVariableInput); + return newLoopVariableInput; + } + + /** + * + * + * @generated + */ + public InputPin createLoopVariableInput() { + InputPin newLoopVariableInput = UMLFactory.eINSTANCE.createInputPin(); + getLoopVariableInputs().add(newLoopVariableInput); + return newLoopVariableInput; + } + + /** + * + * + * @generated + */ + public InputPin getLoopVariableInput(String name) { + for (Iterator i = getLoopVariableInputs().iterator(); i.hasNext();) { + InputPin loopVariableInput = (InputPin) i.next(); + if (name.equals(loopVariableInput.getName())) { + return loopVariableInput; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateInputEdges(DiagnosticChain diagnostics, Map context) { + return LoopNodeOperations + .validateInputEdges(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBodyOutput(DiagnosticChain diagnostics, Map context) { + return LoopNodeOperations + .validateBodyOutput(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateResultNoIncoming(DiagnosticChain diagnostics, + Map context) { + return LoopNodeOperations.validateResultNoIncoming(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.LOOP_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LOOP_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.LOOP_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.LOOP_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.LOOP_NODE__ACTIVITY, msgs); + case UMLPackage.LOOP_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LOOP_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LOOP_NODE__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.LOOP_NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.LOOP_NODE__IN_ACTIVITY, msgs); + case UMLPackage.LOOP_NODE__VARIABLE : + return ((InternalEList) getVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.LOOP_NODE__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + case UMLPackage.LOOP_NODE__RESULT : + return ((InternalEList) getResults()).basicRemove(otherEnd, + msgs); + case UMLPackage.LOOP_NODE__LOOP_VARIABLE : + return ((InternalEList) getLoopVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT : + return ((InternalEList) getLoopVariableInputs()) + .basicRemove(otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LOOP_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.LOOP_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.LOOP_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.LOOP_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.LOOP_NODE__NAME : + return getName(); + case UMLPackage.LOOP_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.LOOP_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.LOOP_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.LOOP_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.LOOP_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.LOOP_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.LOOP_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.LOOP_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.LOOP_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.LOOP_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.LOOP_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.LOOP_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.LOOP_NODE__INCOMING : + return getIncomings(); + case UMLPackage.LOOP_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.LOOP_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.LOOP_NODE__HANDLER : + return getHandlers(); + case UMLPackage.LOOP_NODE__OUTPUT : + return getOutputs(); + case UMLPackage.LOOP_NODE__INPUT : + return getInputs(); + case UMLPackage.LOOP_NODE__CONTEXT : + return getContext(); + case UMLPackage.LOOP_NODE__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.LOOP_NODE__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.LOOP_NODE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.LOOP_NODE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.LOOP_NODE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.LOOP_NODE__MEMBER : + return getMembers(); + case UMLPackage.LOOP_NODE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.LOOP_NODE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.LOOP_NODE__SUBGROUP : + return getSubgroups(); + case UMLPackage.LOOP_NODE__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.LOOP_NODE__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.LOOP_NODE__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.LOOP_NODE__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.LOOP_NODE__VARIABLE : + return getVariables(); + case UMLPackage.LOOP_NODE__NODE : + return getNodes(); + case UMLPackage.LOOP_NODE__MUST_ISOLATE : + return isMustIsolate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.LOOP_NODE__EDGE : + return getEdges(); + case UMLPackage.LOOP_NODE__IS_TESTED_FIRST : + return isTestedFirst() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.LOOP_NODE__BODY_PART : + return getBodyParts(); + case UMLPackage.LOOP_NODE__SETUP_PART : + return getSetupParts(); + case UMLPackage.LOOP_NODE__DECIDER : + if (resolve) + return getDecider(); + return basicGetDecider(); + case UMLPackage.LOOP_NODE__TEST : + return getTests(); + case UMLPackage.LOOP_NODE__RESULT : + return getResults(); + case UMLPackage.LOOP_NODE__LOOP_VARIABLE : + return getLoopVariables(); + case UMLPackage.LOOP_NODE__BODY_OUTPUT : + return getBodyOutputs(); + case UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT : + return getLoopVariableInputs(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LOOP_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.LOOP_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.LOOP_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.LOOP_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.LOOP_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.LOOP_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.LOOP_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.LOOP_NODE__VARIABLE : + getVariables().clear(); + getVariables().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__MUST_ISOLATE : + setMustIsolate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.LOOP_NODE__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__IS_TESTED_FIRST : + setIsTestedFirst(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.LOOP_NODE__BODY_PART : + getBodyParts().clear(); + getBodyParts().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__SETUP_PART : + getSetupParts().clear(); + getSetupParts().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__DECIDER : + setDecider((OutputPin) newValue); + return; + case UMLPackage.LOOP_NODE__TEST : + getTests().clear(); + getTests().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__LOOP_VARIABLE : + getLoopVariables().clear(); + getLoopVariables().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__BODY_OUTPUT : + getBodyOutputs().clear(); + getBodyOutputs().addAll((Collection) newValue); + return; + case UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT : + getLoopVariableInputs().clear(); + getLoopVariableInputs().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LOOP_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.LOOP_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.LOOP_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.LOOP_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.LOOP_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.LOOP_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.LOOP_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.LOOP_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.LOOP_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.LOOP_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.LOOP_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.LOOP_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.LOOP_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.LOOP_NODE__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.LOOP_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.LOOP_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.LOOP_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.LOOP_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.LOOP_NODE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.LOOP_NODE__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.LOOP_NODE__VARIABLE : + getVariables().clear(); + return; + case UMLPackage.LOOP_NODE__NODE : + getNodes().clear(); + return; + case UMLPackage.LOOP_NODE__MUST_ISOLATE : + setMustIsolate(MUST_ISOLATE_EDEFAULT); + return; + case UMLPackage.LOOP_NODE__EDGE : + getEdges().clear(); + return; + case UMLPackage.LOOP_NODE__IS_TESTED_FIRST : + setIsTestedFirst(IS_TESTED_FIRST_EDEFAULT); + return; + case UMLPackage.LOOP_NODE__BODY_PART : + getBodyParts().clear(); + return; + case UMLPackage.LOOP_NODE__SETUP_PART : + getSetupParts().clear(); + return; + case UMLPackage.LOOP_NODE__DECIDER : + setDecider((OutputPin) null); + return; + case UMLPackage.LOOP_NODE__TEST : + getTests().clear(); + return; + case UMLPackage.LOOP_NODE__RESULT : + getResults().clear(); + return; + case UMLPackage.LOOP_NODE__LOOP_VARIABLE : + getLoopVariables().clear(); + return; + case UMLPackage.LOOP_NODE__BODY_OUTPUT : + getBodyOutputs().clear(); + return; + case UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT : + getLoopVariableInputs().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.LOOP_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.LOOP_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.LOOP_NODE__OWNER : + return isSetOwner(); + case UMLPackage.LOOP_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.LOOP_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.LOOP_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.LOOP_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.LOOP_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.LOOP_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.LOOP_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.LOOP_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.LOOP_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.LOOP_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.LOOP_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.LOOP_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.LOOP_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.LOOP_NODE__NAME_EXPRESSION) != null; + case UMLPackage.LOOP_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.LOOP_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.LOOP_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.LOOP_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.LOOP_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.LOOP_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.LOOP_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.LOOP_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.LOOP_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.LOOP_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.LOOP_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.LOOP_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.LOOP_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.LOOP_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.LOOP_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.LOOP_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.LOOP_NODE__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.LOOP_NODE__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.LOOP_NODE__OUTPUT : + return isSetOutputs(); + case UMLPackage.LOOP_NODE__INPUT : + return isSetInputs(); + case UMLPackage.LOOP_NODE__CONTEXT : + return getContext() != null; + case UMLPackage.LOOP_NODE__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.LOOP_NODE__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.LOOP_NODE__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.LOOP_NODE__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.LOOP_NODE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.LOOP_NODE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.LOOP_NODE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.LOOP_NODE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.LOOP_NODE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.LOOP_NODE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.LOOP_NODE__MEMBER : + return isSetMembers(); + case UMLPackage.LOOP_NODE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.LOOP_NODE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.LOOP_NODE__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.LOOP_NODE__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.LOOP_NODE__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.LOOP_NODE__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.LOOP_NODE__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.LOOP_NODE__VARIABLE : + List variable = (List) eVirtualGet(UMLPackage.LOOP_NODE__VARIABLE); + return variable != null && !variable.isEmpty(); + case UMLPackage.LOOP_NODE__NODE : + List node = (List) eVirtualGet(UMLPackage.LOOP_NODE__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.LOOP_NODE__MUST_ISOLATE : + return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT; + case UMLPackage.LOOP_NODE__EDGE : + List edge = (List) eVirtualGet(UMLPackage.LOOP_NODE__EDGE); + return edge != null && !edge.isEmpty(); + case UMLPackage.LOOP_NODE__IS_TESTED_FIRST : + return ((eFlags & IS_TESTED_FIRST_EFLAG) != 0) != IS_TESTED_FIRST_EDEFAULT; + case UMLPackage.LOOP_NODE__BODY_PART : + List bodyPart = (List) eVirtualGet(UMLPackage.LOOP_NODE__BODY_PART); + return bodyPart != null && !bodyPart.isEmpty(); + case UMLPackage.LOOP_NODE__SETUP_PART : + List setupPart = (List) eVirtualGet(UMLPackage.LOOP_NODE__SETUP_PART); + return setupPart != null && !setupPart.isEmpty(); + case UMLPackage.LOOP_NODE__DECIDER : + return eVirtualGet(UMLPackage.LOOP_NODE__DECIDER) != null; + case UMLPackage.LOOP_NODE__TEST : + List test = (List) eVirtualGet(UMLPackage.LOOP_NODE__TEST); + return test != null && !test.isEmpty(); + case UMLPackage.LOOP_NODE__RESULT : + List result = (List) eVirtualGet(UMLPackage.LOOP_NODE__RESULT); + return result != null && !result.isEmpty(); + case UMLPackage.LOOP_NODE__LOOP_VARIABLE : + List loopVariable = (List) eVirtualGet(UMLPackage.LOOP_NODE__LOOP_VARIABLE); + return loopVariable != null && !loopVariable.isEmpty(); + case UMLPackage.LOOP_NODE__BODY_OUTPUT : + List bodyOutput = (List) eVirtualGet(UMLPackage.LOOP_NODE__BODY_OUTPUT); + return bodyOutput != null && !bodyOutput.isEmpty(); + case UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT : + List loopVariableInput = (List) eVirtualGet(UMLPackage.LOOP_NODE__LOOP_VARIABLE_INPUT); + return loopVariableInput != null + && !loopVariableInput.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isTestedFirst: "); //$NON-NLS-1$ + result.append((eFlags & IS_TESTED_FIRST_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getLoopNode_Result()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getLoopNode_LoopVariable()); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getLoopNode_LoopVariableInput()); + } + +} //LoopNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ManifestationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ManifestationImpl.java new file mode 100644 index 00000000..cedd119b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ManifestationImpl.java @@ -0,0 +1,394 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ManifestationImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Manifestation; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Manifestation'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl#getUtilizedElement Utilized Element}
  • + *
+ *

+ * + * @generated + */ +public class ManifestationImpl + extends AbstractionImpl + implements Manifestation { + + /** + * + * + * @generated + */ + protected ManifestationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getManifestation(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.MANIFESTATION__TARGET); + if (target == null) { + eVirtualSet( + UMLPackage.MANIFESTATION__TARGET, + target = new DerivedUnionEObjectEList( + Element.class, + this, + UMLPackage.MANIFESTATION__TARGET, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Supplier(), + UMLPackage.eINSTANCE.getManifestation_UtilizedElement()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSuppliers() { + List supplier = (List) eVirtualGet(UMLPackage.MANIFESTATION__SUPPLIER); + if (supplier == null) { + eVirtualSet(UMLPackage.MANIFESTATION__SUPPLIER, + supplier = new SupersetEObjectResolvingEList( + NamedElement.class, this, + UMLPackage.MANIFESTATION__SUPPLIER, + new int[]{UMLPackage.MANIFESTATION__UTILIZED_ELEMENT})); + } + return supplier; + } + + /** + * + * + * @generated + */ + public PackageableElement getUtilizedElement() { + PackageableElement utilizedElement = (PackageableElement) eVirtualGet(UMLPackage.MANIFESTATION__UTILIZED_ELEMENT); + if (utilizedElement != null && utilizedElement.eIsProxy()) { + PackageableElement oldUtilizedElement = utilizedElement; + utilizedElement = (PackageableElement) eResolveProxy((InternalEObject) utilizedElement); + if (utilizedElement != oldUtilizedElement) { + eVirtualSet(UMLPackage.MANIFESTATION__UTILIZED_ELEMENT, + utilizedElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MANIFESTATION__UTILIZED_ELEMENT, + oldUtilizedElement, utilizedElement)); + } + } + return utilizedElement; + } + + /** + * + * + * @generated + */ + public PackageableElement basicGetUtilizedElement() { + return (PackageableElement) eVirtualGet(UMLPackage.MANIFESTATION__UTILIZED_ELEMENT); + } + + /** + * + * + * @generated + */ + public void setUtilizedElement(PackageableElement newUtilizedElement) { + if (newUtilizedElement != null + && !getSuppliers().contains(newUtilizedElement)) { + getSuppliers().add(newUtilizedElement); + } + PackageableElement utilizedElement = newUtilizedElement; + Object oldUtilizedElement = eVirtualSet( + UMLPackage.MANIFESTATION__UTILIZED_ELEMENT, utilizedElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MANIFESTATION__UTILIZED_ELEMENT, + oldUtilizedElement == EVIRTUAL_NO_VALUE + ? null + : oldUtilizedElement, utilizedElement)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MANIFESTATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.MANIFESTATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.MANIFESTATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.MANIFESTATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.MANIFESTATION__NAME : + return getName(); + case UMLPackage.MANIFESTATION__VISIBILITY : + return getVisibility(); + case UMLPackage.MANIFESTATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.MANIFESTATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.MANIFESTATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.MANIFESTATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.MANIFESTATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.MANIFESTATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.MANIFESTATION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.MANIFESTATION__SOURCE : + return getSources(); + case UMLPackage.MANIFESTATION__TARGET : + return getTargets(); + case UMLPackage.MANIFESTATION__SUPPLIER : + return getSuppliers(); + case UMLPackage.MANIFESTATION__CLIENT : + return getClients(); + case UMLPackage.MANIFESTATION__MAPPING : + return getMapping(); + case UMLPackage.MANIFESTATION__UTILIZED_ELEMENT : + if (resolve) + return getUtilizedElement(); + return basicGetUtilizedElement(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MANIFESTATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.MANIFESTATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.MANIFESTATION__NAME : + setName((String) newValue); + return; + case UMLPackage.MANIFESTATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.MANIFESTATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.MANIFESTATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.MANIFESTATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.MANIFESTATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.MANIFESTATION__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.MANIFESTATION__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + case UMLPackage.MANIFESTATION__MAPPING : + setMapping((OpaqueExpression) newValue); + return; + case UMLPackage.MANIFESTATION__UTILIZED_ELEMENT : + setUtilizedElement((PackageableElement) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MANIFESTATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.MANIFESTATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.MANIFESTATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.MANIFESTATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.MANIFESTATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.MANIFESTATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.MANIFESTATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.MANIFESTATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.MANIFESTATION__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.MANIFESTATION__CLIENT : + getClients().clear(); + return; + case UMLPackage.MANIFESTATION__MAPPING : + setMapping((OpaqueExpression) null); + return; + case UMLPackage.MANIFESTATION__UTILIZED_ELEMENT : + setUtilizedElement((PackageableElement) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MANIFESTATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.MANIFESTATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.MANIFESTATION__OWNER : + return isSetOwner(); + case UMLPackage.MANIFESTATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.MANIFESTATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.MANIFESTATION__NAME : + String name = eVirtualIsSet(UMLPackage.MANIFESTATION__NAME) + ? (String) eVirtualGet(UMLPackage.MANIFESTATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.MANIFESTATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.MANIFESTATION__VISIBILITY) + && eVirtualGet(UMLPackage.MANIFESTATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.MANIFESTATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.MANIFESTATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.MANIFESTATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.MANIFESTATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.MANIFESTATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.MANIFESTATION__NAME_EXPRESSION) != null; + case UMLPackage.MANIFESTATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.MANIFESTATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.MANIFESTATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.MANIFESTATION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.MANIFESTATION__SOURCE : + return isSetSources(); + case UMLPackage.MANIFESTATION__TARGET : + return isSetTargets(); + case UMLPackage.MANIFESTATION__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.MANIFESTATION__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.MANIFESTATION__CLIENT : + List client = (List) eVirtualGet(UMLPackage.MANIFESTATION__CLIENT); + return client != null && !client.isEmpty(); + case UMLPackage.MANIFESTATION__MAPPING : + return eVirtualGet(UMLPackage.MANIFESTATION__MAPPING) != null; + case UMLPackage.MANIFESTATION__UTILIZED_ELEMENT : + return eVirtualGet(UMLPackage.MANIFESTATION__UTILIZED_ELEMENT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getManifestation_UtilizedElement()); + } + +} //ManifestationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java new file mode 100644 index 00000000..d10fb379 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MergeNodeImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.MergeNode; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.MergeNodeOperations; + +/** + * + * An implementation of the model object 'Merge Node'. + * + *

+ *

+ * + * @generated + */ +public class MergeNodeImpl + extends ControlNodeImpl + implements MergeNode { + + /** + * + * + * @generated + */ + protected MergeNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getMergeNode(); + } + + /** + * + * + * @generated + */ + public boolean validateOneOutgoingEdge(DiagnosticChain diagnostics, + Map context) { + return MergeNodeOperations.validateOneOutgoingEdge(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEdges(DiagnosticChain diagnostics, Map context) { + return MergeNodeOperations.validateEdges(this, diagnostics, context); + } + +} //MergeNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEndImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEndImpl.java new file mode 100644 index 00000000..6af57cf9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEndImpl.java @@ -0,0 +1,263 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageEndImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageEnd; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Message End'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageEndImpl#getMessage Message}
  • + *
+ *

+ * + * @generated + */ +public abstract class MessageEndImpl + extends NamedElementImpl + implements MessageEnd { + + /** + * + * + * @generated + */ + protected MessageEndImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getMessageEnd(); + } + + /** + * + * + * @generated + */ + public Message getMessage() { + Message message = (Message) eVirtualGet(UMLPackage.MESSAGE_END__MESSAGE); + if (message != null && message.eIsProxy()) { + Message oldMessage = message; + message = (Message) eResolveProxy((InternalEObject) message); + if (message != oldMessage) { + eVirtualSet(UMLPackage.MESSAGE_END__MESSAGE, message); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MESSAGE_END__MESSAGE, oldMessage, message)); + } + } + return message; + } + + /** + * + * + * @generated + */ + public Message basicGetMessage() { + return (Message) eVirtualGet(UMLPackage.MESSAGE_END__MESSAGE); + } + + /** + * + * + * @generated + */ + public void setMessage(Message newMessage) { + Message message = newMessage; + Object oldMessage = eVirtualSet(UMLPackage.MESSAGE_END__MESSAGE, + message); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE_END__MESSAGE, + oldMessage == EVIRTUAL_NO_VALUE + ? null + : oldMessage, message)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_END__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.MESSAGE_END__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.MESSAGE_END__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.MESSAGE_END__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.MESSAGE_END__NAME : + return getName(); + case UMLPackage.MESSAGE_END__VISIBILITY : + return getVisibility(); + case UMLPackage.MESSAGE_END__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.MESSAGE_END__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.MESSAGE_END__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.MESSAGE_END__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.MESSAGE_END__MESSAGE : + if (resolve) + return getMessage(); + return basicGetMessage(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_END__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_END__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_END__NAME : + setName((String) newValue); + return; + case UMLPackage.MESSAGE_END__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.MESSAGE_END__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_END__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.MESSAGE_END__MESSAGE : + setMessage((Message) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_END__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.MESSAGE_END__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.MESSAGE_END__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.MESSAGE_END__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.MESSAGE_END__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.MESSAGE_END__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.MESSAGE_END__MESSAGE : + setMessage((Message) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_END__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.MESSAGE_END__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.MESSAGE_END__OWNER : + return isSetOwner(); + case UMLPackage.MESSAGE_END__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.MESSAGE_END__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.MESSAGE_END__NAME : + String name = eVirtualIsSet(UMLPackage.MESSAGE_END__NAME) + ? (String) eVirtualGet(UMLPackage.MESSAGE_END__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.MESSAGE_END__VISIBILITY : + return eVirtualIsSet(UMLPackage.MESSAGE_END__VISIBILITY) + && eVirtualGet(UMLPackage.MESSAGE_END__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.MESSAGE_END__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.MESSAGE_END__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.MESSAGE_END__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.MESSAGE_END__NAMESPACE : + return isSetNamespace(); + case UMLPackage.MESSAGE_END__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.MESSAGE_END__NAME_EXPRESSION) != null; + case UMLPackage.MESSAGE_END__MESSAGE : + return eVirtualGet(UMLPackage.MESSAGE_END__MESSAGE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //MessageEndImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEventImpl.java new file mode 100644 index 00000000..31916be8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEventImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageEventImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.MessageEvent; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Message Event'. + * + *

+ *

+ * + * @generated + */ +public abstract class MessageEventImpl + extends EventImpl + implements MessageEvent { + + /** + * + * + * @generated + */ + protected MessageEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getMessageEvent(); + } + +} //MessageEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java new file mode 100644 index 00000000..4eaf6efe --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java @@ -0,0 +1,854 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageEnd; +import org.eclipse.uml2.uml.MessageKind; +import org.eclipse.uml2.uml.MessageSort; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.MessageOperations; + +/** + * + * An implementation of the model object 'Message'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getMessageKind Message Kind}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getMessageSort Message Sort}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getReceiveEvent Receive Event}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getSendEvent Send Event}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getConnector Connector}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getInteraction Interaction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getArguments Argument}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getSignature Signature}
  • + *
+ *

+ * + * @generated + */ +public class MessageImpl + extends NamedElementImpl + implements Message { + + /** + * The default value of the '{@link #getMessageKind() Message Kind}' attribute. + * + * + * @see #getMessageKind() + * @generated + * @ordered + */ + protected static final MessageKind MESSAGE_KIND_EDEFAULT = MessageKind.COMPLETE_LITERAL; + + /** + * The default value of the '{@link #getMessageSort() Message Sort}' attribute. + * + * + * @see #getMessageSort() + * @generated + * @ordered + */ + protected static final MessageSort MESSAGE_SORT_EDEFAULT = MessageSort.SYNCH_CALL_LITERAL; + + /** + * + * + * @generated + */ + protected MessageImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getMessage(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.MESSAGE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.MESSAGE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.MESSAGE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getMessage_Argument()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public MessageKind getMessageKind() { + // TODO: implement this method to return the 'Message Kind' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public MessageSort getMessageSort() { + MessageSort messageSort = (MessageSort) eVirtualGet(UMLPackage.MESSAGE__MESSAGE_SORT); + return messageSort == null + ? MESSAGE_SORT_EDEFAULT + : messageSort; + } + + /** + * + * + * @generated + */ + public void setMessageSort(MessageSort newMessageSort) { + MessageSort messageSort = newMessageSort == null + ? MESSAGE_SORT_EDEFAULT + : newMessageSort; + Object oldMessageSort = eVirtualSet(UMLPackage.MESSAGE__MESSAGE_SORT, + messageSort); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE__MESSAGE_SORT, + oldMessageSort == EVIRTUAL_NO_VALUE + ? MESSAGE_SORT_EDEFAULT + : oldMessageSort, messageSort)); + + } + + /** + * + * + * @generated + */ + public MessageEnd getReceiveEvent() { + MessageEnd receiveEvent = (MessageEnd) eVirtualGet(UMLPackage.MESSAGE__RECEIVE_EVENT); + if (receiveEvent != null && receiveEvent.eIsProxy()) { + MessageEnd oldReceiveEvent = receiveEvent; + receiveEvent = (MessageEnd) eResolveProxy((InternalEObject) receiveEvent); + if (receiveEvent != oldReceiveEvent) { + eVirtualSet(UMLPackage.MESSAGE__RECEIVE_EVENT, receiveEvent); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MESSAGE__RECEIVE_EVENT, oldReceiveEvent, + receiveEvent)); + } + } + return receiveEvent; + } + + /** + * + * + * @generated + */ + public MessageEnd basicGetReceiveEvent() { + return (MessageEnd) eVirtualGet(UMLPackage.MESSAGE__RECEIVE_EVENT); + } + + /** + * + * + * @generated + */ + public void setReceiveEvent(MessageEnd newReceiveEvent) { + MessageEnd receiveEvent = newReceiveEvent; + Object oldReceiveEvent = eVirtualSet(UMLPackage.MESSAGE__RECEIVE_EVENT, + receiveEvent); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE__RECEIVE_EVENT, + oldReceiveEvent == EVIRTUAL_NO_VALUE + ? null + : oldReceiveEvent, receiveEvent)); + + } + + /** + * + * + * @generated + */ + public MessageEnd getSendEvent() { + MessageEnd sendEvent = (MessageEnd) eVirtualGet(UMLPackage.MESSAGE__SEND_EVENT); + if (sendEvent != null && sendEvent.eIsProxy()) { + MessageEnd oldSendEvent = sendEvent; + sendEvent = (MessageEnd) eResolveProxy((InternalEObject) sendEvent); + if (sendEvent != oldSendEvent) { + eVirtualSet(UMLPackage.MESSAGE__SEND_EVENT, sendEvent); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MESSAGE__SEND_EVENT, oldSendEvent, sendEvent)); + } + } + return sendEvent; + } + + /** + * + * + * @generated + */ + public MessageEnd basicGetSendEvent() { + return (MessageEnd) eVirtualGet(UMLPackage.MESSAGE__SEND_EVENT); + } + + /** + * + * + * @generated + */ + public void setSendEvent(MessageEnd newSendEvent) { + MessageEnd sendEvent = newSendEvent; + Object oldSendEvent = eVirtualSet(UMLPackage.MESSAGE__SEND_EVENT, + sendEvent); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE__SEND_EVENT, + oldSendEvent == EVIRTUAL_NO_VALUE + ? null + : oldSendEvent, sendEvent)); + + } + + /** + * + * + * @generated + */ + public Connector getConnector() { + Connector connector = (Connector) eVirtualGet(UMLPackage.MESSAGE__CONNECTOR); + if (connector != null && connector.eIsProxy()) { + Connector oldConnector = connector; + connector = (Connector) eResolveProxy((InternalEObject) connector); + if (connector != oldConnector) { + eVirtualSet(UMLPackage.MESSAGE__CONNECTOR, connector); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MESSAGE__CONNECTOR, oldConnector, connector)); + } + } + return connector; + } + + /** + * + * + * @generated + */ + public Connector basicGetConnector() { + return (Connector) eVirtualGet(UMLPackage.MESSAGE__CONNECTOR); + } + + /** + * + * + * @generated + */ + public void setConnector(Connector newConnector) { + Connector connector = newConnector; + Object oldConnector = eVirtualSet(UMLPackage.MESSAGE__CONNECTOR, + connector); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE__CONNECTOR, + oldConnector == EVIRTUAL_NO_VALUE + ? null + : oldConnector, connector)); + + } + + /** + * + * + * @generated + */ + public Interaction getInteraction() { + if (eContainerFeatureID != UMLPackage.MESSAGE__INTERACTION) + return null; + return (Interaction) eContainer; + } + + /** + * + * + * @generated + */ + public void setInteraction(Interaction newInteraction) { + if (newInteraction != eContainer + || (eContainerFeatureID != UMLPackage.MESSAGE__INTERACTION && newInteraction != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInteraction)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInteraction != null) + msgs = ((InternalEObject) newInteraction).eInverseAdd(this, + UMLPackage.INTERACTION__MESSAGE, Interaction.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newInteraction, + UMLPackage.MESSAGE__INTERACTION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE__INTERACTION, newInteraction, newInteraction)); + + } + + /** + * + * + * @generated + */ + public List getArguments() { + List argument = (List) eVirtualGet(UMLPackage.MESSAGE__ARGUMENT); + if (argument == null) { + eVirtualSet(UMLPackage.MESSAGE__ARGUMENT, + argument = new EObjectContainmentEList( + ValueSpecification.class, this, + UMLPackage.MESSAGE__ARGUMENT)); + } + return argument; + } + + /** + * + * + * @generated + */ + public ValueSpecification createArgument(EClass eClass) { + ValueSpecification newArgument = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getArguments().add(newArgument); + return newArgument; + } + + /** + * + * + * @generated + */ + public ValueSpecification getArgument(String name) { + for (Iterator i = getArguments().iterator(); i.hasNext();) { + ValueSpecification argument = (ValueSpecification) i.next(); + if (name.equals(argument.getName())) { + return argument; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NamedElement getSignature() { + NamedElement signature = basicGetSignature(); + return signature == null + ? null + : (signature.eIsProxy() + ? (NamedElement) eResolveProxy((InternalEObject) signature) + : signature); + } + + /** + * + * + * @generated + */ + public NamedElement basicGetSignature() { + // TODO: implement this method to return the 'Signature' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean validateSendingReceivingMessageEvent( + DiagnosticChain diagnostics, Map context) { + return MessageOperations.validateSendingReceivingMessageEvent(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSignatureReferTo(DiagnosticChain diagnostics, + Map context) { + return MessageOperations.validateSignatureReferTo(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSignatureIsOperation(DiagnosticChain diagnostics, + Map context) { + return MessageOperations.validateSignatureIsOperation(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSignatureIsSignal(DiagnosticChain diagnostics, + Map context) { + return MessageOperations.validateSignatureIsSignal(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateArguments(DiagnosticChain diagnostics, Map context) { + return MessageOperations.validateArguments(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCannotCrossBoundaries(DiagnosticChain diagnostics, + Map context) { + return MessageOperations.validateCannotCrossBoundaries(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOccurrenceSpecifications( + DiagnosticChain diagnostics, Map context) { + return MessageOperations.validateOccurrenceSpecifications(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.MESSAGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.MESSAGE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.MESSAGE__INTERACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.MESSAGE__INTERACTION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.MESSAGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.MESSAGE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.MESSAGE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.MESSAGE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.MESSAGE__INTERACTION : + return eBasicSetContainer(null, + UMLPackage.MESSAGE__INTERACTION, msgs); + case UMLPackage.MESSAGE__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.MESSAGE__INTERACTION : + return eContainer.eInverseRemove(this, + UMLPackage.INTERACTION__MESSAGE, Interaction.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.MESSAGE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.MESSAGE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.MESSAGE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.MESSAGE__NAME : + return getName(); + case UMLPackage.MESSAGE__VISIBILITY : + return getVisibility(); + case UMLPackage.MESSAGE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.MESSAGE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.MESSAGE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.MESSAGE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.MESSAGE__MESSAGE_KIND : + return getMessageKind(); + case UMLPackage.MESSAGE__MESSAGE_SORT : + return getMessageSort(); + case UMLPackage.MESSAGE__RECEIVE_EVENT : + if (resolve) + return getReceiveEvent(); + return basicGetReceiveEvent(); + case UMLPackage.MESSAGE__SEND_EVENT : + if (resolve) + return getSendEvent(); + return basicGetSendEvent(); + case UMLPackage.MESSAGE__CONNECTOR : + if (resolve) + return getConnector(); + return basicGetConnector(); + case UMLPackage.MESSAGE__INTERACTION : + return getInteraction(); + case UMLPackage.MESSAGE__ARGUMENT : + return getArguments(); + case UMLPackage.MESSAGE__SIGNATURE : + if (resolve) + return getSignature(); + return basicGetSignature(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE__NAME : + setName((String) newValue); + return; + case UMLPackage.MESSAGE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.MESSAGE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.MESSAGE__MESSAGE_SORT : + setMessageSort((MessageSort) newValue); + return; + case UMLPackage.MESSAGE__RECEIVE_EVENT : + setReceiveEvent((MessageEnd) newValue); + return; + case UMLPackage.MESSAGE__SEND_EVENT : + setSendEvent((MessageEnd) newValue); + return; + case UMLPackage.MESSAGE__CONNECTOR : + setConnector((Connector) newValue); + return; + case UMLPackage.MESSAGE__INTERACTION : + setInteraction((Interaction) newValue); + return; + case UMLPackage.MESSAGE__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.MESSAGE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.MESSAGE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.MESSAGE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.MESSAGE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.MESSAGE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.MESSAGE__MESSAGE_SORT : + setMessageSort(MESSAGE_SORT_EDEFAULT); + return; + case UMLPackage.MESSAGE__RECEIVE_EVENT : + setReceiveEvent((MessageEnd) null); + return; + case UMLPackage.MESSAGE__SEND_EVENT : + setSendEvent((MessageEnd) null); + return; + case UMLPackage.MESSAGE__CONNECTOR : + setConnector((Connector) null); + return; + case UMLPackage.MESSAGE__INTERACTION : + setInteraction((Interaction) null); + return; + case UMLPackage.MESSAGE__ARGUMENT : + getArguments().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.MESSAGE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.MESSAGE__OWNER : + return isSetOwner(); + case UMLPackage.MESSAGE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.MESSAGE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.MESSAGE__NAME : + String name = eVirtualIsSet(UMLPackage.MESSAGE__NAME) + ? (String) eVirtualGet(UMLPackage.MESSAGE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.MESSAGE__VISIBILITY : + return eVirtualIsSet(UMLPackage.MESSAGE__VISIBILITY) + && eVirtualGet(UMLPackage.MESSAGE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.MESSAGE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.MESSAGE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.MESSAGE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.MESSAGE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.MESSAGE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.MESSAGE__NAME_EXPRESSION) != null; + case UMLPackage.MESSAGE__MESSAGE_KIND : + return getMessageKind() != MESSAGE_KIND_EDEFAULT; + case UMLPackage.MESSAGE__MESSAGE_SORT : + return eVirtualIsSet(UMLPackage.MESSAGE__MESSAGE_SORT) + && eVirtualGet(UMLPackage.MESSAGE__MESSAGE_SORT) != MESSAGE_SORT_EDEFAULT; + case UMLPackage.MESSAGE__RECEIVE_EVENT : + return eVirtualGet(UMLPackage.MESSAGE__RECEIVE_EVENT) != null; + case UMLPackage.MESSAGE__SEND_EVENT : + return eVirtualGet(UMLPackage.MESSAGE__SEND_EVENT) != null; + case UMLPackage.MESSAGE__CONNECTOR : + return eVirtualGet(UMLPackage.MESSAGE__CONNECTOR) != null; + case UMLPackage.MESSAGE__INTERACTION : + return getInteraction() != null; + case UMLPackage.MESSAGE__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.MESSAGE__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.MESSAGE__SIGNATURE : + return basicGetSignature() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (messageSort: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.MESSAGE__MESSAGE_SORT) + ? eVirtualGet(UMLPackage.MESSAGE__MESSAGE_SORT) + : MESSAGE_SORT_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Interaction interaction = getInteraction(); + if (interaction != null) { + return interaction; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getMessage_Interaction()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getMessage_Argument()); + } + +} //MessageImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageOccurrenceSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageOccurrenceSpecificationImpl.java new file mode 100644 index 00000000..91e1eb15 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageOccurrenceSpecificationImpl.java @@ -0,0 +1,443 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageOccurrenceSpecificationImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageEnd; +import org.eclipse.uml2.uml.MessageOccurrenceSpecification; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Message Occurrence Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl#getMessage Message}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl#getEvent Event}
  • + *
+ *

+ * + * @generated + */ +public class MessageOccurrenceSpecificationImpl + extends OccurrenceSpecificationImpl + implements MessageOccurrenceSpecification { + + /** + * + * + * @generated + */ + protected MessageOccurrenceSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getMessageOccurrenceSpecification(); + } + + /** + * + * + * @generated + */ + public Message getMessage() { + Message message = (Message) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE); + if (message != null && message.eIsProxy()) { + Message oldMessage = message; + message = (Message) eResolveProxy((InternalEObject) message); + if (message != oldMessage) { + eVirtualSet( + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE, + message); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE, + oldMessage, message)); + } + } + return message; + } + + /** + * + * + * @generated + */ + public Message basicGetMessage() { + return (Message) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE); + } + + /** + * + * + * @generated + */ + public void setMessage(Message newMessage) { + Message message = newMessage; + Object oldMessage = eVirtualSet( + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE, message); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE, + oldMessage == EVIRTUAL_NO_VALUE + ? null + : oldMessage, message)); + + } + + /** + * + * + * @generated + */ + public Event getEvent() { + Event event = (Event) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT); + if (event != null && event.eIsProxy()) { + Event oldEvent = event; + event = (Event) eResolveProxy((InternalEObject) event); + if (event != oldEvent) { + eVirtualSet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT, + event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT, + oldEvent, event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public Event basicGetEvent() { + return (Event) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT); + } + + /** + * + * + * @generated + */ + public void setEvent(Event newEvent) { + Event event = newEvent; + Object oldEvent = eVirtualSet( + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT, + oldEvent == EVIRTUAL_NO_VALUE + ? null + : oldEvent, event)); + + } + + /** + * + * + * @generated + */ + public boolean isSetEvent() { + return eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME : + return getName(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__COVERED : + return getCovereds(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_BEFORE : + return getToBefores(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT : + if (resolve) + return getEvent(); + return basicGetEvent(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_AFTER : + return getToAfters(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE : + if (resolve) + return getMessage(); + return basicGetMessage(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_BEFORE : + getToBefores().clear(); + getToBefores().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT : + setEvent((Event) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_AFTER : + getToAfters().clear(); + getToAfters().addAll((Collection) newValue); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE : + setMessage((Message) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_BEFORE : + getToBefores().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT : + setEvent((Event) null); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_AFTER : + getToAfters().clear(); + return; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE : + setMessage((Message) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_BEFORE : + List toBefore = (List) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_BEFORE); + return toBefore != null && !toBefore.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT : + return eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT) != null; + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_AFTER : + List toAfter = (List) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__TO_AFTER); + return toAfter != null && !toAfter.isEmpty(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE : + return eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == MessageEnd.class) { + switch (derivedFeatureID) { + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE : + return UMLPackage.MESSAGE_END__MESSAGE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == MessageEnd.class) { + switch (baseFeatureID) { + case UMLPackage.MESSAGE_END__MESSAGE : + return UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //MessageOccurrenceSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java new file mode 100644 index 00000000..f0e160f5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java @@ -0,0 +1,439 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ModelImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Model'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ModelImpl#getViewpoint Viewpoint}
  • + *
+ *

+ * + * @generated + */ +public class ModelImpl + extends PackageImpl + implements Model { + + /** + * The default value of the '{@link #getViewpoint() Viewpoint}' attribute. + * + * + * @see #getViewpoint() + * @generated + * @ordered + */ + protected static final String VIEWPOINT_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected ModelImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getModel(); + } + + /** + * + * + * @generated + */ + public String getViewpoint() { + String viewpoint = (String) eVirtualGet(UMLPackage.MODEL__VIEWPOINT); + return viewpoint == null + ? VIEWPOINT_EDEFAULT + : viewpoint; + } + + /** + * + * + * @generated + */ + public void setViewpoint(String newViewpoint) { + newViewpoint = newViewpoint == null + ? VIEWPOINT_EDEFAULT + : newViewpoint; + String viewpoint = newViewpoint; + Object oldViewpoint = eVirtualSet(UMLPackage.MODEL__VIEWPOINT, + viewpoint); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MODEL__VIEWPOINT, oldViewpoint == EVIRTUAL_NO_VALUE + ? VIEWPOINT_EDEFAULT + : oldViewpoint, viewpoint)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MODEL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.MODEL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.MODEL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.MODEL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.MODEL__NAME : + return getName(); + case UMLPackage.MODEL__VISIBILITY : + return getVisibility(); + case UMLPackage.MODEL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.MODEL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.MODEL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.MODEL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.MODEL__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.MODEL__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.MODEL__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.MODEL__MEMBER : + return getMembers(); + case UMLPackage.MODEL__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.MODEL__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.MODEL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.MODEL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.MODEL__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.MODEL__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.MODEL__PACKAGE_MERGE : + return getPackageMerges(); + case UMLPackage.MODEL__PACKAGED_ELEMENT : + return getPackagedElements(); + case UMLPackage.MODEL__OWNED_TYPE : + return getOwnedTypes(); + case UMLPackage.MODEL__NESTED_PACKAGE : + return getNestedPackages(); + case UMLPackage.MODEL__NESTING_PACKAGE : + return getNestingPackage(); + case UMLPackage.MODEL__APPLIED_PROFILE : + return getAppliedProfiles(); + case UMLPackage.MODEL__VIEWPOINT : + return getViewpoint(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MODEL__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__NAME : + setName((String) newValue); + return; + case UMLPackage.MODEL__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.MODEL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.MODEL__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.MODEL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.MODEL__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.MODEL__PACKAGE_MERGE : + getPackageMerges().clear(); + getPackageMerges().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__PACKAGED_ELEMENT : + getPackagedElements().clear(); + getPackagedElements().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__OWNED_TYPE : + getOwnedTypes().clear(); + getOwnedTypes().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__NESTED_PACKAGE : + getNestedPackages().clear(); + getNestedPackages().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.MODEL__APPLIED_PROFILE : + getAppliedProfiles().clear(); + getAppliedProfiles().addAll((Collection) newValue); + return; + case UMLPackage.MODEL__VIEWPOINT : + setViewpoint((String) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MODEL__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.MODEL__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.MODEL__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.MODEL__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.MODEL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.MODEL__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.MODEL__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.MODEL__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.MODEL__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.MODEL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.MODEL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.MODEL__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.MODEL__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.MODEL__PACKAGE_MERGE : + getPackageMerges().clear(); + return; + case UMLPackage.MODEL__PACKAGED_ELEMENT : + getPackagedElements().clear(); + return; + case UMLPackage.MODEL__OWNED_TYPE : + getOwnedTypes().clear(); + return; + case UMLPackage.MODEL__NESTED_PACKAGE : + getNestedPackages().clear(); + return; + case UMLPackage.MODEL__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.MODEL__APPLIED_PROFILE : + getAppliedProfiles().clear(); + return; + case UMLPackage.MODEL__VIEWPOINT : + setViewpoint(VIEWPOINT_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MODEL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.MODEL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.MODEL__OWNER : + return isSetOwner(); + case UMLPackage.MODEL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.MODEL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.MODEL__NAME : + String name = eVirtualIsSet(UMLPackage.MODEL__NAME) + ? (String) eVirtualGet(UMLPackage.MODEL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.MODEL__VISIBILITY : + return eVirtualIsSet(UMLPackage.MODEL__VISIBILITY) + && eVirtualGet(UMLPackage.MODEL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.MODEL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.MODEL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.MODEL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.MODEL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.MODEL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.MODEL__NAME_EXPRESSION) != null; + case UMLPackage.MODEL__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.MODEL__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.MODEL__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.MODEL__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.MODEL__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.MODEL__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.MODEL__MEMBER : + return isSetMembers(); + case UMLPackage.MODEL__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.MODEL__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.MODEL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.MODEL__TEMPLATE_PARAMETER) != null; + case UMLPackage.MODEL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.MODEL__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.MODEL__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.MODEL__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.MODEL__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.MODEL__PACKAGE_MERGE : + List packageMerge = (List) eVirtualGet(UMLPackage.MODEL__PACKAGE_MERGE); + return packageMerge != null && !packageMerge.isEmpty(); + case UMLPackage.MODEL__PACKAGED_ELEMENT : + List packagedElement = (List) eVirtualGet(UMLPackage.MODEL__PACKAGED_ELEMENT); + return packagedElement != null && !packagedElement.isEmpty(); + case UMLPackage.MODEL__OWNED_TYPE : + return !getOwnedTypes().isEmpty(); + case UMLPackage.MODEL__NESTED_PACKAGE : + return !getNestedPackages().isEmpty(); + case UMLPackage.MODEL__NESTING_PACKAGE : + return getNestingPackage() != null; + case UMLPackage.MODEL__APPLIED_PROFILE : + List appliedProfile = (List) eVirtualGet(UMLPackage.MODEL__APPLIED_PROFILE); + return appliedProfile != null && !appliedProfile.isEmpty(); + case UMLPackage.MODEL__VIEWPOINT : + String viewpoint = eVirtualIsSet(UMLPackage.MODEL__VIEWPOINT) + ? (String) eVirtualGet(UMLPackage.MODEL__VIEWPOINT) + : VIEWPOINT_EDEFAULT; + return VIEWPOINT_EDEFAULT == null + ? viewpoint != null + : !VIEWPOINT_EDEFAULT.equals(viewpoint); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (viewpoint: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.MODEL__VIEWPOINT) + ? eVirtualGet(UMLPackage.MODEL__VIEWPOINT) + : VIEWPOINT_EDEFAULT); + result.append(')'); + return result.toString(); + } + +} //ModelImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java new file mode 100644 index 00000000..17fe1eaf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java @@ -0,0 +1,706 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MultiplicityElementImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +import org.eclipse.uml2.uml.internal.operations.MultiplicityElementOperations; + +/** + * + * An implementation of the model object 'Multiplicity Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getUpperValue Upper Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getLowerValue Lower Value}
  • + *
+ *

+ * + * @generated + */ +public abstract class MultiplicityElementImpl + extends ElementImpl + implements MultiplicityElement { + + /** + * The default value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_ORDERED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final int IS_ORDERED_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final boolean IS_UNIQUE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final int IS_UNIQUE_EFLAG = 1 << 9; + + /** + * The default value of the '{@link #getUpper() Upper}' attribute. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected static final int UPPER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getLower() Lower}' attribute. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected static final int LOWER_EDEFAULT = 1; + + /** + * + * + * @generated + */ + protected MultiplicityElementImpl() { + super(); + eFlags |= IS_UNIQUE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getMultiplicityElement(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.MULTIPLICITY_ELEMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.MULTIPLICITY_ELEMENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE + .getMultiplicityElement_UpperValue(), + UMLPackage.eINSTANCE + .getMultiplicityElement_LowerValue()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isOrdered() { + return (eFlags & IS_ORDERED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsOrdered(boolean newIsOrdered) { + boolean oldIsOrdered = (eFlags & IS_ORDERED_EFLAG) != 0; + if (newIsOrdered) + eFlags |= IS_ORDERED_EFLAG; + else + eFlags &= ~IS_ORDERED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED, oldIsOrdered, + newIsOrdered)); + + } + + /** + * + * + * @generated + */ + public boolean isUnique() { + return (eFlags & IS_UNIQUE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsUnique(boolean newIsUnique) { + boolean oldIsUnique = (eFlags & IS_UNIQUE_EFLAG) != 0; + if (newIsUnique) + eFlags |= IS_UNIQUE_EFLAG; + else + eFlags &= ~IS_UNIQUE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE, oldIsUnique, + newIsUnique)); + + } + + /** + * + * + * @generated + */ + public int getUpper() { + // TODO: implement this method to return the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setUpper(int newUpper) { + // TODO: implement this method to set the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getUpperValue() { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE); + return upperValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpperValue( + ValueSpecification newUpperValue, NotificationChain msgs) { + Object oldUpperValue = eVirtualSet( + UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE, newUpperValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE, + oldUpperValue == EVIRTUAL_NO_VALUE + ? null + : oldUpperValue, newUpperValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpperValue(ValueSpecification newUpperValue) { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE); + if (newUpperValue != upperValue) { + NotificationChain msgs = null; + if (upperValue != null) + msgs = ((InternalEObject) upperValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE, null, + msgs); + if (newUpperValue != null) + msgs = ((InternalEObject) newUpperValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE, null, + msgs); + msgs = basicSetUpperValue(newUpperValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE, newUpperValue, + newUpperValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createUpperValue(EClass eClass) { + ValueSpecification newUpperValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setUpperValue(newUpperValue); + return newUpperValue; + } + + /** + * + * + * @generated + */ + public ValueSpecification getLowerValue() { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE); + return lowerValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLowerValue( + ValueSpecification newLowerValue, NotificationChain msgs) { + Object oldLowerValue = eVirtualSet( + UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE, newLowerValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE, + oldLowerValue == EVIRTUAL_NO_VALUE + ? null + : oldLowerValue, newLowerValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setLowerValue(ValueSpecification newLowerValue) { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE); + if (newLowerValue != lowerValue) { + NotificationChain msgs = null; + if (lowerValue != null) + msgs = ((InternalEObject) lowerValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE, null, + msgs); + if (newLowerValue != null) + msgs = ((InternalEObject) newLowerValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE, null, + msgs); + msgs = basicSetLowerValue(newLowerValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE, newLowerValue, + newLowerValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createLowerValue(EClass eClass) { + ValueSpecification newLowerValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setLowerValue(newLowerValue); + return newLowerValue; + } + + /** + * + * + * @generated + */ + public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGt0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateLowerGe0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGeLower(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationNoSideEffects( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationNoSideEffects(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationConstant( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationConstant(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isMultivalued() { + return MultiplicityElementOperations.isMultivalued(this); + } + + /** + * + * + * @generated + */ + public boolean includesCardinality(int C) { + return MultiplicityElementOperations.includesCardinality(this, C); + } + + /** + * + * + * @generated + */ + public boolean includesMultiplicity(MultiplicityElement M) { + return MultiplicityElementOperations.includesMultiplicity(this, M); + } + + /** + * + * + * @generated + */ + public int lowerBound() { + return MultiplicityElementOperations.lowerBound(this); + } + + /** + * + * + * @generated + */ + public int upperBound() { + return MultiplicityElementOperations.upperBound(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.MULTIPLICITY_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + return basicSetUpperValue(null, msgs); + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + return basicSetLowerValue(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MULTIPLICITY_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + return new Integer(getUpper()); + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + return new Integer(getLower()); + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + return getLowerValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MULTIPLICITY_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MULTIPLICITY_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.MULTIPLICITY_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.MULTIPLICITY_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + return eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE) != null; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + return eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isOrdered: "); //$NON-NLS-1$ + result.append((eFlags & IS_ORDERED_EFLAG) != 0); + result.append(", isUnique: "); //$NON-NLS-1$ + result.append((eFlags & IS_UNIQUE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue()) + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue()); + } + +} //MultiplicityElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java new file mode 100644 index 00000000..297f0340 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java @@ -0,0 +1,668 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NamedElementImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.NamedElementOperations; + +/** + * + * An implementation of the model object 'Named Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getName Name}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getQualifiedName Qualified Name}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getNameExpression Name Expression}
  • + *
+ *

+ * + * @generated + */ +public abstract class NamedElementImpl + extends ElementImpl + implements NamedElement { + + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The default value of the '{@link #getVisibility() Visibility}' attribute. + * + * + * @see #getVisibility() + * @generated + * @ordered + */ + protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC_LITERAL; + + /** + * The default value of the '{@link #getQualifiedName() Qualified Name}' attribute. + * + * + * @see #getQualifiedName() + * @generated + * @ordered + */ + protected static final String QUALIFIED_NAME_EDEFAULT = null; + + /** + * + * + * @generated + */ + protected NamedElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getNamedElement(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.NAMED_ELEMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.NAMED_ELEMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.NAMED_ELEMENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public String getName() { + String name = (String) eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME); + return name == null + ? NAME_EDEFAULT + : name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) { + newName = newName == null + ? NAME_EDEFAULT + : newName; + String name = newName; + Object oldName = eVirtualSet(UMLPackage.NAMED_ELEMENT__NAME, name); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.NAMED_ELEMENT__NAME, oldName == EVIRTUAL_NO_VALUE + ? NAME_EDEFAULT + : oldName, name)); + + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.NAMED_ELEMENT__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet( + UMLPackage.NAMED_ELEMENT__VISIBILITY, visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.NAMED_ELEMENT__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public String getQualifiedName() { + // TODO: implement this method to return the 'Qualified Name' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY, + clientDependency = new EObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public Dependency getClientDependency(String name) { + for (Iterator i = getClientDependencies().iterator(); i.hasNext();) { + Dependency clientDependency = (Dependency) i.next(); + if (name.equals(clientDependency.getName())) { + return clientDependency; + } + } + return null; + } + + /** + * + * + * @generated + */ + public StringExpression getNameExpression() { + StringExpression nameExpression = (StringExpression) eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION); + return nameExpression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetNameExpression( + StringExpression newNameExpression, NotificationChain msgs) { + Object oldNameExpression = eVirtualSet( + UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION, newNameExpression); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION, + oldNameExpression == EVIRTUAL_NO_VALUE + ? null + : oldNameExpression, newNameExpression); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setNameExpression(StringExpression newNameExpression) { + StringExpression nameExpression = (StringExpression) eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION); + if (newNameExpression != nameExpression) { + NotificationChain msgs = null; + if (nameExpression != null) + msgs = ((InternalEObject) nameExpression) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION, null, msgs); + if (newNameExpression != null) + msgs = ((InternalEObject) newNameExpression) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION, null, msgs); + msgs = basicSetNameExpression(newNameExpression, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION, newNameExpression, + newNameExpression)); + + } + + /** + * + * + * @generated + */ + public StringExpression createNameExpression() { + StringExpression newNameExpression = UMLFactory.eINSTANCE + .createStringExpression(); + setNameExpression(newNameExpression); + return newNameExpression; + } + + /** + * + * + * @generated + */ + public boolean validateNoName(DiagnosticChain diagnostics, Map context) { + return NamedElementOperations + .validateNoName(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateQualifiedName(DiagnosticChain diagnostics, + Map context) { + return NamedElementOperations.validateQualifiedName(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateVisibilityNeedsOwnership( + DiagnosticChain diagnostics, Map context) { + return NamedElementOperations.validateVisibilityNeedsOwnership(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public String qualifiedName() { + return NamedElementOperations.qualifiedName(this); + } + + /** + * + * + * @generated + */ + public List allNamespaces() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getNamedElement().getEOperations().get(4)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getNamedElement() + .getEOperations().get(4), result = NamedElementOperations + .allNamespaces(this)); + } + return result; + } + return NamedElementOperations.allNamespaces(this); + } + + /** + * + * + * @generated + */ + public boolean isDistinguishableFrom(NamedElement n, Namespace ns) { + return NamedElementOperations.isDistinguishableFrom(this, n, ns); + } + + /** + * + * + * @generated + */ + public String separator() { + return NamedElementOperations.separator(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.NAMED_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.NAMED_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.NAMED_ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMED_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.NAMED_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.NAMED_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.NAMED_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.NAMED_ELEMENT__NAME : + return getName(); + case UMLPackage.NAMED_ELEMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.NAMED_ELEMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.NAMED_ELEMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION : + return getNameExpression(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMED_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.NAMED_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.NAMED_ELEMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.NAMED_ELEMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMED_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.NAMED_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.NAMED_ELEMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.NAMED_ELEMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMED_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.NAMED_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.NAMED_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.NAMED_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.NAMED_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.NAMED_ELEMENT__NAME : + String name = eVirtualIsSet(UMLPackage.NAMED_ELEMENT__NAME) + ? (String) eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.NAMED_ELEMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.NAMED_ELEMENT__VISIBILITY) + && eVirtualGet(UMLPackage.NAMED_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.NAMED_ELEMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.NAMED_ELEMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.NAMED_ELEMENT__NAME) + ? eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME) + : NAME_EDEFAULT); + result.append(", visibility: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.NAMED_ELEMENT__VISIBILITY) + ? eVirtualGet(UMLPackage.NAMED_ELEMENT__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + return null; + } + + /** + * + * + * @generated + */ + public Namespace getNamespace() { + Namespace namespace = basicGetNamespace(); + return namespace == null + ? null + : (Namespace) eResolveProxy((InternalEObject) namespace); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return false; + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + if (isSetNamespace()) { + return basicGetNamespace(); + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() || isSetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getNamedElement_NameExpression()); + } + +} //NamedElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java new file mode 100644 index 00000000..0df1f410 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java @@ -0,0 +1,657 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NamespaceImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.NamespaceOperations; + +/** + * + * An implementation of the model object 'Namespace'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getElementImports Element Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getPackageImports Package Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getOwnedRules Owned Rule}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getImportedMembers Imported Member}
  • + *
+ *

+ * + * @generated + */ +public abstract class NamespaceImpl + extends NamedElementImpl + implements Namespace { + + /** + * + * + * @generated + */ + protected NamespaceImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getNamespace(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.NAMESPACE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.NAMESPACE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.NAMESPACE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.NAMESPACE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.NAMESPACE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.NAMESPACE__OWNED_MEMBER, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getNamespace_OwnedRule()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public NamedElement getOwnedMember(String name) { + for (Iterator i = getOwnedMembers().iterator(); i.hasNext();) { + NamedElement ownedMember = (NamedElement) i.next(); + if (name.equals(ownedMember.getName())) { + return ownedMember; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.NAMESPACE__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.NAMESPACE__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.NAMESPACE__MEMBER, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember()})); + } + return member; + } + + /** + * + * + * @generated + */ + public NamedElement getMember(String name) { + for (Iterator i = getMembers().iterator(); i.hasNext();) { + NamedElement member = (NamedElement) i.next(); + if (name.equals(member.getName())) { + return member; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getElementImports() { + List elementImport = (List) eVirtualGet(UMLPackage.NAMESPACE__ELEMENT_IMPORT); + if (elementImport == null) { + eVirtualSet(UMLPackage.NAMESPACE__ELEMENT_IMPORT, + elementImport = new EObjectContainmentWithInverseEList( + ElementImport.class, this, + UMLPackage.NAMESPACE__ELEMENT_IMPORT, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE)); + } + return elementImport; + } + + /** + * + * + * @generated + */ + public ElementImport createElementImport() { + ElementImport newElementImport = UMLFactory.eINSTANCE + .createElementImport(); + getElementImports().add(newElementImport); + return newElementImport; + } + + /** + * + * + * @generated + */ + public List getPackageImports() { + List packageImport = (List) eVirtualGet(UMLPackage.NAMESPACE__PACKAGE_IMPORT); + if (packageImport == null) { + eVirtualSet(UMLPackage.NAMESPACE__PACKAGE_IMPORT, + packageImport = new EObjectContainmentWithInverseEList( + PackageImport.class, this, + UMLPackage.NAMESPACE__PACKAGE_IMPORT, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE)); + } + return packageImport; + } + + /** + * + * + * @generated + */ + public PackageImport createPackageImport(EClass eClass) { + PackageImport newPackageImport = (PackageImport) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getPackageImports().add(newPackageImport); + return newPackageImport; + } + + /** + * + * + * @generated + */ + public PackageImport createPackageImport() { + PackageImport newPackageImport = UMLFactory.eINSTANCE + .createPackageImport(); + getPackageImports().add(newPackageImport); + return newPackageImport; + } + + /** + * + * + * @generated + */ + public List getOwnedRules() { + List ownedRule = (List) eVirtualGet(UMLPackage.NAMESPACE__OWNED_RULE); + if (ownedRule == null) { + eVirtualSet(UMLPackage.NAMESPACE__OWNED_RULE, + ownedRule = new EObjectContainmentWithInverseEList( + Constraint.class, this, UMLPackage.NAMESPACE__OWNED_RULE, + UMLPackage.CONSTRAINT__CONTEXT)); + } + return ownedRule; + } + + /** + * + * + * @generated + */ + public Constraint createOwnedRule(EClass eClass) { + Constraint newOwnedRule = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedRules().add(newOwnedRule); + return newOwnedRule; + } + + /** + * + * + * @generated + */ + public Constraint createOwnedRule() { + Constraint newOwnedRule = UMLFactory.eINSTANCE.createConstraint(); + getOwnedRules().add(newOwnedRule); + return newOwnedRule; + } + + /** + * + * + * @generated + */ + public Constraint getOwnedRule(String name) { + for (Iterator i = getOwnedRules().iterator(); i.hasNext();) { + Constraint ownedRule = (Constraint) i.next(); + if (name.equals(ownedRule.getName())) { + return ownedRule; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getImportedMembers() { + // TODO: implement this method to return the 'Imported Member' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public PackageableElement getImportedMember(String name) { + for (Iterator i = getImportedMembers().iterator(); i.hasNext();) { + PackageableElement importedMember = (PackageableElement) i.next(); + if (name.equals(importedMember.getName())) { + return importedMember; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateMembersAreDistinguishable( + DiagnosticChain diagnostics, Map context) { + return NamespaceOperations.validateMembersAreDistinguishable(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public List getNamesOfMember(NamedElement element) { + return NamespaceOperations.getNamesOfMember(this, element); + } + + /** + * + * + * @generated + */ + public boolean membersAreDistinguishable() { + return NamespaceOperations.membersAreDistinguishable(this); + } + + /** + * + * + * @generated + */ + public List importMembers(List imps) { + return NamespaceOperations.importMembers(this, imps); + } + + /** + * + * + * @generated + */ + public List excludeCollisions(List imps) { + return NamespaceOperations.excludeCollisions(this, imps); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.NAMESPACE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.NAMESPACE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.NAMESPACE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.NAMESPACE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.NAMESPACE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.NAMESPACE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.NAMESPACE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.NAMESPACE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMESPACE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.NAMESPACE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.NAMESPACE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.NAMESPACE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.NAMESPACE__NAME : + return getName(); + case UMLPackage.NAMESPACE__VISIBILITY : + return getVisibility(); + case UMLPackage.NAMESPACE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.NAMESPACE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.NAMESPACE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.NAMESPACE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.NAMESPACE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.NAMESPACE__MEMBER : + return getMembers(); + case UMLPackage.NAMESPACE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.NAMESPACE__OWNED_MEMBER : + return getOwnedMembers(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMESPACE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.NAMESPACE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.NAMESPACE__NAME : + setName((String) newValue); + return; + case UMLPackage.NAMESPACE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.NAMESPACE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.NAMESPACE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.NAMESPACE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMESPACE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.NAMESPACE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.NAMESPACE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.NAMESPACE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.NAMESPACE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.NAMESPACE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.NAMESPACE__OWNED_RULE : + getOwnedRules().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NAMESPACE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.NAMESPACE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.NAMESPACE__OWNER : + return isSetOwner(); + case UMLPackage.NAMESPACE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.NAMESPACE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.NAMESPACE__NAME : + String name = eVirtualIsSet(UMLPackage.NAMESPACE__NAME) + ? (String) eVirtualGet(UMLPackage.NAMESPACE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.NAMESPACE__VISIBILITY : + return eVirtualIsSet(UMLPackage.NAMESPACE__VISIBILITY) + && eVirtualGet(UMLPackage.NAMESPACE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.NAMESPACE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.NAMESPACE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.NAMESPACE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.NAMESPACE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.NAMESPACE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.NAMESPACE__NAME_EXPRESSION) != null; + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.NAMESPACE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.NAMESPACE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.NAMESPACE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.NAMESPACE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.NAMESPACE__MEMBER : + return isSetMembers(); + case UMLPackage.NAMESPACE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.NAMESPACE__OWNED_MEMBER : + return isSetOwnedMembers(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getNamespace_ElementImport()) + || eIsSet(UMLPackage.eINSTANCE.getNamespace_PackageImport()) + || isSetOwnedMembers(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return eIsSet(UMLPackage.eINSTANCE.getNamespace_OwnedRule()); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return eIsSet(UMLPackage.eINSTANCE.getNamespace_ImportedMember()) + || isSetOwnedMembers(); + } + +} //NamespaceImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java new file mode 100644 index 00000000..5473f92c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java @@ -0,0 +1,1142 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NodeImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Node; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.NodeOperations; + +/** + * + * An implementation of the model object 'Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getDeployments Deployment}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getDeployedElements Deployed Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getNestedNodes Nested Node}
  • + *
+ *

+ * + * @generated + */ +public class NodeImpl + extends ClassImpl + implements Node { + + /** + * + * + * @generated + */ + protected NodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getNode(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization(), + UMLPackage.eINSTANCE.getDeploymentTarget_Deployment()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.NODE__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.NODE__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, UMLPackage.NODE__CLIENT_DEPENDENCY, + new int[]{UMLPackage.NODE__SUBSTITUTION, + UMLPackage.NODE__INTERFACE_REALIZATION, + UMLPackage.NODE__DEPLOYMENT}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public List getDeployments() { + List deployment = (List) eVirtualGet(UMLPackage.NODE__DEPLOYMENT); + if (deployment == null) { + eVirtualSet(UMLPackage.NODE__DEPLOYMENT, + deployment = new SubsetEObjectContainmentWithInverseEList( + Deployment.class, this, UMLPackage.NODE__DEPLOYMENT, + new int[]{UMLPackage.NODE__CLIENT_DEPENDENCY}, + UMLPackage.DEPLOYMENT__LOCATION)); + } + return deployment; + } + + /** + * + * + * @generated + */ + public Deployment createDeployment() { + Deployment newDeployment = UMLFactory.eINSTANCE.createDeployment(); + getDeployments().add(newDeployment); + return newDeployment; + } + + /** + * + * + * @generated + */ + public Deployment getDeployment(String name) { + for (Iterator i = getDeployments().iterator(); i.hasNext();) { + Deployment deployment = (Deployment) i.next(); + if (name.equals(deployment.getName())) { + return deployment; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getDeployedElements() { + // TODO: implement this method to return the 'Deployed Element' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public PackageableElement getDeployedElement(String name) { + for (Iterator i = getDeployedElements().iterator(); i.hasNext();) { + PackageableElement deployedElement = (PackageableElement) i.next(); + if (name.equals(deployedElement.getName())) { + return deployedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.NODE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.NODE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.NODE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getNode_NestedNode()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getNestedNodes() { + List nestedNode = (List) eVirtualGet(UMLPackage.NODE__NESTED_NODE); + if (nestedNode == null) { + eVirtualSet(UMLPackage.NODE__NESTED_NODE, + nestedNode = new EObjectContainmentEList(Node.class, this, + UMLPackage.NODE__NESTED_NODE)); + } + return nestedNode; + } + + /** + * + * + * @generated + */ + public Node createNestedNode(EClass eClass) { + Node newNestedNode = (Node) eClass.getEPackage().getEFactoryInstance() + .create(eClass); + getNestedNodes().add(newNestedNode); + return newNestedNode; + } + + /** + * + * + * @generated + */ + public Node createNestedNode() { + Node newNestedNode = UMLFactory.eINSTANCE.createNode(); + getNestedNodes().add(newNestedNode); + return newNestedNode; + } + + /** + * + * + * @generated + */ + public Node getNestedNode(String name) { + for (Iterator i = getNestedNodes().iterator(); i.hasNext();) { + Node nestedNode = (Node) i.next(); + if (name.equals(nestedNode.getName())) { + return nestedNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateInternalStructure(DiagnosticChain diagnostics, + Map context) { + return NodeOperations.validateInternalStructure(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.NODE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.NODE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.NODE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.NODE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.NODE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.NODE__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.NODE__OWNED_SIGNATURE, null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.NODE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.NODE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.NODE__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.NODE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.NODE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.NODE__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.NODE__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.NODE__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.NODE__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicRemove( + otherEnd, msgs); + case UMLPackage.NODE__NESTED_NODE : + return ((InternalEList) getNestedNodes()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.NODE__NAME : + return getName(); + case UMLPackage.NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.NODE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.NODE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.NODE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.NODE__MEMBER : + return getMembers(); + case UMLPackage.NODE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.NODE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.NODE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.NODE__PACKAGE : + return getPackage(); + case UMLPackage.NODE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.NODE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.NODE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.NODE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.NODE__FEATURE : + return getFeatures(); + case UMLPackage.NODE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.NODE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.NODE__GENERAL : + return getGenerals(); + case UMLPackage.NODE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.NODE__USE_CASE : + return getUseCases(); + case UMLPackage.NODE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.NODE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.NODE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.NODE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.NODE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.NODE__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.NODE__PART : + return getParts(); + case UMLPackage.NODE__ROLE : + return getRoles(); + case UMLPackage.NODE__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.NODE__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.NODE__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.NODE__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.NODE__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.NODE__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.NODE__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.NODE__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.NODE__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.NODE__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.NODE__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.NODE__EXTENSION : + return getExtensions(); + case UMLPackage.NODE__DEPLOYMENT : + return getDeployments(); + case UMLPackage.NODE__DEPLOYED_ELEMENT : + return getDeployedElements(); + case UMLPackage.NODE__NESTED_NODE : + return getNestedNodes(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.NODE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.NODE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.NODE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.NODE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.NODE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.NODE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.NODE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.NODE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.NODE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.NODE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.NODE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.NODE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.NODE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.NODE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.NODE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.NODE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.NODE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.NODE__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.NODE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.NODE__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.NODE__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.NODE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.NODE__DEPLOYMENT : + getDeployments().clear(); + getDeployments().addAll((Collection) newValue); + return; + case UMLPackage.NODE__NESTED_NODE : + getNestedNodes().clear(); + getNestedNodes().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.NODE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.NODE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.NODE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.NODE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.NODE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.NODE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.NODE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.NODE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.NODE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.NODE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.NODE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.NODE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.NODE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.NODE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.NODE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.NODE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.NODE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.NODE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.NODE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.NODE__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.NODE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.NODE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.NODE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.NODE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.NODE__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.NODE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.NODE__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.NODE__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.NODE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.NODE__DEPLOYMENT : + getDeployments().clear(); + return; + case UMLPackage.NODE__NESTED_NODE : + getNestedNodes().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.NODE__OWNER : + return isSetOwner(); + case UMLPackage.NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.NODE__NAME : + String name = eVirtualIsSet(UMLPackage.NODE__NAME) + ? (String) eVirtualGet(UMLPackage.NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.NODE__VISIBILITY) + && eVirtualGet(UMLPackage.NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.NODE__NAME_EXPRESSION) != null; + case UMLPackage.NODE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.NODE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.NODE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.NODE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.NODE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.NODE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.NODE__MEMBER : + return isSetMembers(); + case UMLPackage.NODE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.NODE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.NODE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.NODE__TEMPLATE_PARAMETER) != null; + case UMLPackage.NODE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.NODE__PACKAGE : + return getPackage() != null; + case UMLPackage.NODE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.NODE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.NODE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.NODE__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.NODE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.NODE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.NODE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.NODE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.NODE__FEATURE : + return isSetFeatures(); + case UMLPackage.NODE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.NODE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.NODE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.NODE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.NODE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.NODE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.NODE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.NODE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.NODE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.NODE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.NODE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.NODE__REPRESENTATION : + return eVirtualGet(UMLPackage.NODE__REPRESENTATION) != null; + case UMLPackage.NODE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.NODE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.NODE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.NODE__OWNED_SIGNATURE) != null; + case UMLPackage.NODE__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.NODE__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.NODE__PART : + return !getParts().isEmpty(); + case UMLPackage.NODE__ROLE : + return isSetRoles(); + case UMLPackage.NODE__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.NODE__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.NODE__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.NODE__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.NODE__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.NODE__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.NODE__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.NODE__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.NODE__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.NODE__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.NODE__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.NODE__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.NODE__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.NODE__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.NODE__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.NODE__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.NODE__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.NODE__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.NODE__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.NODE__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.NODE__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.NODE__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.NODE__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.NODE__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + case UMLPackage.NODE__NESTED_NODE : + List nestedNode = (List) eVirtualGet(UMLPackage.NODE__NESTED_NODE); + return nestedNode != null && !nestedNode.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == DeploymentTarget.class) { + switch (derivedFeatureID) { + case UMLPackage.NODE__DEPLOYMENT : + return UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT; + case UMLPackage.NODE__DEPLOYED_ELEMENT : + return UMLPackage.DEPLOYMENT_TARGET__DEPLOYED_ELEMENT; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == DeploymentTarget.class) { + switch (baseFeatureID) { + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + return UMLPackage.NODE__DEPLOYMENT; + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYED_ELEMENT : + return UMLPackage.NODE__DEPLOYED_ELEMENT; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getDeploymentTarget_Deployment()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getNode_NestedNode()); + } + +} //NodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java new file mode 100644 index 00000000..d35a3da4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java @@ -0,0 +1,683 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectFlowImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.ObjectFlow; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ObjectFlowOperations; + +/** + * + * An implementation of the model object 'Object Flow'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#isMulticast Is Multicast}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#isMultireceive Is Multireceive}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#getTransformation Transformation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#getSelection Selection}
  • + *
+ *

+ * + * @generated + */ +public class ObjectFlowImpl + extends ActivityEdgeImpl + implements ObjectFlow { + + /** + * The default value of the '{@link #isMulticast() Is Multicast}' attribute. + * + * + * @see #isMulticast() + * @generated + * @ordered + */ + protected static final boolean IS_MULTICAST_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isMulticast() Is Multicast}' attribute. + * + * + * @see #isMulticast() + * @generated + * @ordered + */ + protected static final int IS_MULTICAST_EFLAG = 1 << 9; + + /** + * The default value of the '{@link #isMultireceive() Is Multireceive}' attribute. + * + * + * @see #isMultireceive() + * @generated + * @ordered + */ + protected static final boolean IS_MULTIRECEIVE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isMultireceive() Is Multireceive}' attribute. + * + * + * @see #isMultireceive() + * @generated + * @ordered + */ + protected static final int IS_MULTIRECEIVE_EFLAG = 1 << 10; + + /** + * + * + * @generated + */ + protected ObjectFlowImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getObjectFlow(); + } + + /** + * + * + * @generated + */ + public boolean isMulticast() { + return (eFlags & IS_MULTICAST_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsMulticast(boolean newIsMulticast) { + boolean oldIsMulticast = (eFlags & IS_MULTICAST_EFLAG) != 0; + if (newIsMulticast) + eFlags |= IS_MULTICAST_EFLAG; + else + eFlags &= ~IS_MULTICAST_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_FLOW__IS_MULTICAST, oldIsMulticast, + newIsMulticast)); + + } + + /** + * + * + * @generated + */ + public boolean isMultireceive() { + return (eFlags & IS_MULTIRECEIVE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsMultireceive(boolean newIsMultireceive) { + boolean oldIsMultireceive = (eFlags & IS_MULTIRECEIVE_EFLAG) != 0; + if (newIsMultireceive) + eFlags |= IS_MULTIRECEIVE_EFLAG; + else + eFlags &= ~IS_MULTIRECEIVE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE, oldIsMultireceive, + newIsMultireceive)); + + } + + /** + * + * + * @generated + */ + public Behavior getTransformation() { + Behavior transformation = (Behavior) eVirtualGet(UMLPackage.OBJECT_FLOW__TRANSFORMATION); + if (transformation != null && transformation.eIsProxy()) { + Behavior oldTransformation = transformation; + transformation = (Behavior) eResolveProxy((InternalEObject) transformation); + if (transformation != oldTransformation) { + eVirtualSet(UMLPackage.OBJECT_FLOW__TRANSFORMATION, + transformation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OBJECT_FLOW__TRANSFORMATION, + oldTransformation, transformation)); + } + } + return transformation; + } + + /** + * + * + * @generated + */ + public Behavior basicGetTransformation() { + return (Behavior) eVirtualGet(UMLPackage.OBJECT_FLOW__TRANSFORMATION); + } + + /** + * + * + * @generated + */ + public void setTransformation(Behavior newTransformation) { + Behavior transformation = newTransformation; + Object oldTransformation = eVirtualSet( + UMLPackage.OBJECT_FLOW__TRANSFORMATION, transformation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_FLOW__TRANSFORMATION, + oldTransformation == EVIRTUAL_NO_VALUE + ? null + : oldTransformation, transformation)); + + } + + /** + * + * + * @generated + */ + public Behavior getSelection() { + Behavior selection = (Behavior) eVirtualGet(UMLPackage.OBJECT_FLOW__SELECTION); + if (selection != null && selection.eIsProxy()) { + Behavior oldSelection = selection; + selection = (Behavior) eResolveProxy((InternalEObject) selection); + if (selection != oldSelection) { + eVirtualSet(UMLPackage.OBJECT_FLOW__SELECTION, selection); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OBJECT_FLOW__SELECTION, oldSelection, + selection)); + } + } + return selection; + } + + /** + * + * + * @generated + */ + public Behavior basicGetSelection() { + return (Behavior) eVirtualGet(UMLPackage.OBJECT_FLOW__SELECTION); + } + + /** + * + * + * @generated + */ + public void setSelection(Behavior newSelection) { + Behavior selection = newSelection; + Object oldSelection = eVirtualSet(UMLPackage.OBJECT_FLOW__SELECTION, + selection); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_FLOW__SELECTION, + oldSelection == EVIRTUAL_NO_VALUE + ? null + : oldSelection, selection)); + + } + + /** + * + * + * @generated + */ + public boolean validateNoActions(DiagnosticChain diagnostics, Map context) { + return ObjectFlowOperations.validateNoActions(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateCompatibleTypes(DiagnosticChain diagnostics, + Map context) { + return ObjectFlowOperations.validateCompatibleTypes(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSameUpperBounds(DiagnosticChain diagnostics, + Map context) { + return ObjectFlowOperations.validateSameUpperBounds(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTarget(DiagnosticChain diagnostics, Map context) { + return ObjectFlowOperations.validateTarget(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTransformationBehaviour(DiagnosticChain diagnostics, + Map context) { + return ObjectFlowOperations.validateTransformationBehaviour(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSelectionBehaviour(DiagnosticChain diagnostics, + Map context) { + return ObjectFlowOperations.validateSelectionBehaviour(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInputAndOutputParameter(DiagnosticChain diagnostics, + Map context) { + return ObjectFlowOperations.validateInputAndOutputParameter(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateIsMulticastOrIsMultireceive( + DiagnosticChain diagnostics, Map context) { + return ObjectFlowOperations.validateIsMulticastOrIsMultireceive(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_FLOW__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OBJECT_FLOW__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OBJECT_FLOW__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OBJECT_FLOW__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OBJECT_FLOW__NAME : + return getName(); + case UMLPackage.OBJECT_FLOW__VISIBILITY : + return getVisibility(); + case UMLPackage.OBJECT_FLOW__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OBJECT_FLOW__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OBJECT_FLOW__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OBJECT_FLOW__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OBJECT_FLOW__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OBJECT_FLOW__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.OBJECT_FLOW__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.OBJECT_FLOW__ACTIVITY : + return getActivity(); + case UMLPackage.OBJECT_FLOW__IN_GROUP : + return getInGroups(); + case UMLPackage.OBJECT_FLOW__IN_PARTITION : + return getInPartitions(); + case UMLPackage.OBJECT_FLOW__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.OBJECT_FLOW__TARGET : + if (resolve) + return getTarget(); + return basicGetTarget(); + case UMLPackage.OBJECT_FLOW__REDEFINED_EDGE : + return getRedefinedEdges(); + case UMLPackage.OBJECT_FLOW__GUARD : + return getGuard(); + case UMLPackage.OBJECT_FLOW__WEIGHT : + return getWeight(); + case UMLPackage.OBJECT_FLOW__INTERRUPTS : + if (resolve) + return getInterrupts(); + return basicGetInterrupts(); + case UMLPackage.OBJECT_FLOW__SOURCE : + if (resolve) + return getSource(); + return basicGetSource(); + case UMLPackage.OBJECT_FLOW__IS_MULTICAST : + return isMulticast() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE : + return isMultireceive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OBJECT_FLOW__TRANSFORMATION : + if (resolve) + return getTransformation(); + return basicGetTransformation(); + case UMLPackage.OBJECT_FLOW__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_FLOW__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_FLOW__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_FLOW__NAME : + setName((String) newValue); + return; + case UMLPackage.OBJECT_FLOW__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OBJECT_FLOW__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_FLOW__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OBJECT_FLOW__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OBJECT_FLOW__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.OBJECT_FLOW__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_FLOW__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.OBJECT_FLOW__TARGET : + setTarget((ActivityNode) newValue); + return; + case UMLPackage.OBJECT_FLOW__REDEFINED_EDGE : + getRedefinedEdges().clear(); + getRedefinedEdges().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_FLOW__GUARD : + setGuard((ValueSpecification) newValue); + return; + case UMLPackage.OBJECT_FLOW__WEIGHT : + setWeight((ValueSpecification) newValue); + return; + case UMLPackage.OBJECT_FLOW__INTERRUPTS : + setInterrupts((InterruptibleActivityRegion) newValue); + return; + case UMLPackage.OBJECT_FLOW__SOURCE : + setSource((ActivityNode) newValue); + return; + case UMLPackage.OBJECT_FLOW__IS_MULTICAST : + setIsMulticast(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE : + setIsMultireceive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OBJECT_FLOW__TRANSFORMATION : + setTransformation((Behavior) newValue); + return; + case UMLPackage.OBJECT_FLOW__SELECTION : + setSelection((Behavior) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_FLOW__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OBJECT_FLOW__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OBJECT_FLOW__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OBJECT_FLOW__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OBJECT_FLOW__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OBJECT_FLOW__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OBJECT_FLOW__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.OBJECT_FLOW__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.OBJECT_FLOW__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.OBJECT_FLOW__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.OBJECT_FLOW__TARGET : + setTarget((ActivityNode) null); + return; + case UMLPackage.OBJECT_FLOW__REDEFINED_EDGE : + getRedefinedEdges().clear(); + return; + case UMLPackage.OBJECT_FLOW__GUARD : + setGuard((ValueSpecification) null); + return; + case UMLPackage.OBJECT_FLOW__WEIGHT : + setWeight((ValueSpecification) null); + return; + case UMLPackage.OBJECT_FLOW__INTERRUPTS : + setInterrupts((InterruptibleActivityRegion) null); + return; + case UMLPackage.OBJECT_FLOW__SOURCE : + setSource((ActivityNode) null); + return; + case UMLPackage.OBJECT_FLOW__IS_MULTICAST : + setIsMulticast(IS_MULTICAST_EDEFAULT); + return; + case UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE : + setIsMultireceive(IS_MULTIRECEIVE_EDEFAULT); + return; + case UMLPackage.OBJECT_FLOW__TRANSFORMATION : + setTransformation((Behavior) null); + return; + case UMLPackage.OBJECT_FLOW__SELECTION : + setSelection((Behavior) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_FLOW__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OBJECT_FLOW__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OBJECT_FLOW__OWNER : + return isSetOwner(); + case UMLPackage.OBJECT_FLOW__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OBJECT_FLOW__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OBJECT_FLOW__NAME : + String name = eVirtualIsSet(UMLPackage.OBJECT_FLOW__NAME) + ? (String) eVirtualGet(UMLPackage.OBJECT_FLOW__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OBJECT_FLOW__VISIBILITY : + return eVirtualIsSet(UMLPackage.OBJECT_FLOW__VISIBILITY) + && eVirtualGet(UMLPackage.OBJECT_FLOW__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OBJECT_FLOW__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OBJECT_FLOW__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OBJECT_FLOW__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OBJECT_FLOW__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OBJECT_FLOW__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OBJECT_FLOW__NAME_EXPRESSION) != null; + case UMLPackage.OBJECT_FLOW__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.OBJECT_FLOW__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.OBJECT_FLOW__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.OBJECT_FLOW__ACTIVITY : + return getActivity() != null; + case UMLPackage.OBJECT_FLOW__IN_GROUP : + return isSetInGroups(); + case UMLPackage.OBJECT_FLOW__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.OBJECT_FLOW__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.OBJECT_FLOW__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.OBJECT_FLOW__TARGET : + return eVirtualGet(UMLPackage.OBJECT_FLOW__TARGET) != null; + case UMLPackage.OBJECT_FLOW__REDEFINED_EDGE : + List redefinedEdge = (List) eVirtualGet(UMLPackage.OBJECT_FLOW__REDEFINED_EDGE); + return redefinedEdge != null && !redefinedEdge.isEmpty(); + case UMLPackage.OBJECT_FLOW__GUARD : + return eVirtualGet(UMLPackage.OBJECT_FLOW__GUARD) != null; + case UMLPackage.OBJECT_FLOW__WEIGHT : + return eVirtualGet(UMLPackage.OBJECT_FLOW__WEIGHT) != null; + case UMLPackage.OBJECT_FLOW__INTERRUPTS : + return eVirtualGet(UMLPackage.OBJECT_FLOW__INTERRUPTS) != null; + case UMLPackage.OBJECT_FLOW__SOURCE : + return eVirtualGet(UMLPackage.OBJECT_FLOW__SOURCE) != null; + case UMLPackage.OBJECT_FLOW__IS_MULTICAST : + return ((eFlags & IS_MULTICAST_EFLAG) != 0) != IS_MULTICAST_EDEFAULT; + case UMLPackage.OBJECT_FLOW__IS_MULTIRECEIVE : + return ((eFlags & IS_MULTIRECEIVE_EFLAG) != 0) != IS_MULTIRECEIVE_EDEFAULT; + case UMLPackage.OBJECT_FLOW__TRANSFORMATION : + return eVirtualGet(UMLPackage.OBJECT_FLOW__TRANSFORMATION) != null; + case UMLPackage.OBJECT_FLOW__SELECTION : + return eVirtualGet(UMLPackage.OBJECT_FLOW__SELECTION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isMulticast: "); //$NON-NLS-1$ + result.append((eFlags & IS_MULTICAST_EFLAG) != 0); + result.append(", isMultireceive: "); //$NON-NLS-1$ + result.append((eFlags & IS_MULTIRECEIVE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //ObjectFlowImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java new file mode 100644 index 00000000..94662546 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java @@ -0,0 +1,863 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectNodeImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ObjectNode; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ObjectNodeOperations; + +/** + * + * An implementation of the model object 'Object Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getOrdering Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#isControlType Is Control Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getUpperBound Upper Bound}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getInStates In State}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getSelection Selection}
  • + *
+ *

+ * + * @generated + */ +public abstract class ObjectNodeImpl + extends ActivityNodeImpl + implements ObjectNode { + + /** + * The default value of the '{@link #getOrdering() Ordering}' attribute. + * + * + * @see #getOrdering() + * @generated + * @ordered + */ + protected static final ObjectNodeOrderingKind ORDERING_EDEFAULT = ObjectNodeOrderingKind.FIFO_LITERAL; + + /** + * The default value of the '{@link #isControlType() Is Control Type}' attribute. + * + * + * @see #isControlType() + * @generated + * @ordered + */ + protected static final boolean IS_CONTROL_TYPE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isControlType() Is Control Type}' attribute. + * + * + * @see #isControlType() + * @generated + * @ordered + */ + protected static final int IS_CONTROL_TYPE_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected ObjectNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getObjectNode(); + } + + /** + * + * + * @generated + */ + public Type getType() { + Type type = (Type) eVirtualGet(UMLPackage.OBJECT_NODE__TYPE); + if (type != null && type.eIsProxy()) { + Type oldType = type; + type = (Type) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.OBJECT_NODE__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OBJECT_NODE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Type basicGetType() { + return (Type) eVirtualGet(UMLPackage.OBJECT_NODE__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Type newType) { + Type type = newType; + Object oldType = eVirtualSet(UMLPackage.OBJECT_NODE__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_NODE__TYPE, oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.OBJECT_NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.OBJECT_NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.OBJECT_NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getObjectNode_UpperBound()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public ObjectNodeOrderingKind getOrdering() { + ObjectNodeOrderingKind ordering = (ObjectNodeOrderingKind) eVirtualGet(UMLPackage.OBJECT_NODE__ORDERING); + return ordering == null + ? ORDERING_EDEFAULT + : ordering; + } + + /** + * + * + * @generated + */ + public void setOrdering(ObjectNodeOrderingKind newOrdering) { + ObjectNodeOrderingKind ordering = newOrdering == null + ? ORDERING_EDEFAULT + : newOrdering; + Object oldOrdering = eVirtualSet(UMLPackage.OBJECT_NODE__ORDERING, + ordering); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_NODE__ORDERING, + oldOrdering == EVIRTUAL_NO_VALUE + ? ORDERING_EDEFAULT + : oldOrdering, ordering)); + + } + + /** + * + * + * @generated + */ + public boolean isControlType() { + return (eFlags & IS_CONTROL_TYPE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsControlType(boolean newIsControlType) { + boolean oldIsControlType = (eFlags & IS_CONTROL_TYPE_EFLAG) != 0; + if (newIsControlType) + eFlags |= IS_CONTROL_TYPE_EFLAG; + else + eFlags &= ~IS_CONTROL_TYPE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_NODE__IS_CONTROL_TYPE, oldIsControlType, + newIsControlType)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification getUpperBound() { + ValueSpecification upperBound = (ValueSpecification) eVirtualGet(UMLPackage.OBJECT_NODE__UPPER_BOUND); + return upperBound; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpperBound( + ValueSpecification newUpperBound, NotificationChain msgs) { + Object oldUpperBound = eVirtualSet(UMLPackage.OBJECT_NODE__UPPER_BOUND, + newUpperBound); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.OBJECT_NODE__UPPER_BOUND, + oldUpperBound == EVIRTUAL_NO_VALUE + ? null + : oldUpperBound, newUpperBound); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpperBound(ValueSpecification newUpperBound) { + ValueSpecification upperBound = (ValueSpecification) eVirtualGet(UMLPackage.OBJECT_NODE__UPPER_BOUND); + if (newUpperBound != upperBound) { + NotificationChain msgs = null; + if (upperBound != null) + msgs = ((InternalEObject) upperBound).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.OBJECT_NODE__UPPER_BOUND, null, msgs); + if (newUpperBound != null) + msgs = ((InternalEObject) newUpperBound).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.OBJECT_NODE__UPPER_BOUND, null, msgs); + msgs = basicSetUpperBound(newUpperBound, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_NODE__UPPER_BOUND, newUpperBound, + newUpperBound)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createUpperBound(EClass eClass) { + ValueSpecification newUpperBound = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setUpperBound(newUpperBound); + return newUpperBound; + } + + /** + * + * + * @generated + */ + public List getInStates() { + List inState = (List) eVirtualGet(UMLPackage.OBJECT_NODE__IN_STATE); + if (inState == null) { + eVirtualSet(UMLPackage.OBJECT_NODE__IN_STATE, + inState = new EObjectResolvingEList(State.class, this, + UMLPackage.OBJECT_NODE__IN_STATE)); + } + return inState; + } + + /** + * + * + * @generated + */ + public State getInState(String name) { + for (Iterator i = getInStates().iterator(); i.hasNext();) { + State inState = (State) i.next(); + if (name.equals(inState.getName())) { + return inState; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Behavior getSelection() { + Behavior selection = (Behavior) eVirtualGet(UMLPackage.OBJECT_NODE__SELECTION); + if (selection != null && selection.eIsProxy()) { + Behavior oldSelection = selection; + selection = (Behavior) eResolveProxy((InternalEObject) selection); + if (selection != oldSelection) { + eVirtualSet(UMLPackage.OBJECT_NODE__SELECTION, selection); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OBJECT_NODE__SELECTION, oldSelection, + selection)); + } + } + return selection; + } + + /** + * + * + * @generated + */ + public Behavior basicGetSelection() { + return (Behavior) eVirtualGet(UMLPackage.OBJECT_NODE__SELECTION); + } + + /** + * + * + * @generated + */ + public void setSelection(Behavior newSelection) { + Behavior selection = newSelection; + Object oldSelection = eVirtualSet(UMLPackage.OBJECT_NODE__SELECTION, + selection); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OBJECT_NODE__SELECTION, + oldSelection == EVIRTUAL_NO_VALUE + ? null + : oldSelection, selection)); + + } + + /** + * + * + * @generated + */ + public boolean validateObjectFlowEdges(DiagnosticChain diagnostics, + Map context) { + return ObjectNodeOperations.validateObjectFlowEdges(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotUnique(DiagnosticChain diagnostics, Map context) { + return ObjectNodeOperations.validateNotUnique(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSelectionBehavior(DiagnosticChain diagnostics, + Map context) { + return ObjectNodeOperations.validateSelectionBehavior(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInputOutputParameter(DiagnosticChain diagnostics, + Map context) { + return ObjectNodeOperations.validateInputOutputParameter(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OBJECT_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.OBJECT_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.OBJECT_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OBJECT_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.OBJECT_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.OBJECT_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.OBJECT_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.OBJECT_NODE__ACTIVITY, msgs); + case UMLPackage.OBJECT_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.OBJECT_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OBJECT_NODE__UPPER_BOUND : + return basicSetUpperBound(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OBJECT_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OBJECT_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OBJECT_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OBJECT_NODE__NAME : + return getName(); + case UMLPackage.OBJECT_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.OBJECT_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OBJECT_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OBJECT_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OBJECT_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OBJECT_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OBJECT_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.OBJECT_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.OBJECT_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.OBJECT_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.OBJECT_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.OBJECT_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.OBJECT_NODE__INCOMING : + return getIncomings(); + case UMLPackage.OBJECT_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.OBJECT_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.OBJECT_NODE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.OBJECT_NODE__ORDERING : + return getOrdering(); + case UMLPackage.OBJECT_NODE__IS_CONTROL_TYPE : + return isControlType() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OBJECT_NODE__UPPER_BOUND : + return getUpperBound(); + case UMLPackage.OBJECT_NODE__IN_STATE : + return getInStates(); + case UMLPackage.OBJECT_NODE__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.OBJECT_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OBJECT_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OBJECT_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OBJECT_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.OBJECT_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.OBJECT_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__TYPE : + setType((Type) newValue); + return; + case UMLPackage.OBJECT_NODE__ORDERING : + setOrdering((ObjectNodeOrderingKind) newValue); + return; + case UMLPackage.OBJECT_NODE__IS_CONTROL_TYPE : + setIsControlType(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OBJECT_NODE__UPPER_BOUND : + setUpperBound((ValueSpecification) newValue); + return; + case UMLPackage.OBJECT_NODE__IN_STATE : + getInStates().clear(); + getInStates().addAll((Collection) newValue); + return; + case UMLPackage.OBJECT_NODE__SELECTION : + setSelection((Behavior) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OBJECT_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OBJECT_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OBJECT_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OBJECT_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OBJECT_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OBJECT_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.OBJECT_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.OBJECT_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.OBJECT_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.OBJECT_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.OBJECT_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.OBJECT_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.OBJECT_NODE__TYPE : + setType((Type) null); + return; + case UMLPackage.OBJECT_NODE__ORDERING : + setOrdering(ORDERING_EDEFAULT); + return; + case UMLPackage.OBJECT_NODE__IS_CONTROL_TYPE : + setIsControlType(IS_CONTROL_TYPE_EDEFAULT); + return; + case UMLPackage.OBJECT_NODE__UPPER_BOUND : + setUpperBound((ValueSpecification) null); + return; + case UMLPackage.OBJECT_NODE__IN_STATE : + getInStates().clear(); + return; + case UMLPackage.OBJECT_NODE__SELECTION : + setSelection((Behavior) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OBJECT_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OBJECT_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OBJECT_NODE__OWNER : + return isSetOwner(); + case UMLPackage.OBJECT_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OBJECT_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OBJECT_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.OBJECT_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.OBJECT_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OBJECT_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.OBJECT_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.OBJECT_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OBJECT_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OBJECT_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OBJECT_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OBJECT_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OBJECT_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OBJECT_NODE__NAME_EXPRESSION) != null; + case UMLPackage.OBJECT_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.OBJECT_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.OBJECT_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.OBJECT_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.OBJECT_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.OBJECT_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.OBJECT_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.OBJECT_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.OBJECT_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.OBJECT_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.OBJECT_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.OBJECT_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.OBJECT_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.OBJECT_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.OBJECT_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.OBJECT_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.OBJECT_NODE__TYPE : + return eVirtualGet(UMLPackage.OBJECT_NODE__TYPE) != null; + case UMLPackage.OBJECT_NODE__ORDERING : + return eVirtualIsSet(UMLPackage.OBJECT_NODE__ORDERING) + && eVirtualGet(UMLPackage.OBJECT_NODE__ORDERING) != ORDERING_EDEFAULT; + case UMLPackage.OBJECT_NODE__IS_CONTROL_TYPE : + return ((eFlags & IS_CONTROL_TYPE_EFLAG) != 0) != IS_CONTROL_TYPE_EDEFAULT; + case UMLPackage.OBJECT_NODE__UPPER_BOUND : + return eVirtualGet(UMLPackage.OBJECT_NODE__UPPER_BOUND) != null; + case UMLPackage.OBJECT_NODE__IN_STATE : + List inState = (List) eVirtualGet(UMLPackage.OBJECT_NODE__IN_STATE); + return inState != null && !inState.isEmpty(); + case UMLPackage.OBJECT_NODE__SELECTION : + return eVirtualGet(UMLPackage.OBJECT_NODE__SELECTION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == TypedElement.class) { + switch (derivedFeatureID) { + case UMLPackage.OBJECT_NODE__TYPE : + return UMLPackage.TYPED_ELEMENT__TYPE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == TypedElement.class) { + switch (baseFeatureID) { + case UMLPackage.TYPED_ELEMENT__TYPE : + return UMLPackage.OBJECT_NODE__TYPE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (ordering: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OBJECT_NODE__ORDERING) + ? eVirtualGet(UMLPackage.OBJECT_NODE__ORDERING) + : ORDERING_EDEFAULT); + result.append(", isControlType: "); //$NON-NLS-1$ + result.append((eFlags & IS_CONTROL_TYPE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getObjectNode_UpperBound()); + } + +} //ObjectNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OccurrenceSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OccurrenceSpecificationImpl.java new file mode 100644 index 00000000..f3c347d2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OccurrenceSpecificationImpl.java @@ -0,0 +1,545 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OccurrenceSpecificationImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.OccurrenceSpecification; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Occurrence Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getToBefores To Before}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getEvent Event}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getToAfters To After}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getCovereds Covered}
  • + *
+ *

+ * + * @generated + */ +public abstract class OccurrenceSpecificationImpl + extends InteractionFragmentImpl + implements OccurrenceSpecification { + + /** + * + * + * @generated + */ + protected OccurrenceSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOccurrenceSpecification(); + } + + /** + * + * + * @generated + */ + public List getToBefores() { + List toBefore = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE); + if (toBefore == null) { + eVirtualSet(UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE, + toBefore = new EObjectWithInverseResolvingEList( + GeneralOrdering.class, this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE, + UMLPackage.GENERAL_ORDERING__AFTER)); + } + return toBefore; + } + + /** + * + * + * @generated + */ + public GeneralOrdering getToBefore(String name) { + for (Iterator i = getToBefores().iterator(); i.hasNext();) { + GeneralOrdering toBefore = (GeneralOrdering) i.next(); + if (name.equals(toBefore.getName())) { + return toBefore; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Event getEvent() { + Event event = (Event) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__EVENT); + if (event != null && event.eIsProxy()) { + Event oldEvent = event; + event = (Event) eResolveProxy((InternalEObject) event); + if (event != oldEvent) { + eVirtualSet(UMLPackage.OCCURRENCE_SPECIFICATION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OCCURRENCE_SPECIFICATION__EVENT, oldEvent, + event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public Event basicGetEvent() { + return (Event) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__EVENT); + } + + /** + * + * + * @generated + */ + public void setEvent(Event newEvent) { + Event event = newEvent; + Object oldEvent = eVirtualSet( + UMLPackage.OCCURRENCE_SPECIFICATION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OCCURRENCE_SPECIFICATION__EVENT, + oldEvent == EVIRTUAL_NO_VALUE + ? null + : oldEvent, event)); + + } + + /** + * + * + * @generated + */ + public List getToAfters() { + List toAfter = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER); + if (toAfter == null) { + eVirtualSet(UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER, + toAfter = new EObjectWithInverseResolvingEList( + GeneralOrdering.class, this, + UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER, + UMLPackage.GENERAL_ORDERING__BEFORE)); + } + return toAfter; + } + + /** + * + * + * @generated + */ + public GeneralOrdering getToAfter(String name) { + for (Iterator i = getToAfters().iterator(); i.hasNext();) { + GeneralOrdering toAfter = (GeneralOrdering) i.next(); + if (name.equals(toAfter.getName())) { + return toAfter; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getCovereds() { + List covered = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__COVERED); + if (covered == null) { + eVirtualSet(UMLPackage.OCCURRENCE_SPECIFICATION__COVERED, + covered = new EObjectResolvingEList(Lifeline.class, this, + UMLPackage.OCCURRENCE_SPECIFICATION__COVERED)); + } + return covered; + } + + /** + * + * + * @generated + */ + public Lifeline getCovered(String name) { + for (Iterator i = getCovereds().iterator(); i.hasNext();) { + Lifeline covered = (Lifeline) i.next(); + if (name.equals(covered.getName())) { + return covered; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetCovereds() { + List covered = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__COVERED : + return ((InternalEList) getCovereds()).basicAdd(otherEnd, + msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND, + msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE : + return ((InternalEList) getToBefores()).basicAdd(otherEnd, + msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER : + return ((InternalEList) getToAfters()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return eBasicSetContainer( + null, + UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION, + msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND, + msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE : + return ((InternalEList) getToBefores()).basicRemove( + otherEnd, msgs); + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER : + return ((InternalEList) getToAfters()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME : + return getName(); + case UMLPackage.OCCURRENCE_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.OCCURRENCE_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OCCURRENCE_SPECIFICATION__COVERED : + return getCovereds(); + case UMLPackage.OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE : + return getToBefores(); + case UMLPackage.OCCURRENCE_SPECIFICATION__EVENT : + if (resolve) + return getEvent(); + return basicGetEvent(); + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER : + return getToAfters(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OCCURRENCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE : + getToBefores().clear(); + getToBefores().addAll((Collection) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__EVENT : + setEvent((Event) newValue); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER : + getToAfters().clear(); + getToAfters().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OCCURRENCE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__COVERED : + getCovereds().clear(); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE : + getToBefores().clear(); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__EVENT : + setEvent((Event) null); + return; + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER : + getToAfters().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OCCURRENCE_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.OCCURRENCE_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OCCURRENCE_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.OCCURRENCE_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OCCURRENCE_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OCCURRENCE_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.OCCURRENCE_SPECIFICATION__COVERED : + List covered = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.OCCURRENCE_SPECIFICATION__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.OCCURRENCE_SPECIFICATION__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE : + List toBefore = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__TO_BEFORE); + return toBefore != null && !toBefore.isEmpty(); + case UMLPackage.OCCURRENCE_SPECIFICATION__EVENT : + return eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__EVENT) != null; + case UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER : + List toAfter = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__TO_AFTER); + return toAfter != null && !toAfter.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //OccurrenceSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java new file mode 100644 index 00000000..f464e366 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java @@ -0,0 +1,582 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OpaqueAction; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Opaque Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getLanguages Language}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getInputValues Input Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getOutputValues Output Value}
  • + *
+ *

+ * + * @generated + */ +public class OpaqueActionImpl + extends ActionImpl + implements OpaqueAction { + + /** + * + * + * @generated + */ + protected OpaqueActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOpaqueAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.OPAQUE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.OPAQUE_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getOpaqueAction_InputValue()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.OPAQUE_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.OPAQUE_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getOpaqueAction_OutputValue()})); + } + return output; + } + + /** + * + * + * @generated + */ + public List getBodies() { + List body = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__BODY); + if (body == null) { + eVirtualSet(UMLPackage.OPAQUE_ACTION__BODY, + body = new EDataTypeUniqueEList(String.class, this, + UMLPackage.OPAQUE_ACTION__BODY)); + } + return body; + } + + /** + * + * + * @generated + */ + public List getLanguages() { + List language = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__LANGUAGE); + if (language == null) { + eVirtualSet(UMLPackage.OPAQUE_ACTION__LANGUAGE, + language = new EDataTypeUniqueEList(String.class, this, + UMLPackage.OPAQUE_ACTION__LANGUAGE)); + } + return language; + } + + /** + * + * + * @generated + */ + public List getInputValues() { + List inputValue = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__INPUT_VALUE); + if (inputValue == null) { + eVirtualSet(UMLPackage.OPAQUE_ACTION__INPUT_VALUE, + inputValue = new EObjectResolvingEList(InputPin.class, this, + UMLPackage.OPAQUE_ACTION__INPUT_VALUE)); + } + return inputValue; + } + + /** + * + * + * @generated + */ + public InputPin getInputValue(String name) { + for (Iterator i = getInputValues().iterator(); i.hasNext();) { + InputPin inputValue = (InputPin) i.next(); + if (name.equals(inputValue.getName())) { + return inputValue; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOutputValues() { + List outputValue = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE); + if (outputValue == null) { + eVirtualSet(UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE, + outputValue = new EObjectResolvingEList(OutputPin.class, this, + UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE)); + } + return outputValue; + } + + /** + * + * + * @generated + */ + public OutputPin getOutputValue(String name) { + for (Iterator i = getOutputValues().iterator(); i.hasNext();) { + OutputPin outputValue = (OutputPin) i.next(); + if (name.equals(outputValue.getName())) { + return outputValue; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OPAQUE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OPAQUE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OPAQUE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OPAQUE_ACTION__NAME : + return getName(); + case UMLPackage.OPAQUE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.OPAQUE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OPAQUE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OPAQUE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OPAQUE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OPAQUE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPAQUE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.OPAQUE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.OPAQUE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.OPAQUE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.OPAQUE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.OPAQUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.OPAQUE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.OPAQUE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.OPAQUE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.OPAQUE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.OPAQUE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.OPAQUE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.OPAQUE_ACTION__INPUT : + return getInputs(); + case UMLPackage.OPAQUE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.OPAQUE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.OPAQUE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.OPAQUE_ACTION__BODY : + return getBodies(); + case UMLPackage.OPAQUE_ACTION__LANGUAGE : + return getLanguages(); + case UMLPackage.OPAQUE_ACTION__INPUT_VALUE : + return getInputValues(); + case UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE : + return getOutputValues(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.OPAQUE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OPAQUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OPAQUE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPAQUE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.OPAQUE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.OPAQUE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__BODY : + getBodies().clear(); + getBodies().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__LANGUAGE : + getLanguages().clear(); + getLanguages().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__INPUT_VALUE : + getInputValues().clear(); + getInputValues().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE : + getOutputValues().clear(); + getOutputValues().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OPAQUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OPAQUE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OPAQUE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OPAQUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OPAQUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OPAQUE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.OPAQUE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.OPAQUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.OPAQUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.OPAQUE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.OPAQUE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.OPAQUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.OPAQUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.OPAQUE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.OPAQUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.OPAQUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.OPAQUE_ACTION__BODY : + getBodies().clear(); + return; + case UMLPackage.OPAQUE_ACTION__LANGUAGE : + getLanguages().clear(); + return; + case UMLPackage.OPAQUE_ACTION__INPUT_VALUE : + getInputValues().clear(); + return; + case UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE : + getOutputValues().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OPAQUE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OPAQUE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.OPAQUE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OPAQUE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.OPAQUE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.OPAQUE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OPAQUE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.OPAQUE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.OPAQUE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OPAQUE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OPAQUE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OPAQUE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OPAQUE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OPAQUE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.OPAQUE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.OPAQUE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.OPAQUE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.OPAQUE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.OPAQUE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.OPAQUE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.OPAQUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.OPAQUE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.OPAQUE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.OPAQUE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.OPAQUE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.OPAQUE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.OPAQUE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.OPAQUE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.OPAQUE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.OPAQUE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.OPAQUE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.OPAQUE_ACTION__BODY : + List body = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__BODY); + return body != null && !body.isEmpty(); + case UMLPackage.OPAQUE_ACTION__LANGUAGE : + List language = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__LANGUAGE); + return language != null && !language.isEmpty(); + case UMLPackage.OPAQUE_ACTION__INPUT_VALUE : + List inputValue = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__INPUT_VALUE); + return inputValue != null && !inputValue.isEmpty(); + case UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE : + List outputValue = (List) eVirtualGet(UMLPackage.OPAQUE_ACTION__OUTPUT_VALUE); + return outputValue != null && !outputValue.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (body: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OPAQUE_ACTION__BODY) + ? eVirtualGet(UMLPackage.OPAQUE_ACTION__BODY) + : null); + result.append(", language: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OPAQUE_ACTION__LANGUAGE) + ? eVirtualGet(UMLPackage.OPAQUE_ACTION__LANGUAGE) + : null); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getOpaqueAction_InputValue()); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getOpaqueAction_OutputValue()); + } + +} //OpaqueActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueBehaviorImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueBehaviorImpl.java new file mode 100644 index 00000000..9226c7a7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueBehaviorImpl.java @@ -0,0 +1,781 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueBehaviorImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.OpaqueBehavior; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Opaque Behavior'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl#getLanguages Language}
  • + *
+ *

+ * + * @generated + */ +public class OpaqueBehaviorImpl + extends BehaviorImpl + implements OpaqueBehavior { + + /** + * + * + * @generated + */ + protected OpaqueBehaviorImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOpaqueBehavior(); + } + + /** + * + * + * @generated + */ + public List getBodies() { + List body = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__BODY); + if (body == null) { + eVirtualSet(UMLPackage.OPAQUE_BEHAVIOR__BODY, + body = new EDataTypeUniqueEList(String.class, this, + UMLPackage.OPAQUE_BEHAVIOR__BODY)); + } + return body; + } + + /** + * + * + * @generated + */ + public List getLanguages() { + List language = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE); + if (language == null) { + eVirtualSet(UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE, + language = new EDataTypeUniqueEList(String.class, this, + UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE)); + } + return language; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_BEHAVIOR__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OPAQUE_BEHAVIOR__NAME : + return getName(); + case UMLPackage.OPAQUE_BEHAVIOR__VISIBILITY : + return getVisibility(); + case UMLPackage.OPAQUE_BEHAVIOR__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OPAQUE_BEHAVIOR__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OPAQUE_BEHAVIOR__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OPAQUE_BEHAVIOR__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.OPAQUE_BEHAVIOR__MEMBER : + return getMembers(); + case UMLPackage.OPAQUE_BEHAVIOR__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE : + return getPackage(); + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPAQUE_BEHAVIOR__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.OPAQUE_BEHAVIOR__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.OPAQUE_BEHAVIOR__FEATURE : + return getFeatures(); + case UMLPackage.OPAQUE_BEHAVIOR__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.OPAQUE_BEHAVIOR__GENERAL : + return getGenerals(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.OPAQUE_BEHAVIOR__USE_CASE : + return getUseCases(); + case UMLPackage.OPAQUE_BEHAVIOR__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.OPAQUE_BEHAVIOR__ATTRIBUTE : + return getAttributes(); + case UMLPackage.OPAQUE_BEHAVIOR__REPRESENTATION : + return getRepresentation(); + case UMLPackage.OPAQUE_BEHAVIOR__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.OPAQUE_BEHAVIOR__PART : + return getParts(); + case UMLPackage.OPAQUE_BEHAVIOR__ROLE : + return getRoles(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.OPAQUE_BEHAVIOR__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.OPAQUE_BEHAVIOR__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.OPAQUE_BEHAVIOR__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.OPAQUE_BEHAVIOR__EXTENSION : + return getExtensions(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_REENTRANT : + return isReentrant() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR : + return getRedefinedBehaviors(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.OPAQUE_BEHAVIOR__CONTEXT : + if (resolve) + return getContext(); + return basicGetContext(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.OPAQUE_BEHAVIOR__SPECIFICATION : + if (resolve) + return getSpecification(); + return basicGetSpecification(); + case UMLPackage.OPAQUE_BEHAVIOR__BODY : + return getBodies(); + case UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE : + return getLanguages(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_BEHAVIOR__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__NAME : + setName((String) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPAQUE_BEHAVIOR__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_REENTRANT : + setIsReentrant(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + getRedefinedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__CONTEXT : + setContext((BehavioredClassifier) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__SPECIFICATION : + setSpecification((BehavioralFeature) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__BODY : + getBodies().clear(); + getBodies().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE : + getLanguages().clear(); + getLanguages().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_BEHAVIOR__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OPAQUE_BEHAVIOR__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.OPAQUE_BEHAVIOR__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__IS_REENTRANT : + setIsReentrant(IS_REENTRANT_EDEFAULT); + return; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__CONTEXT : + setContext((BehavioredClassifier) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__SPECIFICATION : + setSpecification((BehavioralFeature) null); + return; + case UMLPackage.OPAQUE_BEHAVIOR__BODY : + getBodies().clear(); + return; + case UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE : + getLanguages().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_BEHAVIOR__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNER : + return isSetOwner(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__NAME : + String name = eVirtualIsSet(UMLPackage.OPAQUE_BEHAVIOR__NAME) + ? (String) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OPAQUE_BEHAVIOR__VISIBILITY : + return eVirtualIsSet(UMLPackage.OPAQUE_BEHAVIOR__VISIBILITY) + && eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OPAQUE_BEHAVIOR__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OPAQUE_BEHAVIOR__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__NAME_EXPRESSION) != null; + case UMLPackage.OPAQUE_BEHAVIOR__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__MEMBER : + return isSetMembers(); + case UMLPackage.OPAQUE_BEHAVIOR__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_PARAMETER) != null; + case UMLPackage.OPAQUE_BEHAVIOR__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.OPAQUE_BEHAVIOR__PACKAGE : + return getPackage() != null; + case UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.OPAQUE_BEHAVIOR__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.OPAQUE_BEHAVIOR__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__FEATURE : + return isSetFeatures(); + case UMLPackage.OPAQUE_BEHAVIOR__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.OPAQUE_BEHAVIOR__REPRESENTATION : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__REPRESENTATION) != null; + case UMLPackage.OPAQUE_BEHAVIOR__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_SIGNATURE) != null; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__PART : + return !getParts().isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__ROLE : + return isSetRoles(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.OPAQUE_BEHAVIOR__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__IS_REENTRANT : + return ((eFlags & IS_REENTRANT_EFLAG) != 0) != IS_REENTRANT_EDEFAULT; + case UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR : + List redefinedBehavior = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__REDEFINED_BEHAVIOR); + return redefinedBehavior != null + && !redefinedBehavior.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__CONTEXT : + return basicGetContext() != null; + case UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__SPECIFICATION : + return eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__SPECIFICATION) != null; + case UMLPackage.OPAQUE_BEHAVIOR__BODY : + List body = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__BODY); + return body != null && !body.isEmpty(); + case UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE : + List language = (List) eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE); + return language != null && !language.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (body: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OPAQUE_BEHAVIOR__BODY) + ? eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__BODY) + : null); + result.append(", language: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE) + ? eVirtualGet(UMLPackage.OPAQUE_BEHAVIOR__LANGUAGE) + : null); + result.append(')'); + return result.toString(); + } + +} //OpaqueBehaviorImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java new file mode 100644 index 00000000..02827409 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java @@ -0,0 +1,499 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueExpressionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.OpaqueExpressionOperations; + +/** + * + * An implementation of the model object 'Opaque Expression'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getBodies Body}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getLanguages Language}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getBehavior Behavior}
  • + *
+ *

+ * + * @generated + */ +public class OpaqueExpressionImpl + extends ValueSpecificationImpl + implements OpaqueExpression { + + /** + * + * + * @generated + */ + protected OpaqueExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOpaqueExpression(); + } + + /** + * + * + * @generated + */ + public List getBodies() { + List body = (List) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BODY); + if (body == null) { + eVirtualSet(UMLPackage.OPAQUE_EXPRESSION__BODY, + body = new EDataTypeUniqueEList(String.class, this, + UMLPackage.OPAQUE_EXPRESSION__BODY)); + } + return body; + } + + /** + * + * + * @generated + */ + public List getLanguages() { + List language = (List) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__LANGUAGE); + if (language == null) { + eVirtualSet(UMLPackage.OPAQUE_EXPRESSION__LANGUAGE, + language = new EDataTypeUniqueEList(String.class, this, + UMLPackage.OPAQUE_EXPRESSION__LANGUAGE)); + } + return language; + } + + /** + * + * + * @generated + */ + public Parameter getResult() { + Parameter result = basicGetResult(); + return result == null + ? null + : (result.eIsProxy() + ? (Parameter) eResolveProxy((InternalEObject) result) + : result); + } + + /** + * + * + * @generated + */ + public Parameter basicGetResult() { + // TODO: implement this method to return the 'Result' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Behavior getBehavior() { + Behavior behavior = (Behavior) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR); + if (behavior != null && behavior.eIsProxy()) { + Behavior oldBehavior = behavior; + behavior = (Behavior) eResolveProxy((InternalEObject) behavior); + if (behavior != oldBehavior) { + eVirtualSet(UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR, behavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR, oldBehavior, + behavior)); + } + } + return behavior; + } + + /** + * + * + * @generated + */ + public Behavior basicGetBehavior() { + return (Behavior) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR); + } + + /** + * + * + * @generated + */ + public void setBehavior(Behavior newBehavior) { + Behavior behavior = newBehavior; + Object oldBehavior = eVirtualSet( + UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR, behavior); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR, + oldBehavior == EVIRTUAL_NO_VALUE + ? null + : oldBehavior, behavior)); + + } + + /** + * + * + * @generated + */ + public boolean validateLanguageBodySize(DiagnosticChain diagnostics, + Map context) { + return OpaqueExpressionOperations.validateLanguageBodySize(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOneBodyDefaultLanguage(DiagnosticChain diagnostics, + Map context) { + return OpaqueExpressionOperations.validateOneBodyDefaultLanguage(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOnlyReturnResultParameters( + DiagnosticChain diagnostics, Map context) { + return OpaqueExpressionOperations.validateOnlyReturnResultParameters( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOneReturnResultParameter( + DiagnosticChain diagnostics, Map context) { + return OpaqueExpressionOperations.validateOneReturnResultParameter( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public int value() { + return OpaqueExpressionOperations.value(this); + } + + /** + * + * + * @generated + */ + public boolean isIntegral() { + return OpaqueExpressionOperations.isIntegral(this); + } + + /** + * + * + * @generated + */ + public boolean isPositive() { + return OpaqueExpressionOperations.isPositive(this); + } + + /** + * + * + * @generated + */ + public boolean isNonNegative() { + return OpaqueExpressionOperations.isNonNegative(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_EXPRESSION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OPAQUE_EXPRESSION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OPAQUE_EXPRESSION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OPAQUE_EXPRESSION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OPAQUE_EXPRESSION__NAME : + return getName(); + case UMLPackage.OPAQUE_EXPRESSION__VISIBILITY : + return getVisibility(); + case UMLPackage.OPAQUE_EXPRESSION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OPAQUE_EXPRESSION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OPAQUE_EXPRESSION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OPAQUE_EXPRESSION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OPAQUE_EXPRESSION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.OPAQUE_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.OPAQUE_EXPRESSION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.OPAQUE_EXPRESSION__BODY : + return getBodies(); + case UMLPackage.OPAQUE_EXPRESSION__LANGUAGE : + return getLanguages(); + case UMLPackage.OPAQUE_EXPRESSION__RESULT : + if (resolve) + return getResult(); + return basicGetResult(); + case UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR : + if (resolve) + return getBehavior(); + return basicGetBehavior(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__NAME : + setName((String) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__BODY : + getBodies().clear(); + getBodies().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__LANGUAGE : + getLanguages().clear(); + getLanguages().addAll((Collection) newValue); + return; + case UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR : + setBehavior((Behavior) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OPAQUE_EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OPAQUE_EXPRESSION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OPAQUE_EXPRESSION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OPAQUE_EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OPAQUE_EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OPAQUE_EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPAQUE_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPAQUE_EXPRESSION__TYPE : + setType((Type) null); + return; + case UMLPackage.OPAQUE_EXPRESSION__BODY : + getBodies().clear(); + return; + case UMLPackage.OPAQUE_EXPRESSION__LANGUAGE : + getLanguages().clear(); + return; + case UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR : + setBehavior((Behavior) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPAQUE_EXPRESSION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OPAQUE_EXPRESSION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OPAQUE_EXPRESSION__OWNER : + return isSetOwner(); + case UMLPackage.OPAQUE_EXPRESSION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OPAQUE_EXPRESSION__NAME : + String name = eVirtualIsSet(UMLPackage.OPAQUE_EXPRESSION__NAME) + ? (String) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OPAQUE_EXPRESSION__VISIBILITY : + return eVirtualIsSet(UMLPackage.OPAQUE_EXPRESSION__VISIBILITY) + && eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OPAQUE_EXPRESSION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OPAQUE_EXPRESSION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OPAQUE_EXPRESSION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OPAQUE_EXPRESSION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__NAME_EXPRESSION) != null; + case UMLPackage.OPAQUE_EXPRESSION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__TEMPLATE_PARAMETER) != null; + case UMLPackage.OPAQUE_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.OPAQUE_EXPRESSION__TYPE : + return eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__TYPE) != null; + case UMLPackage.OPAQUE_EXPRESSION__BODY : + List body = (List) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BODY); + return body != null && !body.isEmpty(); + case UMLPackage.OPAQUE_EXPRESSION__LANGUAGE : + List language = (List) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__LANGUAGE); + return language != null && !language.isEmpty(); + case UMLPackage.OPAQUE_EXPRESSION__RESULT : + return basicGetResult() != null; + case UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR : + return eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (body: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OPAQUE_EXPRESSION__BODY) + ? eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BODY) + : null); + result.append(", language: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.OPAQUE_EXPRESSION__LANGUAGE) + ? eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__LANGUAGE) + : null); + result.append(')'); + return result.toString(); + } + +} //OpaqueExpressionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java new file mode 100644 index 00000000..fbab9232 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java @@ -0,0 +1,2030 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OperationImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; + +import org.eclipse.uml2.uml.CallConcurrencyKind; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.OperationOperations; +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * + * An implementation of the model object 'Operation'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedTemplateSignature Owned Template Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getFeaturingClassifiers Featuring Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedRules Owned Rule}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isQuery Is Query}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getClass_ Class }
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getPreconditions Precondition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getPostconditions Postcondition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedOperations Redefined Operation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getDatatype Datatype}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getBodyCondition Body Condition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getInterface Interface}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedParameters Owned Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRaisedExceptions Raised Exception}
  • + *
+ *

+ * + * @generated + */ +public class OperationImpl + extends BehavioralFeatureImpl + implements Operation { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isQuery() Is Query}' attribute. + * + * + * @see #isQuery() + * @generated + * @ordered + */ + protected static final boolean IS_QUERY_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isQuery() Is Query}' attribute. + * + * + * @see #isQuery() + * @generated + * @ordered + */ + protected static final int IS_QUERY_EFLAG = 1 << 11; + + /** + * The default value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_ORDERED_EDEFAULT = false; + + /** + * The default value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final boolean IS_UNIQUE_EDEFAULT = true; + + /** + * The default value of the '{@link #getLower() Lower}' attribute. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected static final int LOWER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getUpper() Upper}' attribute. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected static final int UPPER_EDEFAULT = 1; + + /** + * + * + * @generated + */ + protected OperationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOperation(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.OPERATION__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OPERATION__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.OPERATION__TEMPLATE_PARAMETER, newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.OPERATION__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + OperationTemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter) + .eInverseAdd( + this, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + OperationTemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__TEMPLATE_PARAMETER, newTemplateParameter, + newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public boolean isSetTemplateParameter() { + return eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER) != null; + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.OPERATION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.OPERATION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.OPERATION__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.OPERATION__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * + * + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet(UMLPackage.OPERATION__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.OPERATION__REDEFINITION_CONTEXT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getOperation_Class_(), + UMLPackage.eINSTANCE.getOperation_Datatype(), + UMLPackage.eINSTANCE.getOperation_Interface()})); + } + return redefinitionContext; + } + + /** + * + * + * @generated + */ + public List getFeaturingClassifiers() { + List featuringClassifier = (List) eVirtualGet(UMLPackage.OPERATION__FEATURING_CLASSIFIER); + if (featuringClassifier == null) { + eVirtualSet(UMLPackage.OPERATION__FEATURING_CLASSIFIER, + featuringClassifier = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.OPERATION__FEATURING_CLASSIFIER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getOperation_Class_(), + UMLPackage.eINSTANCE.getOperation_Datatype()})); + } + return featuringClassifier; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.OPERATION__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.OPERATION__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getOperation_RedefinedOperation()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedRules() { + List ownedRule = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_RULE); + if (ownedRule == null) { + eVirtualSet(UMLPackage.OPERATION__OWNED_RULE, + ownedRule = new SupersetEObjectContainmentWithInverseEList( + Constraint.class, this, UMLPackage.OPERATION__OWNED_RULE, + new int[]{UMLPackage.OPERATION__PRECONDITION, + UMLPackage.OPERATION__POSTCONDITION, + UMLPackage.OPERATION__BODY_CONDITION}, + UMLPackage.CONSTRAINT__CONTEXT)); + } + return ownedRule; + } + + /** + * + * + * @generated + */ + public boolean isQuery() { + return (eFlags & IS_QUERY_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsQuery(boolean newIsQuery) { + boolean oldIsQuery = (eFlags & IS_QUERY_EFLAG) != 0; + if (newIsQuery) + eFlags |= IS_QUERY_EFLAG; + else + eFlags &= ~IS_QUERY_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__IS_QUERY, oldIsQuery, newIsQuery)); + + } + + /** + * + * + * @generated + */ + public boolean isOrdered() { + // TODO: implement this method to return the 'Is Ordered' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setIsOrdered(boolean newIsOrdered) { + // TODO: implement this method to set the 'Is Ordered' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean isUnique() { + // TODO: implement this method to return the 'Is Unique' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setIsUnique(boolean newIsUnique) { + // TODO: implement this method to set the 'Is Unique' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public int getUpper() { + // TODO: implement this method to return the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setUpper(int newUpper) { + // TODO: implement this method to set the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class getClass_() { + if (eContainerFeatureID != UMLPackage.OPERATION__CLASS_) + return null; + return (org.eclipse.uml2.uml.Class) eContainer; + } + + /** + * + * + * @generated + */ + public void setClass_(org.eclipse.uml2.uml.Class newClass_) { + if (newClass_ != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__CLASS_ && newClass_ != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newClass_)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newClass_ != null) + msgs = ((InternalEObject) newClass_).eInverseAdd(this, + UMLPackage.CLASS__OWNED_OPERATION, + org.eclipse.uml2.uml.Class.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newClass_, + UMLPackage.OPERATION__CLASS_, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__CLASS_, newClass_, newClass_)); + + } + + /** + * + * + * @generated + */ + public List getPreconditions() { + List precondition = (List) eVirtualGet(UMLPackage.OPERATION__PRECONDITION); + if (precondition == null) { + eVirtualSet(UMLPackage.OPERATION__PRECONDITION, + precondition = new SubsetEObjectEList(Constraint.class, this, + UMLPackage.OPERATION__PRECONDITION, + new int[]{UMLPackage.OPERATION__OWNED_RULE})); + } + return precondition; + } + + /** + * + * + * @generated + */ + public Constraint getPrecondition(String name) { + for (Iterator i = getPreconditions().iterator(); i.hasNext();) { + Constraint precondition = (Constraint) i.next(); + if (name.equals(precondition.getName())) { + return precondition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getPostconditions() { + List postcondition = (List) eVirtualGet(UMLPackage.OPERATION__POSTCONDITION); + if (postcondition == null) { + eVirtualSet(UMLPackage.OPERATION__POSTCONDITION, + postcondition = new SubsetEObjectEList(Constraint.class, this, + UMLPackage.OPERATION__POSTCONDITION, + new int[]{UMLPackage.OPERATION__OWNED_RULE})); + } + return postcondition; + } + + /** + * + * + * @generated + */ + public Constraint getPostcondition(String name) { + for (Iterator i = getPostconditions().iterator(); i.hasNext();) { + Constraint postcondition = (Constraint) i.next(); + if (name.equals(postcondition.getName())) { + return postcondition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinedOperations() { + List redefinedOperation = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINED_OPERATION); + if (redefinedOperation == null) { + eVirtualSet(UMLPackage.OPERATION__REDEFINED_OPERATION, + redefinedOperation = new EObjectResolvingEList(Operation.class, + this, UMLPackage.OPERATION__REDEFINED_OPERATION)); + } + return redefinedOperation; + } + + /** + * + * + * @generated + */ + public Operation getRedefinedOperation(String name) { + for (Iterator i = getRedefinedOperations().iterator(); i.hasNext();) { + Operation redefinedOperation = (Operation) i.next(); + if (name.equals(redefinedOperation.getName())) { + return redefinedOperation; + } + } + return null; + } + + /** + * + * + * @generated + */ + public DataType getDatatype() { + if (eContainerFeatureID != UMLPackage.OPERATION__DATATYPE) + return null; + return (DataType) eContainer; + } + + /** + * + * + * @generated + */ + public void setDatatype(DataType newDatatype) { + if (newDatatype != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__DATATYPE && newDatatype != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newDatatype)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newDatatype != null) + msgs = ((InternalEObject) newDatatype) + .eInverseAdd(this, UMLPackage.DATA_TYPE__OWNED_OPERATION, + DataType.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newDatatype, + UMLPackage.OPERATION__DATATYPE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__DATATYPE, newDatatype, newDatatype)); + + } + + /** + * + * + * @generated + */ + public Constraint getBodyCondition() { + Constraint bodyCondition = (Constraint) eVirtualGet(UMLPackage.OPERATION__BODY_CONDITION); + return bodyCondition; + } + + /** + * + * + * @generated + */ + public void setBodyCondition(Constraint newBodyCondition) { + if (newBodyCondition != null + && !getOwnedRules().contains(newBodyCondition)) { + getOwnedRules().add(newBodyCondition); + } + Constraint bodyCondition = newBodyCondition; + Object oldBodyCondition = eVirtualSet( + UMLPackage.OPERATION__BODY_CONDITION, bodyCondition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__BODY_CONDITION, + oldBodyCondition == EVIRTUAL_NO_VALUE + ? null + : oldBodyCondition, bodyCondition)); + + } + + /** + * + * + * @generated + */ + public Type getType() { + Type type = basicGetType(); + return type == null + ? null + : (type.eIsProxy() + ? (Type) eResolveProxy((InternalEObject) type) + : type); + } + + /** + * + * + * @generated + */ + public Type basicGetType() { + // TODO: implement this method to return the 'Type' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setType(Type newType) { + // TODO: implement this method to set the 'Type' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Interface getInterface() { + if (eContainerFeatureID != UMLPackage.OPERATION__INTERFACE) + return null; + return (Interface) eContainer; + } + + /** + * + * + * @generated + */ + public void setInterface(Interface newInterface) { + if (newInterface != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__INTERFACE && newInterface != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInterface)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInterface != null) + msgs = ((InternalEObject) newInterface).eInverseAdd(this, + UMLPackage.INTERFACE__OWNED_OPERATION, Interface.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newInterface, + UMLPackage.OPERATION__INTERFACE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__INTERFACE, newInterface, newInterface)); + + } + + /** + * + * + * @generated + */ + public List getOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER); + if (ownedParameter == null) { + eVirtualSet(UMLPackage.OPERATION__OWNED_PARAMETER, + ownedParameter = new EObjectContainmentWithInverseEList( + Parameter.class, this, + UMLPackage.OPERATION__OWNED_PARAMETER, + UMLPackage.PARAMETER__OPERATION)); + } + return ownedParameter; + } + + /** + * + * + * @generated + */ + public Parameter createOwnedParameter() { + Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter(); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public Parameter getOwnedParameter(String name) { + for (Iterator i = getOwnedParameters().iterator(); i.hasNext();) { + Parameter ownedParameter = (Parameter) i.next(); + if (name.equals(ownedParameter.getName())) { + return ownedParameter; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + } + + /** + * + * + * @generated + */ + public List getRaisedExceptions() { + List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION); + if (raisedException == null) { + eVirtualSet(UMLPackage.OPERATION__RAISED_EXCEPTION, + raisedException = new EObjectResolvingEList(Type.class, this, + UMLPackage.OPERATION__RAISED_EXCEPTION)); + } + return raisedException; + } + + /** + * + * + * @generated + */ + public Type getRaisedException(String name) { + for (Iterator i = getRaisedExceptions().iterator(); i.hasNext();) { + Type raisedException = (Type) i.next(); + if (name.equals(raisedException.getName())) { + return raisedException; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetRaisedExceptions() { + List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION); + return raisedException != null && !raisedException.isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * + * + * @generated + */ + public boolean isTemplate() { + return TemplateableElementOperations.isTemplate(this); + } + + /** + * + * + * @generated + */ + public boolean validateAtMostOneReturn(DiagnosticChain diagnostics, + Map context) { + return OperationOperations.validateAtMostOneReturn(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateOnlyBodyForQuery(DiagnosticChain diagnostics, + Map context) { + return OperationOperations.validateOnlyBodyForQuery(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public int lowerBound() { + return OperationOperations.lowerBound(this); + } + + /** + * + * + * @generated + */ + public int upperBound() { + return OperationOperations.upperBound(this); + } + + /** + * + * + * @generated + */ + public List returnResult() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getOperation().getEOperations().get(7)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getOperation().getEOperations().get(7), + result = OperationOperations.returnResult(this)); + } + return result; + } + return OperationOperations.returnResult(this); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return OperationOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.OPERATION__METHOD : + return ((InternalEList) getMethods()).basicAdd(otherEnd, + msgs); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.OPERATION__CLASS_ : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__CLASS_, msgs); + case UMLPackage.OPERATION__DATATYPE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__DATATYPE, msgs); + case UMLPackage.OPERATION__INTERFACE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__INTERFACE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OPERATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.OPERATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__METHOD : + return ((InternalEList) getMethods()).basicRemove(otherEnd, + msgs); + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.OPERATION__CLASS_ : + return eBasicSetContainer(null, + UMLPackage.OPERATION__CLASS_, msgs); + case UMLPackage.OPERATION__DATATYPE : + return eBasicSetContainer(null, + UMLPackage.OPERATION__DATATYPE, msgs); + case UMLPackage.OPERATION__INTERFACE : + return eBasicSetContainer(null, + UMLPackage.OPERATION__INTERFACE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.OPERATION__CLASS_ : + return eContainer.eInverseRemove(this, + UMLPackage.CLASS__OWNED_OPERATION, + org.eclipse.uml2.uml.Class.class, msgs); + case UMLPackage.OPERATION__DATATYPE : + return eContainer.eInverseRemove(this, + UMLPackage.DATA_TYPE__OWNED_OPERATION, DataType.class, + msgs); + case UMLPackage.OPERATION__INTERFACE : + return eContainer.eInverseRemove(this, + UMLPackage.INTERFACE__OWNED_OPERATION, Interface.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OPERATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OPERATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OPERATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OPERATION__NAME : + return getName(); + case UMLPackage.OPERATION__VISIBILITY : + return getVisibility(); + case UMLPackage.OPERATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OPERATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OPERATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OPERATION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.OPERATION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.OPERATION__MEMBER : + return getMembers(); + case UMLPackage.OPERATION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.OPERATION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.OPERATION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.OPERATION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.OPERATION__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.OPERATION__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.OPERATION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__METHOD : + return getMethods(); + case UMLPackage.OPERATION__CONCURRENCY : + return getConcurrency(); + case UMLPackage.OPERATION__RAISED_EXCEPTION : + return getRaisedExceptions(); + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.OPERATION__IS_QUERY : + return isQuery() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__LOWER : + return new Integer(getLower()); + case UMLPackage.OPERATION__UPPER : + return new Integer(getUpper()); + case UMLPackage.OPERATION__CLASS_ : + return getClass_(); + case UMLPackage.OPERATION__PRECONDITION : + return getPreconditions(); + case UMLPackage.OPERATION__POSTCONDITION : + return getPostconditions(); + case UMLPackage.OPERATION__REDEFINED_OPERATION : + return getRedefinedOperations(); + case UMLPackage.OPERATION__DATATYPE : + return getDatatype(); + case UMLPackage.OPERATION__BODY_CONDITION : + return getBodyCondition(); + case UMLPackage.OPERATION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.OPERATION__INTERFACE : + return getInterface(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__NAME : + setName((String) newValue); + return; + case UMLPackage.OPERATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OPERATION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__METHOD : + getMethods().clear(); + getMethods().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__CONCURRENCY : + setConcurrency((CallConcurrencyKind) newValue); + return; + case UMLPackage.OPERATION__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + getRaisedExceptions().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPERATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.OPERATION__IS_QUERY : + setIsQuery(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.OPERATION__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.OPERATION__CLASS_ : + setClass_((org.eclipse.uml2.uml.Class) newValue); + return; + case UMLPackage.OPERATION__PRECONDITION : + getPreconditions().clear(); + getPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__POSTCONDITION : + getPostconditions().clear(); + getPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__REDEFINED_OPERATION : + getRedefinedOperations().clear(); + getRedefinedOperations().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__DATATYPE : + setDatatype((DataType) newValue); + return; + case UMLPackage.OPERATION__BODY_CONDITION : + setBodyCondition((Constraint) newValue); + return; + case UMLPackage.OPERATION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.OPERATION__INTERFACE : + setInterface((Interface) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OPERATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OPERATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OPERATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OPERATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OPERATION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.OPERATION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.OPERATION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.OPERATION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.OPERATION__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.OPERATION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.OPERATION__METHOD : + getMethods().clear(); + return; + case UMLPackage.OPERATION__CONCURRENCY : + setConcurrency(CONCURRENCY_EDEFAULT); + return; + case UMLPackage.OPERATION__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPERATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.OPERATION__IS_QUERY : + setIsQuery(IS_QUERY_EDEFAULT); + return; + case UMLPackage.OPERATION__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.OPERATION__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.OPERATION__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.OPERATION__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.OPERATION__CLASS_ : + setClass_((org.eclipse.uml2.uml.Class) null); + return; + case UMLPackage.OPERATION__PRECONDITION : + getPreconditions().clear(); + return; + case UMLPackage.OPERATION__POSTCONDITION : + getPostconditions().clear(); + return; + case UMLPackage.OPERATION__REDEFINED_OPERATION : + getRedefinedOperations().clear(); + return; + case UMLPackage.OPERATION__DATATYPE : + setDatatype((DataType) null); + return; + case UMLPackage.OPERATION__BODY_CONDITION : + setBodyCondition((Constraint) null); + return; + case UMLPackage.OPERATION__TYPE : + setType((Type) null); + return; + case UMLPackage.OPERATION__INTERFACE : + setInterface((Interface) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OPERATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OPERATION__OWNER : + return isSetOwner(); + case UMLPackage.OPERATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OPERATION__NAME : + String name = eVirtualIsSet(UMLPackage.OPERATION__NAME) + ? (String) eVirtualGet(UMLPackage.OPERATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OPERATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.OPERATION__VISIBILITY) + && eVirtualGet(UMLPackage.OPERATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OPERATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OPERATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OPERATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OPERATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OPERATION__NAME_EXPRESSION) != null; + case UMLPackage.OPERATION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.OPERATION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.OPERATION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.OPERATION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.OPERATION__MEMBER : + return isSetMembers(); + case UMLPackage.OPERATION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.OPERATION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.OPERATION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.OPERATION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.OPERATION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.OPERATION__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.OPERATION__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.OPERATION__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.OPERATION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.OPERATION__METHOD : + List method = (List) eVirtualGet(UMLPackage.OPERATION__METHOD); + return method != null && !method.isEmpty(); + case UMLPackage.OPERATION__CONCURRENCY : + return eVirtualIsSet(UMLPackage.OPERATION__CONCURRENCY) + && eVirtualGet(UMLPackage.OPERATION__CONCURRENCY) != CONCURRENCY_EDEFAULT; + case UMLPackage.OPERATION__RAISED_EXCEPTION : + List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION); + return raisedException != null && !raisedException.isEmpty(); + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.OPERATION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.OPERATION__IS_QUERY : + return ((eFlags & IS_QUERY_EFLAG) != 0) != IS_QUERY_EDEFAULT; + case UMLPackage.OPERATION__IS_ORDERED : + return isOrdered() != IS_ORDERED_EDEFAULT; + case UMLPackage.OPERATION__IS_UNIQUE : + return isUnique() != IS_UNIQUE_EDEFAULT; + case UMLPackage.OPERATION__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.OPERATION__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.OPERATION__CLASS_ : + return getClass_() != null; + case UMLPackage.OPERATION__PRECONDITION : + List precondition = (List) eVirtualGet(UMLPackage.OPERATION__PRECONDITION); + return precondition != null && !precondition.isEmpty(); + case UMLPackage.OPERATION__POSTCONDITION : + List postcondition = (List) eVirtualGet(UMLPackage.OPERATION__POSTCONDITION); + return postcondition != null && !postcondition.isEmpty(); + case UMLPackage.OPERATION__REDEFINED_OPERATION : + List redefinedOperation = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINED_OPERATION); + return redefinedOperation != null + && !redefinedOperation.isEmpty(); + case UMLPackage.OPERATION__DATATYPE : + return getDatatype() != null; + case UMLPackage.OPERATION__BODY_CONDITION : + return eVirtualGet(UMLPackage.OPERATION__BODY_CONDITION) != null; + case UMLPackage.OPERATION__TYPE : + return basicGetType() != null; + case UMLPackage.OPERATION__INTERFACE : + return getInterface() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.OPERATION__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.OPERATION__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isQuery: "); //$NON-NLS-1$ + result.append((eFlags & IS_QUERY_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return super.isSetRedefinitionContexts() + || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Interface()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + org.eclipse.uml2.uml.Class class_ = getClass_(); + if (class_ != null) { + return class_; + } + DataType datatype = getDatatype(); + if (datatype != null) { + return datatype; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeaturingClassifiers() { + return super.isSetFeaturingClassifiers() + || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getOperation_RedefinedOperation()); + } + +} //OperationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationTemplateParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationTemplateParameterImpl.java new file mode 100644 index 00000000..e9752424 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationTemplateParameterImpl.java @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OperationTemplateParameterImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Operation Template Parameter'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.OperationTemplateParameterImpl#getParameteredElement Parametered Element}
  • + *
+ *

+ * + * @generated + */ +public class OperationTemplateParameterImpl + extends TemplateParameterImpl + implements OperationTemplateParameter { + + /** + * + * + * @generated + */ + protected OperationTemplateParameterImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOperationTemplateParameter(); + } + + /** + * + * + * @generated + */ + public ParameterableElement getParameteredElement() { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (parameteredElement != null && parameteredElement.eIsProxy()) { + ParameterableElement oldParameteredElement = parameteredElement; + parameteredElement = (ParameterableElement) eResolveProxy((InternalEObject) parameteredElement); + if (parameteredElement != oldParameteredElement) { + eVirtualSet( + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + parameteredElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement, parameteredElement)); + } + } + return parameteredElement; + } + + /** + * + * + * @generated + */ + public ParameterableElement basicGetParameteredElement() { + return (ParameterableElement) eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetParameteredElement( + ParameterableElement newParameteredElement, NotificationChain msgs) { + Object oldParameteredElement = eVirtualSet( + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement == EVIRTUAL_NO_VALUE + ? null + : oldParameteredElement, newParameteredElement); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setParameteredElement(ParameterableElement newParameteredElement) { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (newParameteredElement != parameteredElement) { + NotificationChain msgs = null; + if (parameteredElement != null) + msgs = ((InternalEObject) parameteredElement).eInverseRemove( + this, UMLPackage.OPERATION__TEMPLATE_PARAMETER, + Operation.class, msgs); + if (newParameteredElement != null) + msgs = ((InternalEObject) newParameteredElement).eInverseAdd( + this, UMLPackage.OPERATION__TEMPLATE_PARAMETER, + Operation.class, msgs); + msgs = basicSetParameteredElement(newParameteredElement, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement, newParameteredElement)); + + } + + /** + * + * + * @generated + */ + public boolean isSetParameteredElement() { + return eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__SIGNATURE : + return getSignature(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return getOwnedParameteredElement(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__DEFAULT : + if (resolve) + return getDefault(); + return basicGetDefault(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_DEFAULT : + return getOwnedDefault(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + if (resolve) + return getParameteredElement(); + return basicGetParameteredElement(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNER : + return isSetOwner(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__SIGNATURE : + return getSignature() != null; + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != null; + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__DEFAULT : + return eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__DEFAULT) != null; + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_DEFAULT : + return eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__OWNED_DEFAULT) != null; + case UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + } + return eDynamicIsSet(eFeature); + } + +} //OperationTemplateParameterImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java new file mode 100644 index 00000000..4339afa5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OutputPinImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Output Pin'. + * + *

+ *

+ * + * @generated + */ +public class OutputPinImpl + extends PinImpl + implements OutputPin { + + /** + * + * + * @generated + */ + protected OutputPinImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOutputPin(); + } + +} //OutputPinImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java new file mode 100644 index 00000000..1a325180 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java @@ -0,0 +1,1327 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.PackageOperations; +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * + * An implementation of the model object 'Package'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedTemplateSignature Owned Template Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getPackagedElements Packaged Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getPackageImports Package Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getPackageMerges Package Merge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedTypes Owned Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getNestedPackages Nested Package}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getNestingPackage Nesting Package}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getAppliedProfiles Applied Profile}
  • + *
+ *

+ * + * @generated + */ +public class PackageImpl + extends NamespaceImpl + implements org.eclipse.uml2.uml.Package { + + /** + * + * + * @generated + */ + protected PackageImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPackage(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PACKAGE__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.PACKAGE__TEMPLATE_PARAMETER, newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PACKAGE__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (getOwningTemplateParameter() != null + && getOwningTemplateParameter() != newTemplateParameter) { + setOwningTemplateParameter(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter).eInverseRemove( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter).eInverseAdd( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE__TEMPLATE_PARAMETER, newTemplateParameter, + newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.PACKAGE__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet(UMLPackage.PACKAGE__VISIBILITY, + visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public boolean isSetVisibility() { + return eVirtualIsSet(UMLPackage.PACKAGE__VISIBILITY) + && eVirtualGet(UMLPackage.PACKAGE__VISIBILITY) != VISIBILITY_EDEFAULT; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.PACKAGE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.PACKAGE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.PACKAGE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getPackage_PackageMerge()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.PACKAGE__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.PACKAGE__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * + * + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.PACKAGE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.PACKAGE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.PACKAGE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getPackage_PackagedElement()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getPackagedElements() { + List packagedElement = (List) eVirtualGet(UMLPackage.PACKAGE__PACKAGED_ELEMENT); + if (packagedElement == null) { + eVirtualSet(UMLPackage.PACKAGE__PACKAGED_ELEMENT, + packagedElement = new EObjectContainmentEList( + PackageableElement.class, this, + UMLPackage.PACKAGE__PACKAGED_ELEMENT)); + } + return packagedElement; + } + + /** + * + * + * @generated + */ + public PackageableElement createPackagedElement(EClass eClass) { + PackageableElement newPackagedElement = (PackageableElement) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getPackagedElements().add(newPackagedElement); + return newPackagedElement; + } + + /** + * + * + * @generated + */ + public PackageableElement getPackagedElement(String name) { + for (Iterator i = getPackagedElements().iterator(); i.hasNext();) { + PackageableElement packagedElement = (PackageableElement) i.next(); + if (name.equals(packagedElement.getName())) { + return packagedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getPackageImports() { + List packageImport = (List) eVirtualGet(UMLPackage.PACKAGE__PACKAGE_IMPORT); + if (packageImport == null) { + eVirtualSet(UMLPackage.PACKAGE__PACKAGE_IMPORT, + packageImport = new SupersetEObjectContainmentWithInverseEList( + PackageImport.class, this, + UMLPackage.PACKAGE__PACKAGE_IMPORT, + new int[]{UMLPackage.PACKAGE__APPLIED_PROFILE}, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE)); + } + return packageImport; + } + + /** + * + * + * @generated + */ + public List getPackageMerges() { + List packageMerge = (List) eVirtualGet(UMLPackage.PACKAGE__PACKAGE_MERGE); + if (packageMerge == null) { + eVirtualSet(UMLPackage.PACKAGE__PACKAGE_MERGE, + packageMerge = new EObjectContainmentWithInverseEList( + PackageMerge.class, this, + UMLPackage.PACKAGE__PACKAGE_MERGE, + UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE)); + } + return packageMerge; + } + + /** + * + * + * @generated + */ + public PackageMerge createPackageMerge() { + PackageMerge newPackageMerge = UMLFactory.eINSTANCE + .createPackageMerge(); + getPackageMerges().add(newPackageMerge); + return newPackageMerge; + } + + /** + * + * + * @generated + */ + public List getOwnedTypes() { + // TODO: implement this method to return the 'Owned Type' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Type getOwnedType(String name) { + for (Iterator i = getOwnedTypes().iterator(); i.hasNext();) { + Type ownedType = (Type) i.next(); + if (name.equals(ownedType.getName())) { + return ownedType; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNestedPackages() { + // TODO: implement this method to return the 'Nested Package' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getNestedPackage(String name) { + for (Iterator i = getNestedPackages().iterator(); i.hasNext();) { + org.eclipse.uml2.uml.Package nestedPackage = (org.eclipse.uml2.uml.Package) i + .next(); + if (name.equals(nestedPackage.getName())) { + return nestedPackage; + } + } + return null; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getNestingPackage() { + // TODO: implement this method to return the 'Nesting Package' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setNestingPackage(org.eclipse.uml2.uml.Package newNestingPackage) { + // TODO: implement this method to set the 'Nesting Package' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getAppliedProfiles() { + List appliedProfile = (List) eVirtualGet(UMLPackage.PACKAGE__APPLIED_PROFILE); + if (appliedProfile == null) { + eVirtualSet(UMLPackage.PACKAGE__APPLIED_PROFILE, + appliedProfile = new SubsetEObjectEList( + ProfileApplication.class, this, + UMLPackage.PACKAGE__APPLIED_PROFILE, + new int[]{UMLPackage.PACKAGE__PACKAGE_IMPORT})); + } + return appliedProfile; + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * + * + * @generated + */ + public boolean isTemplate() { + return TemplateableElementOperations.isTemplate(this); + } + + /** + * + * + * @generated + */ + public boolean validateElementsPublicOrPrivate(DiagnosticChain diagnostics, + Map context) { + return PackageOperations.validateElementsPublicOrPrivate(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public List visibleMembers() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getPackage().getEOperations().get(1)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getPackage() + .getEOperations().get(1), result = PackageOperations + .visibleMembers(this)); + } + return result; + } + return PackageOperations.visibleMembers(this); + } + + /** + * + * + * @generated + */ + public boolean makesVisible(NamedElement el) { + return PackageOperations.makesVisible(this, el); + } + + /** + * + * + * @generated + */ + public boolean mustBeOwned() { + return PackageOperations.mustBeOwned(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return ((InternalEList) getPackageMerges()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return ((InternalEList) getPackageMerges()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + return ((InternalEList) getPackagedElements()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PACKAGE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PACKAGE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PACKAGE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PACKAGE__NAME : + return getName(); + case UMLPackage.PACKAGE__VISIBILITY : + return getVisibility(); + case UMLPackage.PACKAGE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PACKAGE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PACKAGE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.PACKAGE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.PACKAGE__MEMBER : + return getMembers(); + case UMLPackage.PACKAGE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.PACKAGE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return getPackageMerges(); + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + return getPackagedElements(); + case UMLPackage.PACKAGE__OWNED_TYPE : + return getOwnedTypes(); + case UMLPackage.PACKAGE__NESTED_PACKAGE : + return getNestedPackages(); + case UMLPackage.PACKAGE__NESTING_PACKAGE : + return getNestingPackage(); + case UMLPackage.PACKAGE__APPLIED_PROFILE : + return getAppliedProfiles(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__NAME : + setName((String) newValue); + return; + case UMLPackage.PACKAGE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.PACKAGE__PACKAGE_MERGE : + getPackageMerges().clear(); + getPackageMerges().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + getPackagedElements().clear(); + getPackagedElements().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__OWNED_TYPE : + getOwnedTypes().clear(); + getOwnedTypes().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__NESTED_PACKAGE : + getNestedPackages().clear(); + getNestedPackages().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PACKAGE__APPLIED_PROFILE : + getAppliedProfiles().clear(); + getAppliedProfiles().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PACKAGE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PACKAGE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PACKAGE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PACKAGE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.PACKAGE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.PACKAGE__PACKAGE_MERGE : + getPackageMerges().clear(); + return; + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + getPackagedElements().clear(); + return; + case UMLPackage.PACKAGE__OWNED_TYPE : + getOwnedTypes().clear(); + return; + case UMLPackage.PACKAGE__NESTED_PACKAGE : + getNestedPackages().clear(); + return; + case UMLPackage.PACKAGE__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PACKAGE__APPLIED_PROFILE : + getAppliedProfiles().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PACKAGE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PACKAGE__OWNER : + return isSetOwner(); + case UMLPackage.PACKAGE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PACKAGE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PACKAGE__NAME : + String name = eVirtualIsSet(UMLPackage.PACKAGE__NAME) + ? (String) eVirtualGet(UMLPackage.PACKAGE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PACKAGE__VISIBILITY : + return eVirtualIsSet(UMLPackage.PACKAGE__VISIBILITY) + && eVirtualGet(UMLPackage.PACKAGE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PACKAGE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PACKAGE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PACKAGE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PACKAGE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PACKAGE__NAME_EXPRESSION) != null; + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.PACKAGE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.PACKAGE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.PACKAGE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.PACKAGE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.PACKAGE__MEMBER : + return isSetMembers(); + case UMLPackage.PACKAGE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.PACKAGE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER) != null; + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.PACKAGE__PACKAGE_MERGE : + List packageMerge = (List) eVirtualGet(UMLPackage.PACKAGE__PACKAGE_MERGE); + return packageMerge != null && !packageMerge.isEmpty(); + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + List packagedElement = (List) eVirtualGet(UMLPackage.PACKAGE__PACKAGED_ELEMENT); + return packagedElement != null && !packagedElement.isEmpty(); + case UMLPackage.PACKAGE__OWNED_TYPE : + return !getOwnedTypes().isEmpty(); + case UMLPackage.PACKAGE__NESTED_PACKAGE : + return !getNestedPackages().isEmpty(); + case UMLPackage.PACKAGE__NESTING_PACKAGE : + return getNestingPackage() != null; + case UMLPackage.PACKAGE__APPLIED_PROFILE : + List appliedProfile = (List) eVirtualGet(UMLPackage.PACKAGE__APPLIED_PROFILE); + return appliedProfile != null && !appliedProfile.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.PACKAGE__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.PACKAGE__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (visibility: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PACKAGE__VISIBILITY) + ? eVirtualGet(UMLPackage.PACKAGE__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()) + || eIsSet(UMLPackage.eINSTANCE.getPackage_PackageMerge()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getPackage_PackagedElement()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + org.eclipse.uml2.uml.Package nestingPackage = getNestingPackage(); + if (nestingPackage != null) { + return nestingPackage; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getPackage_NestingPackage()); + } + +} //PackageImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java new file mode 100644 index 00000000..9a62afea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java @@ -0,0 +1,518 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageImportImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.PackageImportOperations; + +/** + * + * An implementation of the model object 'Package Import'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getVisibility Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getImportedPackage Imported Package}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getImportingNamespace Importing Namespace}
  • + *
+ *

+ * + * @generated + */ +public class PackageImportImpl + extends DirectedRelationshipImpl + implements PackageImport { + + /** + * The default value of the '{@link #getVisibility() Visibility}' attribute. + * + * + * @see #getVisibility() + * @generated + * @ordered + */ + protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC_LITERAL; + + /** + * + * + * @generated + */ + protected PackageImportImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPackageImport(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.PACKAGE_IMPORT__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.PACKAGE_IMPORT__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.PACKAGE_IMPORT__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getPackageImport_ImportedPackage()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.PACKAGE_IMPORT__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.PACKAGE_IMPORT__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.PACKAGE_IMPORT__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getPackageImport_ImportingNamespace()})); + } + return source; + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.PACKAGE_IMPORT__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet( + UMLPackage.PACKAGE_IMPORT__VISIBILITY, visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE_IMPORT__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getImportedPackage() { + org.eclipse.uml2.uml.Package importedPackage = (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE); + if (importedPackage != null && importedPackage.eIsProxy()) { + org.eclipse.uml2.uml.Package oldImportedPackage = importedPackage; + importedPackage = (org.eclipse.uml2.uml.Package) eResolveProxy((InternalEObject) importedPackage); + if (importedPackage != oldImportedPackage) { + eVirtualSet(UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE, + importedPackage); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE, + oldImportedPackage, importedPackage)); + } + } + return importedPackage; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package basicGetImportedPackage() { + return (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE); + } + + /** + * + * + * @generated + */ + public void setImportedPackage( + org.eclipse.uml2.uml.Package newImportedPackage) { + org.eclipse.uml2.uml.Package importedPackage = newImportedPackage; + Object oldImportedPackage = eVirtualSet( + UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE, importedPackage); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE, + oldImportedPackage == EVIRTUAL_NO_VALUE + ? null + : oldImportedPackage, importedPackage)); + + } + + /** + * + * + * @generated + */ + public Namespace getImportingNamespace() { + if (eContainerFeatureID != UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE) + return null; + return (Namespace) eContainer; + } + + /** + * + * + * @generated + */ + public void setImportingNamespace(Namespace newImportingNamespace) { + if (newImportingNamespace != eContainer + || (eContainerFeatureID != UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE && newImportingNamespace != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newImportingNamespace)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newImportingNamespace != null) + msgs = ((InternalEObject) newImportingNamespace).eInverseAdd( + this, UMLPackage.NAMESPACE__PACKAGE_IMPORT, + Namespace.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newImportingNamespace, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE, + newImportingNamespace, newImportingNamespace)); + + } + + /** + * + * + * @generated + */ + public boolean validatePublicOrPrivate(DiagnosticChain diagnostics, + Map context) { + return PackageImportOperations.validatePublicOrPrivate(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGE_IMPORT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGE_IMPORT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE_IMPORT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + return eBasicSetContainer(null, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + return eContainer.eInverseRemove(this, + UMLPackage.NAMESPACE__PACKAGE_IMPORT, Namespace.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_IMPORT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PACKAGE_IMPORT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PACKAGE_IMPORT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PACKAGE_IMPORT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PACKAGE_IMPORT__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.PACKAGE_IMPORT__SOURCE : + return getSources(); + case UMLPackage.PACKAGE_IMPORT__TARGET : + return getTargets(); + case UMLPackage.PACKAGE_IMPORT__VISIBILITY : + return getVisibility(); + case UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE : + if (resolve) + return getImportedPackage(); + return basicGetImportedPackage(); + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + return getImportingNamespace(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_IMPORT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE_IMPORT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE_IMPORT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE : + setImportedPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + setImportingNamespace((Namespace) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_IMPORT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PACKAGE_IMPORT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PACKAGE_IMPORT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE : + setImportedPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + setImportingNamespace((Namespace) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_IMPORT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PACKAGE_IMPORT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PACKAGE_IMPORT__OWNER : + return isSetOwner(); + case UMLPackage.PACKAGE_IMPORT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PACKAGE_IMPORT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PACKAGE_IMPORT__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.PACKAGE_IMPORT__SOURCE : + return isSetSources(); + case UMLPackage.PACKAGE_IMPORT__TARGET : + return isSetTargets(); + case UMLPackage.PACKAGE_IMPORT__VISIBILITY : + return eVirtualIsSet(UMLPackage.PACKAGE_IMPORT__VISIBILITY) + && eVirtualGet(UMLPackage.PACKAGE_IMPORT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE : + return eVirtualGet(UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE) != null; + case UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE : + return getImportingNamespace() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (visibility: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PACKAGE_IMPORT__VISIBILITY) + ? eVirtualGet(UMLPackage.PACKAGE_IMPORT__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getPackageImport_ImportedPackage()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE + .getPackageImport_ImportingNamespace()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Namespace importingNamespace = getImportingNamespace(); + if (importingNamespace != null) { + return importingNamespace; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getPackageImport_ImportingNamespace()); + } + +} //PackageImportImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java new file mode 100644 index 00000000..bbbf514e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java @@ -0,0 +1,426 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageMergeImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Package Merge'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getMergedPackage Merged Package}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getReceivingPackage Receiving Package}
  • + *
+ *

+ * + * @generated + */ +public class PackageMergeImpl + extends DirectedRelationshipImpl + implements PackageMerge { + + /** + * + * + * @generated + */ + protected PackageMergeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPackageMerge(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.PACKAGE_MERGE__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.PACKAGE_MERGE__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.PACKAGE_MERGE__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getPackageMerge_MergedPackage()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.PACKAGE_MERGE__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.PACKAGE_MERGE__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.PACKAGE_MERGE__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getPackageMerge_ReceivingPackage()})); + } + return source; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getMergedPackage() { + org.eclipse.uml2.uml.Package mergedPackage = (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE); + if (mergedPackage != null && mergedPackage.eIsProxy()) { + org.eclipse.uml2.uml.Package oldMergedPackage = mergedPackage; + mergedPackage = (org.eclipse.uml2.uml.Package) eResolveProxy((InternalEObject) mergedPackage); + if (mergedPackage != oldMergedPackage) { + eVirtualSet(UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE, + mergedPackage); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE, + oldMergedPackage, mergedPackage)); + } + } + return mergedPackage; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package basicGetMergedPackage() { + return (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE); + } + + /** + * + * + * @generated + */ + public void setMergedPackage(org.eclipse.uml2.uml.Package newMergedPackage) { + org.eclipse.uml2.uml.Package mergedPackage = newMergedPackage; + Object oldMergedPackage = eVirtualSet( + UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE, mergedPackage); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE, + oldMergedPackage == EVIRTUAL_NO_VALUE + ? null + : oldMergedPackage, mergedPackage)); + + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getReceivingPackage() { + if (eContainerFeatureID != UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE) + return null; + return (org.eclipse.uml2.uml.Package) eContainer; + } + + /** + * + * + * @generated + */ + public void setReceivingPackage( + org.eclipse.uml2.uml.Package newReceivingPackage) { + if (newReceivingPackage != eContainer + || (eContainerFeatureID != UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE && newReceivingPackage != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newReceivingPackage)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newReceivingPackage != null) + msgs = ((InternalEObject) newReceivingPackage).eInverseAdd( + this, UMLPackage.PACKAGE__PACKAGE_MERGE, + org.eclipse.uml2.uml.Package.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newReceivingPackage, + UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE, + newReceivingPackage, newReceivingPackage)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGE_MERGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGE_MERGE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE_MERGE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + return eBasicSetContainer(null, + UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + return eContainer.eInverseRemove(this, + UMLPackage.PACKAGE__PACKAGE_MERGE, + org.eclipse.uml2.uml.Package.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_MERGE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PACKAGE_MERGE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PACKAGE_MERGE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PACKAGE_MERGE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PACKAGE_MERGE__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.PACKAGE_MERGE__SOURCE : + return getSources(); + case UMLPackage.PACKAGE_MERGE__TARGET : + return getTargets(); + case UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE : + if (resolve) + return getMergedPackage(); + return basicGetMergedPackage(); + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + return getReceivingPackage(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_MERGE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE_MERGE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE : + setMergedPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + setReceivingPackage((org.eclipse.uml2.uml.Package) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_MERGE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PACKAGE_MERGE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE : + setMergedPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + setReceivingPackage((org.eclipse.uml2.uml.Package) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGE_MERGE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PACKAGE_MERGE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PACKAGE_MERGE__OWNER : + return isSetOwner(); + case UMLPackage.PACKAGE_MERGE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PACKAGE_MERGE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PACKAGE_MERGE__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.PACKAGE_MERGE__SOURCE : + return isSetSources(); + case UMLPackage.PACKAGE_MERGE__TARGET : + return isSetTargets(); + case UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE : + return eVirtualGet(UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE) != null; + case UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE : + return getReceivingPackage() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getPackageMerge_MergedPackage()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE.getPackageMerge_ReceivingPackage()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + org.eclipse.uml2.uml.Package receivingPackage = getReceivingPackage(); + if (receivingPackage != null) { + return receivingPackage; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getPackageMerge_ReceivingPackage()); + } + +} //PackageMergeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java new file mode 100644 index 00000000..bf818fe1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java @@ -0,0 +1,614 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageableElementImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; + +/** + * + * An implementation of the model object 'Packageable Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl#getVisibility Visibility}
  • + *
+ *

+ * + * @generated + */ +public abstract class PackageableElementImpl + extends NamedElementImpl + implements PackageableElement { + + /** + * + * + * @generated + */ + protected PackageableElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPackageableElement(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (getOwningTemplateParameter() != null + && getOwningTemplateParameter() != newTemplateParameter) { + setOwningTemplateParameter(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter).eInverseRemove( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter).eInverseAdd( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter, newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public VisibilityKind getVisibility() { + VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY); + return visibility == null + ? VISIBILITY_EDEFAULT + : visibility; + } + + /** + * + * + * @generated + */ + public void setVisibility(VisibilityKind newVisibility) { + VisibilityKind visibility = newVisibility == null + ? VISIBILITY_EDEFAULT + : newVisibility; + Object oldVisibility = eVirtualSet( + UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY, visibility); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY, + oldVisibility == EVIRTUAL_NO_VALUE + ? VISIBILITY_EDEFAULT + : oldVisibility, visibility)); + + } + + /** + * + * + * @generated + */ + public boolean isSetVisibility() { + return eVirtualIsSet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) + && eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGEABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PACKAGEABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGEABLE_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PACKAGEABLE_ELEMENT__NAME : + return getName(); + case UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.PACKAGEABLE_ELEMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PACKAGEABLE_ELEMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PACKAGEABLE_ELEMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGEABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGEABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PACKAGEABLE_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.PACKAGEABLE_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PACKAGEABLE_ELEMENT__NAME : + String name = eVirtualIsSet(UMLPackage.PACKAGEABLE_ELEMENT__NAME) + ? (String) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) + && eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PACKAGEABLE_ELEMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PACKAGEABLE_ELEMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PACKAGEABLE_ELEMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__NAME_EXPRESSION) != null; + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (visibility: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) + ? eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) + : VISIBILITY_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + +} //PackageableElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java new file mode 100644 index 00000000..74e467a5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java @@ -0,0 +1,1459 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterDirectionKind; +import org.eclipse.uml2.uml.ParameterEffectKind; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.MultiplicityElementOperations; +import org.eclipse.uml2.uml.internal.operations.ParameterOperations; + +/** + * + * An implementation of the model object 'Parameter'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getUpperValue Upper Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getLowerValue Lower Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getParameterSets Parameter Set}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getOperation Operation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getDirection Direction}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getDefault Default}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getDefaultValue Default Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isException Is Exception}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isStream Is Stream}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getEffect Effect}
  • + *
+ *

+ * + * @generated + */ +public class ParameterImpl + extends ConnectableElementImpl + implements Parameter { + + /** + * The default value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_ORDERED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final int IS_ORDERED_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final boolean IS_UNIQUE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final int IS_UNIQUE_EFLAG = 1 << 9; + + /** + * The default value of the '{@link #getUpper() Upper}' attribute. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected static final int UPPER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getLower() Lower}' attribute. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected static final int LOWER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getDirection() Direction}' attribute. + * + * + * @see #getDirection() + * @generated + * @ordered + */ + protected static final ParameterDirectionKind DIRECTION_EDEFAULT = ParameterDirectionKind.IN_LITERAL; + + /** + * The default value of the '{@link #getDefault() Default}' attribute. + * + * + * @see #getDefault() + * @generated + * @ordered + */ + protected static final String DEFAULT_EDEFAULT = null; + + /** + * The default value of the '{@link #isException() Is Exception}' attribute. + * + * + * @see #isException() + * @generated + * @ordered + */ + protected static final boolean IS_EXCEPTION_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isException() Is Exception}' attribute. + * + * + * @see #isException() + * @generated + * @ordered + */ + protected static final int IS_EXCEPTION_EFLAG = 1 << 10; + + /** + * The default value of the '{@link #isStream() Is Stream}' attribute. + * + * + * @see #isStream() + * @generated + * @ordered + */ + protected static final boolean IS_STREAM_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isStream() Is Stream}' attribute. + * + * + * @see #isStream() + * @generated + * @ordered + */ + protected static final int IS_STREAM_EFLAG = 1 << 11; + + /** + * The default value of the '{@link #getEffect() Effect}' attribute. + * + * + * @see #getEffect() + * @generated + * @ordered + */ + protected static final ParameterEffectKind EFFECT_EDEFAULT = ParameterEffectKind.CREATE_LITERAL; + + /** + * + * + * @generated + */ + protected ParameterImpl() { + super(); + eFlags |= IS_UNIQUE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getParameter(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.PARAMETER__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.PARAMETER__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.PARAMETER__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getMultiplicityElement_UpperValue(), + UMLPackage.eINSTANCE + .getMultiplicityElement_LowerValue(), + UMLPackage.eINSTANCE.getParameter_DefaultValue()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isOrdered() { + return (eFlags & IS_ORDERED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsOrdered(boolean newIsOrdered) { + boolean oldIsOrdered = (eFlags & IS_ORDERED_EFLAG) != 0; + if (newIsOrdered) + eFlags |= IS_ORDERED_EFLAG; + else + eFlags &= ~IS_ORDERED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__IS_ORDERED, oldIsOrdered, newIsOrdered)); + + } + + /** + * + * + * @generated + */ + public boolean isUnique() { + return (eFlags & IS_UNIQUE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsUnique(boolean newIsUnique) { + boolean oldIsUnique = (eFlags & IS_UNIQUE_EFLAG) != 0; + if (newIsUnique) + eFlags |= IS_UNIQUE_EFLAG; + else + eFlags &= ~IS_UNIQUE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__IS_UNIQUE, oldIsUnique, newIsUnique)); + + } + + /** + * + * + * @generated + */ + public int getUpper() { + // TODO: implement this method to return the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setUpper(int newUpper) { + // TODO: implement this method to set the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getUpperValue() { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__UPPER_VALUE); + return upperValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpperValue( + ValueSpecification newUpperValue, NotificationChain msgs) { + Object oldUpperValue = eVirtualSet(UMLPackage.PARAMETER__UPPER_VALUE, + newUpperValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PARAMETER__UPPER_VALUE, + oldUpperValue == EVIRTUAL_NO_VALUE + ? null + : oldUpperValue, newUpperValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpperValue(ValueSpecification newUpperValue) { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__UPPER_VALUE); + if (newUpperValue != upperValue) { + NotificationChain msgs = null; + if (upperValue != null) + msgs = ((InternalEObject) upperValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.PARAMETER__UPPER_VALUE, + null, msgs); + if (newUpperValue != null) + msgs = ((InternalEObject) newUpperValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.PARAMETER__UPPER_VALUE, + null, msgs); + msgs = basicSetUpperValue(newUpperValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__UPPER_VALUE, newUpperValue, newUpperValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createUpperValue(EClass eClass) { + ValueSpecification newUpperValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setUpperValue(newUpperValue); + return newUpperValue; + } + + /** + * + * + * @generated + */ + public ValueSpecification getLowerValue() { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__LOWER_VALUE); + return lowerValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLowerValue( + ValueSpecification newLowerValue, NotificationChain msgs) { + Object oldLowerValue = eVirtualSet(UMLPackage.PARAMETER__LOWER_VALUE, + newLowerValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PARAMETER__LOWER_VALUE, + oldLowerValue == EVIRTUAL_NO_VALUE + ? null + : oldLowerValue, newLowerValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setLowerValue(ValueSpecification newLowerValue) { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__LOWER_VALUE); + if (newLowerValue != lowerValue) { + NotificationChain msgs = null; + if (lowerValue != null) + msgs = ((InternalEObject) lowerValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.PARAMETER__LOWER_VALUE, + null, msgs); + if (newLowerValue != null) + msgs = ((InternalEObject) newLowerValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.PARAMETER__LOWER_VALUE, + null, msgs); + msgs = basicSetLowerValue(newLowerValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__LOWER_VALUE, newLowerValue, newLowerValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createLowerValue(EClass eClass) { + ValueSpecification newLowerValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setLowerValue(newLowerValue); + return newLowerValue; + } + + /** + * + * + * @generated + */ + public List getParameterSets() { + List parameterSet = (List) eVirtualGet(UMLPackage.PARAMETER__PARAMETER_SET); + if (parameterSet == null) { + eVirtualSet( + UMLPackage.PARAMETER__PARAMETER_SET, + parameterSet = new EObjectWithInverseResolvingEList.ManyInverse( + ParameterSet.class, this, + UMLPackage.PARAMETER__PARAMETER_SET, + UMLPackage.PARAMETER_SET__PARAMETER)); + } + return parameterSet; + } + + /** + * + * + * @generated + */ + public ParameterSet getParameterSet(String name) { + for (Iterator i = getParameterSets().iterator(); i.hasNext();) { + ParameterSet parameterSet = (ParameterSet) i.next(); + if (name.equals(parameterSet.getName())) { + return parameterSet; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Operation getOperation() { + Operation operation = basicGetOperation(); + return operation == null + ? null + : (operation.eIsProxy() + ? (Operation) eResolveProxy((InternalEObject) operation) + : operation); + } + + /** + * + * + * @generated + */ + public Operation basicGetOperation() { + // TODO: implement this method to return the 'Operation' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public ParameterDirectionKind getDirection() { + ParameterDirectionKind direction = (ParameterDirectionKind) eVirtualGet(UMLPackage.PARAMETER__DIRECTION); + return direction == null + ? DIRECTION_EDEFAULT + : direction; + } + + /** + * + * + * @generated + */ + public void setDirection(ParameterDirectionKind newDirection) { + ParameterDirectionKind direction = newDirection == null + ? DIRECTION_EDEFAULT + : newDirection; + Object oldDirection = eVirtualSet(UMLPackage.PARAMETER__DIRECTION, + direction); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__DIRECTION, + oldDirection == EVIRTUAL_NO_VALUE + ? DIRECTION_EDEFAULT + : oldDirection, direction)); + + } + + /** + * + * + * @generated + */ + public String getDefault() { + // TODO: implement this method to return the 'Default' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setDefault(String newDefault) { + newDefault = newDefault == null + ? DEFAULT_EDEFAULT + : newDefault; + // TODO: implement this method to set the 'Default' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getDefaultValue() { + ValueSpecification defaultValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__DEFAULT_VALUE); + return defaultValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetDefaultValue( + ValueSpecification newDefaultValue, NotificationChain msgs) { + Object oldDefaultValue = eVirtualSet( + UMLPackage.PARAMETER__DEFAULT_VALUE, newDefaultValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PARAMETER__DEFAULT_VALUE, + oldDefaultValue == EVIRTUAL_NO_VALUE + ? null + : oldDefaultValue, newDefaultValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setDefaultValue(ValueSpecification newDefaultValue) { + ValueSpecification defaultValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__DEFAULT_VALUE); + if (newDefaultValue != defaultValue) { + NotificationChain msgs = null; + if (defaultValue != null) + msgs = ((InternalEObject) defaultValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PARAMETER__DEFAULT_VALUE, null, msgs); + if (newDefaultValue != null) + msgs = ((InternalEObject) newDefaultValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PARAMETER__DEFAULT_VALUE, null, msgs); + msgs = basicSetDefaultValue(newDefaultValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__DEFAULT_VALUE, newDefaultValue, + newDefaultValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createDefaultValue(EClass eClass) { + ValueSpecification newDefaultValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setDefaultValue(newDefaultValue); + return newDefaultValue; + } + + /** + * + * + * @generated + */ + public boolean isException() { + return (eFlags & IS_EXCEPTION_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsException(boolean newIsException) { + boolean oldIsException = (eFlags & IS_EXCEPTION_EFLAG) != 0; + if (newIsException) + eFlags |= IS_EXCEPTION_EFLAG; + else + eFlags &= ~IS_EXCEPTION_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__IS_EXCEPTION, oldIsException, + newIsException)); + + } + + /** + * + * + * @generated + */ + public boolean isStream() { + return (eFlags & IS_STREAM_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsStream(boolean newIsStream) { + boolean oldIsStream = (eFlags & IS_STREAM_EFLAG) != 0; + if (newIsStream) + eFlags |= IS_STREAM_EFLAG; + else + eFlags &= ~IS_STREAM_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__IS_STREAM, oldIsStream, newIsStream)); + + } + + /** + * + * + * @generated + */ + public ParameterEffectKind getEffect() { + ParameterEffectKind effect = (ParameterEffectKind) eVirtualGet(UMLPackage.PARAMETER__EFFECT); + return effect == null + ? EFFECT_EDEFAULT + : effect; + } + + /** + * + * + * @generated + */ + public void setEffect(ParameterEffectKind newEffect) { + ParameterEffectKind effect = newEffect == null + ? EFFECT_EDEFAULT + : newEffect; + Object oldEffect = eVirtualSet(UMLPackage.PARAMETER__EFFECT, effect); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETER__EFFECT, oldEffect == EVIRTUAL_NO_VALUE + ? EFFECT_EDEFAULT + : oldEffect, effect)); + + } + + /** + * + * + * @generated + */ + public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGt0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateLowerGe0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGeLower(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationNoSideEffects( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationNoSideEffects(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationConstant( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationConstant(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isMultivalued() { + return MultiplicityElementOperations.isMultivalued(this); + } + + /** + * + * + * @generated + */ + public boolean includesCardinality(int C) { + return MultiplicityElementOperations.includesCardinality(this, C); + } + + /** + * + * + * @generated + */ + public boolean includesMultiplicity(MultiplicityElement M) { + return MultiplicityElementOperations.includesMultiplicity(this, M); + } + + /** + * + * + * @generated + */ + public int lowerBound() { + return MultiplicityElementOperations.lowerBound(this); + } + + /** + * + * + * @generated + */ + public int upperBound() { + return MultiplicityElementOperations.upperBound(this); + } + + /** + * + * + * @generated + */ + public boolean validateConnectorEnd(DiagnosticChain diagnostics, Map context) { + return ParameterOperations.validateConnectorEnd(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateStreamAndException(DiagnosticChain diagnostics, + Map context) { + return ParameterOperations.validateStreamAndException(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNotException(DiagnosticChain diagnostics, Map context) { + return ParameterOperations.validateNotException(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateReentrantBehaviors(DiagnosticChain diagnostics, + Map context) { + return ParameterOperations.validateReentrantBehaviors(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInAndOut(DiagnosticChain diagnostics, Map context) { + return ParameterOperations.validateInAndOut(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PARAMETER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PARAMETER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PARAMETER__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PARAMETER__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PARAMETER__END : + return ((InternalEList) getEnds()).basicAdd(otherEnd, msgs); + case UMLPackage.PARAMETER__PARAMETER_SET : + return ((InternalEList) getParameterSets()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PARAMETER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PARAMETER__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PARAMETER__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PARAMETER__END : + return ((InternalEList) getEnds()).basicRemove(otherEnd, + msgs); + case UMLPackage.PARAMETER__UPPER_VALUE : + return basicSetUpperValue(null, msgs); + case UMLPackage.PARAMETER__LOWER_VALUE : + return basicSetLowerValue(null, msgs); + case UMLPackage.PARAMETER__PARAMETER_SET : + return ((InternalEList) getParameterSets()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETER__DEFAULT_VALUE : + return basicSetDefaultValue(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PARAMETER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PARAMETER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PARAMETER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PARAMETER__NAME : + return getName(); + case UMLPackage.PARAMETER__VISIBILITY : + return getVisibility(); + case UMLPackage.PARAMETER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PARAMETER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PARAMETER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PARAMETER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PARAMETER__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.PARAMETER__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.PARAMETER__END : + return getEnds(); + case UMLPackage.PARAMETER__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PARAMETER__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PARAMETER__UPPER : + return new Integer(getUpper()); + case UMLPackage.PARAMETER__LOWER : + return new Integer(getLower()); + case UMLPackage.PARAMETER__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.PARAMETER__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.PARAMETER__PARAMETER_SET : + return getParameterSets(); + case UMLPackage.PARAMETER__OPERATION : + if (resolve) + return getOperation(); + return basicGetOperation(); + case UMLPackage.PARAMETER__DIRECTION : + return getDirection(); + case UMLPackage.PARAMETER__DEFAULT : + return getDefault(); + case UMLPackage.PARAMETER__DEFAULT_VALUE : + return getDefaultValue(); + case UMLPackage.PARAMETER__IS_EXCEPTION : + return isException() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PARAMETER__IS_STREAM : + return isStream() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PARAMETER__EFFECT : + return getEffect(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER__NAME : + setName((String) newValue); + return; + case UMLPackage.PARAMETER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PARAMETER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PARAMETER__TYPE : + setType((Type) newValue); + return; + case UMLPackage.PARAMETER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PARAMETER__END : + getEnds().clear(); + getEnds().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PARAMETER__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PARAMETER__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.PARAMETER__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.PARAMETER__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.PARAMETER__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + case UMLPackage.PARAMETER__PARAMETER_SET : + getParameterSets().clear(); + getParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER__DIRECTION : + setDirection((ParameterDirectionKind) newValue); + return; + case UMLPackage.PARAMETER__DEFAULT : + setDefault((String) newValue); + return; + case UMLPackage.PARAMETER__DEFAULT_VALUE : + setDefaultValue((ValueSpecification) newValue); + return; + case UMLPackage.PARAMETER__IS_EXCEPTION : + setIsException(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PARAMETER__IS_STREAM : + setIsStream(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PARAMETER__EFFECT : + setEffect((ParameterEffectKind) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PARAMETER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PARAMETER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PARAMETER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PARAMETER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PARAMETER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PARAMETER__TYPE : + setType((Type) null); + return; + case UMLPackage.PARAMETER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PARAMETER__END : + getEnds().clear(); + return; + case UMLPackage.PARAMETER__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.PARAMETER__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.PARAMETER__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.PARAMETER__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.PARAMETER__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.PARAMETER__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + case UMLPackage.PARAMETER__PARAMETER_SET : + getParameterSets().clear(); + return; + case UMLPackage.PARAMETER__DIRECTION : + setDirection(DIRECTION_EDEFAULT); + return; + case UMLPackage.PARAMETER__DEFAULT : + setDefault(DEFAULT_EDEFAULT); + return; + case UMLPackage.PARAMETER__DEFAULT_VALUE : + setDefaultValue((ValueSpecification) null); + return; + case UMLPackage.PARAMETER__IS_EXCEPTION : + setIsException(IS_EXCEPTION_EDEFAULT); + return; + case UMLPackage.PARAMETER__IS_STREAM : + setIsStream(IS_STREAM_EDEFAULT); + return; + case UMLPackage.PARAMETER__EFFECT : + setEffect(EFFECT_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PARAMETER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PARAMETER__OWNER : + return isSetOwner(); + case UMLPackage.PARAMETER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PARAMETER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PARAMETER__NAME : + String name = eVirtualIsSet(UMLPackage.PARAMETER__NAME) + ? (String) eVirtualGet(UMLPackage.PARAMETER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PARAMETER__VISIBILITY : + return eVirtualIsSet(UMLPackage.PARAMETER__VISIBILITY) + && eVirtualGet(UMLPackage.PARAMETER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PARAMETER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PARAMETER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PARAMETER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PARAMETER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PARAMETER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PARAMETER__NAME_EXPRESSION) != null; + case UMLPackage.PARAMETER__TYPE : + return eVirtualGet(UMLPackage.PARAMETER__TYPE) != null; + case UMLPackage.PARAMETER__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PARAMETER__TEMPLATE_PARAMETER) != null; + case UMLPackage.PARAMETER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.PARAMETER__END : + List end = (List) eVirtualGet(UMLPackage.PARAMETER__END); + return end != null && !end.isEmpty(); + case UMLPackage.PARAMETER__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.PARAMETER__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.PARAMETER__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.PARAMETER__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.PARAMETER__UPPER_VALUE : + return eVirtualGet(UMLPackage.PARAMETER__UPPER_VALUE) != null; + case UMLPackage.PARAMETER__LOWER_VALUE : + return eVirtualGet(UMLPackage.PARAMETER__LOWER_VALUE) != null; + case UMLPackage.PARAMETER__PARAMETER_SET : + List parameterSet = (List) eVirtualGet(UMLPackage.PARAMETER__PARAMETER_SET); + return parameterSet != null && !parameterSet.isEmpty(); + case UMLPackage.PARAMETER__OPERATION : + return basicGetOperation() != null; + case UMLPackage.PARAMETER__DIRECTION : + return eVirtualIsSet(UMLPackage.PARAMETER__DIRECTION) + && eVirtualGet(UMLPackage.PARAMETER__DIRECTION) != DIRECTION_EDEFAULT; + case UMLPackage.PARAMETER__DEFAULT : + return DEFAULT_EDEFAULT == null + ? getDefault() != null + : !DEFAULT_EDEFAULT.equals(getDefault()); + case UMLPackage.PARAMETER__DEFAULT_VALUE : + return eVirtualGet(UMLPackage.PARAMETER__DEFAULT_VALUE) != null; + case UMLPackage.PARAMETER__IS_EXCEPTION : + return ((eFlags & IS_EXCEPTION_EFLAG) != 0) != IS_EXCEPTION_EDEFAULT; + case UMLPackage.PARAMETER__IS_STREAM : + return ((eFlags & IS_STREAM_EFLAG) != 0) != IS_STREAM_EDEFAULT; + case UMLPackage.PARAMETER__EFFECT : + return eVirtualIsSet(UMLPackage.PARAMETER__EFFECT) + && eVirtualGet(UMLPackage.PARAMETER__EFFECT) != EFFECT_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == MultiplicityElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PARAMETER__IS_ORDERED : + return UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED; + case UMLPackage.PARAMETER__IS_UNIQUE : + return UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE; + case UMLPackage.PARAMETER__UPPER : + return UMLPackage.MULTIPLICITY_ELEMENT__UPPER; + case UMLPackage.PARAMETER__LOWER : + return UMLPackage.MULTIPLICITY_ELEMENT__LOWER; + case UMLPackage.PARAMETER__UPPER_VALUE : + return UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE; + case UMLPackage.PARAMETER__LOWER_VALUE : + return UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == MultiplicityElement.class) { + switch (baseFeatureID) { + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + return UMLPackage.PARAMETER__IS_ORDERED; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + return UMLPackage.PARAMETER__IS_UNIQUE; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + return UMLPackage.PARAMETER__UPPER; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + return UMLPackage.PARAMETER__LOWER; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + return UMLPackage.PARAMETER__UPPER_VALUE; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + return UMLPackage.PARAMETER__LOWER_VALUE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isOrdered: "); //$NON-NLS-1$ + result.append((eFlags & IS_ORDERED_EFLAG) != 0); + result.append(", isUnique: "); //$NON-NLS-1$ + result.append((eFlags & IS_UNIQUE_EFLAG) != 0); + result.append(", direction: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PARAMETER__DIRECTION) + ? eVirtualGet(UMLPackage.PARAMETER__DIRECTION) + : DIRECTION_EDEFAULT); + result.append(", isException: "); //$NON-NLS-1$ + result.append((eFlags & IS_EXCEPTION_EFLAG) != 0); + result.append(", isStream: "); //$NON-NLS-1$ + result.append((eFlags & IS_STREAM_EFLAG) != 0); + result.append(", effect: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PARAMETER__EFFECT) + ? eVirtualGet(UMLPackage.PARAMETER__EFFECT) + : EFFECT_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue()) + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue()) + || eIsSet(UMLPackage.eINSTANCE.getParameter_DefaultValue()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Operation operation = basicGetOperation(); + if (operation != null) { + return operation; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getParameter_Operation()); + } + +} //ParameterImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java new file mode 100644 index 00000000..86326cc5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java @@ -0,0 +1,449 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterSetImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ParameterSetOperations; + +/** + * + * An implementation of the model object 'Parameter Set'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl#getParameters Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl#getConditions Condition}
  • + *
+ *

+ * + * @generated + */ +public class ParameterSetImpl + extends NamedElementImpl + implements ParameterSet { + + /** + * + * + * @generated + */ + protected ParameterSetImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getParameterSet(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.PARAMETER_SET__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.PARAMETER_SET__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.PARAMETER_SET__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getParameterSet_Condition()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getParameters() { + List parameter = (List) eVirtualGet(UMLPackage.PARAMETER_SET__PARAMETER); + if (parameter == null) { + eVirtualSet(UMLPackage.PARAMETER_SET__PARAMETER, + parameter = new EObjectWithInverseResolvingEList.ManyInverse( + Parameter.class, this, UMLPackage.PARAMETER_SET__PARAMETER, + UMLPackage.PARAMETER__PARAMETER_SET)); + } + return parameter; + } + + /** + * + * + * @generated + */ + public Parameter getParameter(String name) { + for (Iterator i = getParameters().iterator(); i.hasNext();) { + Parameter parameter = (Parameter) i.next(); + if (name.equals(parameter.getName())) { + return parameter; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getConditions() { + List condition = (List) eVirtualGet(UMLPackage.PARAMETER_SET__CONDITION); + if (condition == null) { + eVirtualSet(UMLPackage.PARAMETER_SET__CONDITION, + condition = new EObjectContainmentEList(Constraint.class, this, + UMLPackage.PARAMETER_SET__CONDITION)); + } + return condition; + } + + /** + * + * + * @generated + */ + public Constraint createCondition(EClass eClass) { + Constraint newCondition = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getConditions().add(newCondition); + return newCondition; + } + + /** + * + * + * @generated + */ + public Constraint createCondition() { + Constraint newCondition = UMLFactory.eINSTANCE.createConstraint(); + getConditions().add(newCondition); + return newCondition; + } + + /** + * + * + * @generated + */ + public Constraint getCondition(String name) { + for (Iterator i = getConditions().iterator(); i.hasNext();) { + Constraint condition = (Constraint) i.next(); + if (name.equals(condition.getName())) { + return condition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateSameParameterizedEntity(DiagnosticChain diagnostics, + Map context) { + return ParameterSetOperations.validateSameParameterizedEntity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInput(DiagnosticChain diagnostics, Map context) { + return ParameterSetOperations.validateInput(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTwoParameterSets(DiagnosticChain diagnostics, + Map context) { + return ParameterSetOperations.validateTwoParameterSets(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PARAMETER_SET__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PARAMETER_SET__PARAMETER : + return ((InternalEList) getParameters()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PARAMETER_SET__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETER_SET__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PARAMETER_SET__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PARAMETER_SET__PARAMETER : + return ((InternalEList) getParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETER_SET__CONDITION : + return ((InternalEList) getConditions()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER_SET__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PARAMETER_SET__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PARAMETER_SET__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PARAMETER_SET__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PARAMETER_SET__NAME : + return getName(); + case UMLPackage.PARAMETER_SET__VISIBILITY : + return getVisibility(); + case UMLPackage.PARAMETER_SET__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PARAMETER_SET__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PARAMETER_SET__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PARAMETER_SET__PARAMETER : + return getParameters(); + case UMLPackage.PARAMETER_SET__CONDITION : + return getConditions(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER_SET__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER_SET__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER_SET__NAME : + setName((String) newValue); + return; + case UMLPackage.PARAMETER_SET__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER_SET__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PARAMETER_SET__PARAMETER : + getParameters().clear(); + getParameters().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETER_SET__CONDITION : + getConditions().clear(); + getConditions().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER_SET__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PARAMETER_SET__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PARAMETER_SET__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PARAMETER_SET__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PARAMETER_SET__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PARAMETER_SET__PARAMETER : + getParameters().clear(); + return; + case UMLPackage.PARAMETER_SET__CONDITION : + getConditions().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETER_SET__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PARAMETER_SET__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PARAMETER_SET__OWNER : + return isSetOwner(); + case UMLPackage.PARAMETER_SET__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PARAMETER_SET__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PARAMETER_SET__NAME : + String name = eVirtualIsSet(UMLPackage.PARAMETER_SET__NAME) + ? (String) eVirtualGet(UMLPackage.PARAMETER_SET__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PARAMETER_SET__VISIBILITY : + return eVirtualIsSet(UMLPackage.PARAMETER_SET__VISIBILITY) + && eVirtualGet(UMLPackage.PARAMETER_SET__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PARAMETER_SET__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PARAMETER_SET__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PARAMETER_SET__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PARAMETER_SET__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PARAMETER_SET__NAME_EXPRESSION) != null; + case UMLPackage.PARAMETER_SET__PARAMETER : + List parameter = (List) eVirtualGet(UMLPackage.PARAMETER_SET__PARAMETER); + return parameter != null && !parameter.isEmpty(); + case UMLPackage.PARAMETER_SET__CONDITION : + List condition = (List) eVirtualGet(UMLPackage.PARAMETER_SET__CONDITION); + return condition != null && !condition.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getParameterSet_Condition()); + } + +} //ParameterSetImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterableElementImpl.java new file mode 100644 index 00000000..eff833e8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterableElementImpl.java @@ -0,0 +1,446 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterableElementImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; + +/** + * + * An implementation of the model object 'Parameterable Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterableElementImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ParameterableElementImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
+ *

+ * + * @generated + */ +public abstract class ParameterableElementImpl + extends ElementImpl + implements ParameterableElement { + + /** + * + * + * @generated + */ + protected ParameterableElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getParameterableElement(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet( + UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (getOwningTemplateParameter() != null + && getOwningTemplateParameter() != newTemplateParameter) { + setOwningTemplateParameter(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter).eInverseRemove( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter).eInverseAdd( + this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter, newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PARAMETERABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PARAMETERABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETERABLE_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETERABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETERABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PARAMETERABLE_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.PARAMETERABLE_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + +} //ParameterableElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java new file mode 100644 index 00000000..29493f9d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PartDecompositionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.PartDecomposition; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.PartDecompositionOperations; + +/** + * + * An implementation of the model object 'Part Decomposition'. + * + *

+ *

+ * + * @generated + */ +public class PartDecompositionImpl + extends InteractionUseImpl + implements PartDecomposition { + + /** + * + * + * @generated + */ + protected PartDecompositionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPartDecomposition(); + } + + /** + * + * + * @generated + */ + public boolean validatePartsOfInternalStructures( + DiagnosticChain diagnostics, Map context) { + return PartDecompositionOperations.validatePartsOfInternalStructures( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssume(DiagnosticChain diagnostics, Map context) { + return PartDecompositionOperations.validateAssume(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateCommutativityOfDecomposition( + DiagnosticChain diagnostics, Map context) { + return PartDecompositionOperations + .validateCommutativityOfDecomposition(this, diagnostics, context); + } + +} //PartDecompositionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java new file mode 100644 index 00000000..1d468e5a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java @@ -0,0 +1,470 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PinImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.Pin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.PinOperations; + +/** + * + * An implementation of the model object 'Pin'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PinImpl#isControl Is Control}
  • + *
+ *

+ * + * @generated + */ +public class PinImpl + extends ObjectNodeImpl + implements Pin { + + /** + * The default value of the '{@link #isControl() Is Control}' attribute. + * + * + * @see #isControl() + * @generated + * @ordered + */ + protected static final boolean IS_CONTROL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isControl() Is Control}' attribute. + * + * + * @see #isControl() + * @generated + * @ordered + */ + protected static final int IS_CONTROL_EFLAG = 1 << 10; + + /** + * + * + * @generated + */ + protected PinImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPin(); + } + + /** + * + * + * @generated + */ + public boolean isControl() { + return (eFlags & IS_CONTROL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsControl(boolean newIsControl) { + boolean oldIsControl = (eFlags & IS_CONTROL_EFLAG) != 0; + if (newIsControl) + eFlags |= IS_CONTROL_EFLAG; + else + eFlags &= ~IS_CONTROL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PIN__IS_CONTROL, oldIsControl, newIsControl)); + + } + + /** + * + * + * @generated + */ + public boolean validateControlPins(DiagnosticChain diagnostics, Map context) { + return PinOperations.validateControlPins(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PIN__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PIN__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PIN__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PIN__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PIN__NAME : + return getName(); + case UMLPackage.PIN__VISIBILITY : + return getVisibility(); + case UMLPackage.PIN__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PIN__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PIN__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PIN__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PIN__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PIN__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.PIN__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.PIN__OUTGOING : + return getOutgoings(); + case UMLPackage.PIN__IN_GROUP : + return getInGroups(); + case UMLPackage.PIN__IN_PARTITION : + return getInPartitions(); + case UMLPackage.PIN__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.PIN__ACTIVITY : + return getActivity(); + case UMLPackage.PIN__INCOMING : + return getIncomings(); + case UMLPackage.PIN__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.PIN__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.PIN__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.PIN__ORDERING : + return getOrdering(); + case UMLPackage.PIN__IS_CONTROL_TYPE : + return isControlType() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PIN__UPPER_BOUND : + return getUpperBound(); + case UMLPackage.PIN__IN_STATE : + return getInStates(); + case UMLPackage.PIN__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + case UMLPackage.PIN__IS_CONTROL : + return isControl() + ? Boolean.TRUE + : Boolean.FALSE; + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PIN__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PIN__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PIN__NAME : + setName((String) newValue); + return; + case UMLPackage.PIN__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PIN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PIN__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PIN__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PIN__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.PIN__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.PIN__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.PIN__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.PIN__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.PIN__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.PIN__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.PIN__TYPE : + setType((Type) newValue); + return; + case UMLPackage.PIN__ORDERING : + setOrdering((ObjectNodeOrderingKind) newValue); + return; + case UMLPackage.PIN__IS_CONTROL_TYPE : + setIsControlType(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PIN__UPPER_BOUND : + setUpperBound((ValueSpecification) newValue); + return; + case UMLPackage.PIN__IN_STATE : + getInStates().clear(); + getInStates().addAll((Collection) newValue); + return; + case UMLPackage.PIN__SELECTION : + setSelection((Behavior) newValue); + return; + case UMLPackage.PIN__IS_CONTROL : + setIsControl(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PIN__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PIN__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PIN__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PIN__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PIN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PIN__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PIN__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.PIN__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.PIN__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.PIN__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.PIN__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.PIN__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.PIN__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.PIN__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.PIN__TYPE : + setType((Type) null); + return; + case UMLPackage.PIN__ORDERING : + setOrdering(ORDERING_EDEFAULT); + return; + case UMLPackage.PIN__IS_CONTROL_TYPE : + setIsControlType(IS_CONTROL_TYPE_EDEFAULT); + return; + case UMLPackage.PIN__UPPER_BOUND : + setUpperBound((ValueSpecification) null); + return; + case UMLPackage.PIN__IN_STATE : + getInStates().clear(); + return; + case UMLPackage.PIN__SELECTION : + setSelection((Behavior) null); + return; + case UMLPackage.PIN__IS_CONTROL : + setIsControl(IS_CONTROL_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PIN__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PIN__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PIN__OWNER : + return isSetOwner(); + case UMLPackage.PIN__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PIN__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PIN__NAME : + String name = eVirtualIsSet(UMLPackage.PIN__NAME) + ? (String) eVirtualGet(UMLPackage.PIN__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PIN__VISIBILITY : + return eVirtualIsSet(UMLPackage.PIN__VISIBILITY) + && eVirtualGet(UMLPackage.PIN__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PIN__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PIN__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PIN__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PIN__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PIN__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PIN__NAME_EXPRESSION) != null; + case UMLPackage.PIN__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.PIN__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.PIN__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.PIN__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.PIN__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.PIN__IN_GROUP : + return isSetInGroups(); + case UMLPackage.PIN__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.PIN__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.PIN__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.PIN__ACTIVITY : + return getActivity() != null; + case UMLPackage.PIN__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.PIN__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.PIN__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.PIN__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.PIN__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.PIN__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.PIN__TYPE : + return eVirtualGet(UMLPackage.PIN__TYPE) != null; + case UMLPackage.PIN__ORDERING : + return eVirtualIsSet(UMLPackage.PIN__ORDERING) + && eVirtualGet(UMLPackage.PIN__ORDERING) != ORDERING_EDEFAULT; + case UMLPackage.PIN__IS_CONTROL_TYPE : + return ((eFlags & IS_CONTROL_TYPE_EFLAG) != 0) != IS_CONTROL_TYPE_EDEFAULT; + case UMLPackage.PIN__UPPER_BOUND : + return eVirtualGet(UMLPackage.PIN__UPPER_BOUND) != null; + case UMLPackage.PIN__IN_STATE : + List inState = (List) eVirtualGet(UMLPackage.PIN__IN_STATE); + return inState != null && !inState.isEmpty(); + case UMLPackage.PIN__SELECTION : + return eVirtualGet(UMLPackage.PIN__SELECTION) != null; + case UMLPackage.PIN__IS_CONTROL : + return ((eFlags & IS_CONTROL_EFLAG) != 0) != IS_CONTROL_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isControl: "); //$NON-NLS-1$ + result.append((eFlags & IS_CONTROL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //PinImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java new file mode 100644 index 00000000..95e89cdb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java @@ -0,0 +1,955 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PortImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.AggregationKind; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.PortOperations; + +/** + * + * An implementation of the model object 'Port'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#isBehavior Is Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#isService Is Service}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#getRequireds Required}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#getRedefinedPorts Redefined Port}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#getProvideds Provided}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PortImpl#getProtocol Protocol}
  • + *
+ *

+ * + * @generated + */ +public class PortImpl + extends PropertyImpl + implements Port { + + /** + * The default value of the '{@link #isBehavior() Is Behavior}' attribute. + * + * + * @see #isBehavior() + * @generated + * @ordered + */ + protected static final boolean IS_BEHAVIOR_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isBehavior() Is Behavior}' attribute. + * + * + * @see #isBehavior() + * @generated + * @ordered + */ + protected static final int IS_BEHAVIOR_EFLAG = 1 << 15; + + /** + * The default value of the '{@link #isService() Is Service}' attribute. + * + * + * @see #isService() + * @generated + * @ordered + */ + protected static final boolean IS_SERVICE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isService() Is Service}' attribute. + * + * + * @see #isService() + * @generated + * @ordered + */ + protected static final int IS_SERVICE_EFLAG = 1 << 16; + + /** + * + * + * @generated + */ + protected PortImpl() { + super(); + eFlags |= IS_SERVICE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPort(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.PORT__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.PORT__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.PORT__REDEFINED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getProperty_RedefinedProperty(), + UMLPackage.eINSTANCE.getPort_RedefinedPort()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public boolean isBehavior() { + return (eFlags & IS_BEHAVIOR_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsBehavior(boolean newIsBehavior) { + boolean oldIsBehavior = (eFlags & IS_BEHAVIOR_EFLAG) != 0; + if (newIsBehavior) + eFlags |= IS_BEHAVIOR_EFLAG; + else + eFlags &= ~IS_BEHAVIOR_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PORT__IS_BEHAVIOR, oldIsBehavior, newIsBehavior)); + + } + + /** + * + * + * @generated + */ + public boolean isService() { + return (eFlags & IS_SERVICE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsService(boolean newIsService) { + boolean oldIsService = (eFlags & IS_SERVICE_EFLAG) != 0; + if (newIsService) + eFlags |= IS_SERVICE_EFLAG; + else + eFlags &= ~IS_SERVICE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PORT__IS_SERVICE, oldIsService, newIsService)); + + } + + /** + * + * + * @generated + */ + public List getRequireds() { + // TODO: implement this method to return the 'Required' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Interface getRequired(String name) { + for (Iterator i = getRequireds().iterator(); i.hasNext();) { + Interface required = (Interface) i.next(); + if (name.equals(required.getName())) { + return required; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinedPorts() { + List redefinedPort = (List) eVirtualGet(UMLPackage.PORT__REDEFINED_PORT); + if (redefinedPort == null) { + eVirtualSet(UMLPackage.PORT__REDEFINED_PORT, + redefinedPort = new EObjectResolvingEList(Port.class, this, + UMLPackage.PORT__REDEFINED_PORT)); + } + return redefinedPort; + } + + /** + * + * + * @generated + */ + public Port getRedefinedPort(String name) { + for (Iterator i = getRedefinedPorts().iterator(); i.hasNext();) { + Port redefinedPort = (Port) i.next(); + if (name.equals(redefinedPort.getName())) { + return redefinedPort; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getProvideds() { + // TODO: implement this method to return the 'Provided' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Interface getProvided(String name) { + for (Iterator i = getProvideds().iterator(); i.hasNext();) { + Interface provided = (Interface) i.next(); + if (name.equals(provided.getName())) { + return provided; + } + } + return null; + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine getProtocol() { + ProtocolStateMachine protocol = (ProtocolStateMachine) eVirtualGet(UMLPackage.PORT__PROTOCOL); + if (protocol != null && protocol.eIsProxy()) { + ProtocolStateMachine oldProtocol = protocol; + protocol = (ProtocolStateMachine) eResolveProxy((InternalEObject) protocol); + if (protocol != oldProtocol) { + eVirtualSet(UMLPackage.PORT__PROTOCOL, protocol); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PORT__PROTOCOL, oldProtocol, protocol)); + } + } + return protocol; + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine basicGetProtocol() { + return (ProtocolStateMachine) eVirtualGet(UMLPackage.PORT__PROTOCOL); + } + + /** + * + * + * @generated + */ + public void setProtocol(ProtocolStateMachine newProtocol) { + ProtocolStateMachine protocol = newProtocol; + Object oldProtocol = eVirtualSet(UMLPackage.PORT__PROTOCOL, protocol); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PORT__PROTOCOL, oldProtocol == EVIRTUAL_NO_VALUE + ? null + : oldProtocol, protocol)); + + } + + /** + * + * + * @generated + */ + public boolean validateRequiredInterfaces(DiagnosticChain diagnostics, + Map context) { + return PortOperations.validateRequiredInterfaces(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validatePortAggregation(DiagnosticChain diagnostics, + Map context) { + return PortOperations.validatePortAggregation(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validatePortDestroyed(DiagnosticChain diagnostics, + Map context) { + return PortOperations.validatePortDestroyed(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDefaultValue(DiagnosticChain diagnostics, Map context) { + return PortOperations.validateDefaultValue(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PORT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PORT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PORT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PORT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PORT__NAME : + return getName(); + case UMLPackage.PORT__VISIBILITY : + return getVisibility(); + case UMLPackage.PORT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PORT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PORT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PORT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PORT__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.PORT__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.PORT__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.PORT__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.PORT__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__UPPER : + return new Integer(getUpper()); + case UMLPackage.PORT__LOWER : + return new Integer(getLower()); + case UMLPackage.PORT__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.PORT__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.PORT__IS_READ_ONLY : + return isReadOnly() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PORT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.PORT__END : + return getEnds(); + case UMLPackage.PORT__DEPLOYMENT : + return getDeployments(); + case UMLPackage.PORT__DEPLOYED_ELEMENT : + return getDeployedElements(); + case UMLPackage.PORT__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.PORT__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.PORT__DATATYPE : + return getDatatype(); + case UMLPackage.PORT__IS_DERIVED : + return isDerived() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__IS_DERIVED_UNION : + return isDerivedUnion() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__DEFAULT : + return getDefault(); + case UMLPackage.PORT__AGGREGATION : + return getAggregation(); + case UMLPackage.PORT__IS_COMPOSITE : + return isComposite() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__CLASS_ : + return getClass_(); + case UMLPackage.PORT__REDEFINED_PROPERTY : + return getRedefinedProperties(); + case UMLPackage.PORT__OWNING_ASSOCIATION : + return getOwningAssociation(); + case UMLPackage.PORT__ASSOCIATION : + if (resolve) + return getAssociation(); + return basicGetAssociation(); + case UMLPackage.PORT__DEFAULT_VALUE : + return getDefaultValue(); + case UMLPackage.PORT__OPPOSITE : + if (resolve) + return getOpposite(); + return basicGetOpposite(); + case UMLPackage.PORT__SUBSETTED_PROPERTY : + return getSubsettedProperties(); + case UMLPackage.PORT__QUALIFIER : + return getQualifiers(); + case UMLPackage.PORT__ASSOCIATION_END : + return getAssociationEnd(); + case UMLPackage.PORT__IS_BEHAVIOR : + return isBehavior() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__IS_SERVICE : + return isService() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PORT__REQUIRED : + return getRequireds(); + case UMLPackage.PORT__REDEFINED_PORT : + return getRedefinedPorts(); + case UMLPackage.PORT__PROVIDED : + return getProvideds(); + case UMLPackage.PORT__PROTOCOL : + if (resolve) + return getProtocol(); + return basicGetProtocol(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PORT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PORT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PORT__NAME : + setName((String) newValue); + return; + case UMLPackage.PORT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PORT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PORT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PORT__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__TYPE : + setType((Type) newValue); + return; + case UMLPackage.PORT__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.PORT__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.PORT__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.PORT__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + case UMLPackage.PORT__IS_READ_ONLY : + setIsReadOnly(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PORT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PORT__END : + getEnds().clear(); + getEnds().addAll((Collection) newValue); + return; + case UMLPackage.PORT__DEPLOYMENT : + getDeployments().clear(); + getDeployments().addAll((Collection) newValue); + return; + case UMLPackage.PORT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.PORT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.PORT__DATATYPE : + setDatatype((DataType) newValue); + return; + case UMLPackage.PORT__IS_DERIVED : + setIsDerived(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__IS_DERIVED_UNION : + setIsDerivedUnion(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__DEFAULT : + setDefault((String) newValue); + return; + case UMLPackage.PORT__AGGREGATION : + setAggregation((AggregationKind) newValue); + return; + case UMLPackage.PORT__IS_COMPOSITE : + setIsComposite(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__REDEFINED_PROPERTY : + getRedefinedProperties().clear(); + getRedefinedProperties().addAll((Collection) newValue); + return; + case UMLPackage.PORT__OWNING_ASSOCIATION : + setOwningAssociation((Association) newValue); + return; + case UMLPackage.PORT__ASSOCIATION : + setAssociation((Association) newValue); + return; + case UMLPackage.PORT__DEFAULT_VALUE : + setDefaultValue((ValueSpecification) newValue); + return; + case UMLPackage.PORT__OPPOSITE : + setOpposite((Property) newValue); + return; + case UMLPackage.PORT__SUBSETTED_PROPERTY : + getSubsettedProperties().clear(); + getSubsettedProperties().addAll((Collection) newValue); + return; + case UMLPackage.PORT__QUALIFIER : + getQualifiers().clear(); + getQualifiers().addAll((Collection) newValue); + return; + case UMLPackage.PORT__ASSOCIATION_END : + setAssociationEnd((Property) newValue); + return; + case UMLPackage.PORT__IS_BEHAVIOR : + setIsBehavior(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__IS_SERVICE : + setIsService(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PORT__REDEFINED_PORT : + getRedefinedPorts().clear(); + getRedefinedPorts().addAll((Collection) newValue); + return; + case UMLPackage.PORT__PROTOCOL : + setProtocol((ProtocolStateMachine) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PORT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PORT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PORT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PORT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PORT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PORT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PORT__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.PORT__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.PORT__TYPE : + setType((Type) null); + return; + case UMLPackage.PORT__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.PORT__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.PORT__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.PORT__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.PORT__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.PORT__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + case UMLPackage.PORT__IS_READ_ONLY : + setIsReadOnly(IS_READ_ONLY_EDEFAULT); + return; + case UMLPackage.PORT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PORT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PORT__END : + getEnds().clear(); + return; + case UMLPackage.PORT__DEPLOYMENT : + getDeployments().clear(); + return; + case UMLPackage.PORT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.PORT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.PORT__DATATYPE : + setDatatype((DataType) null); + return; + case UMLPackage.PORT__IS_DERIVED : + setIsDerived(IS_DERIVED_EDEFAULT); + return; + case UMLPackage.PORT__IS_DERIVED_UNION : + setIsDerivedUnion(IS_DERIVED_UNION_EDEFAULT); + return; + case UMLPackage.PORT__DEFAULT : + setDefault(DEFAULT_EDEFAULT); + return; + case UMLPackage.PORT__AGGREGATION : + setAggregation(AGGREGATION_EDEFAULT); + return; + case UMLPackage.PORT__IS_COMPOSITE : + setIsComposite(IS_COMPOSITE_EDEFAULT); + return; + case UMLPackage.PORT__REDEFINED_PROPERTY : + getRedefinedProperties().clear(); + return; + case UMLPackage.PORT__OWNING_ASSOCIATION : + setOwningAssociation((Association) null); + return; + case UMLPackage.PORT__ASSOCIATION : + setAssociation((Association) null); + return; + case UMLPackage.PORT__DEFAULT_VALUE : + setDefaultValue((ValueSpecification) null); + return; + case UMLPackage.PORT__OPPOSITE : + setOpposite((Property) null); + return; + case UMLPackage.PORT__SUBSETTED_PROPERTY : + getSubsettedProperties().clear(); + return; + case UMLPackage.PORT__QUALIFIER : + getQualifiers().clear(); + return; + case UMLPackage.PORT__ASSOCIATION_END : + setAssociationEnd((Property) null); + return; + case UMLPackage.PORT__IS_BEHAVIOR : + setIsBehavior(IS_BEHAVIOR_EDEFAULT); + return; + case UMLPackage.PORT__IS_SERVICE : + setIsService(IS_SERVICE_EDEFAULT); + return; + case UMLPackage.PORT__REDEFINED_PORT : + getRedefinedPorts().clear(); + return; + case UMLPackage.PORT__PROTOCOL : + setProtocol((ProtocolStateMachine) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PORT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PORT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PORT__OWNER : + return isSetOwner(); + case UMLPackage.PORT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PORT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PORT__NAME : + String name = eVirtualIsSet(UMLPackage.PORT__NAME) + ? (String) eVirtualGet(UMLPackage.PORT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PORT__VISIBILITY : + return eVirtualIsSet(UMLPackage.PORT__VISIBILITY) + && eVirtualGet(UMLPackage.PORT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PORT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PORT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PORT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PORT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PORT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PORT__NAME_EXPRESSION) != null; + case UMLPackage.PORT__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.PORT__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.PORT__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.PORT__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.PORT__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.PORT__TYPE : + return eVirtualGet(UMLPackage.PORT__TYPE) != null; + case UMLPackage.PORT__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.PORT__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.PORT__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.PORT__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.PORT__UPPER_VALUE : + return eVirtualGet(UMLPackage.PORT__UPPER_VALUE) != null; + case UMLPackage.PORT__LOWER_VALUE : + return eVirtualGet(UMLPackage.PORT__LOWER_VALUE) != null; + case UMLPackage.PORT__IS_READ_ONLY : + return isReadOnly() != IS_READ_ONLY_EDEFAULT; + case UMLPackage.PORT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PORT__TEMPLATE_PARAMETER) != null; + case UMLPackage.PORT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.PORT__END : + List end = (List) eVirtualGet(UMLPackage.PORT__END); + return end != null && !end.isEmpty(); + case UMLPackage.PORT__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.PORT__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.PORT__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + case UMLPackage.PORT__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.PORT__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.PORT__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.PORT__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.PORT__DATATYPE : + return getDatatype() != null; + case UMLPackage.PORT__IS_DERIVED : + return ((eFlags & IS_DERIVED_EFLAG) != 0) != IS_DERIVED_EDEFAULT; + case UMLPackage.PORT__IS_DERIVED_UNION : + return ((eFlags & IS_DERIVED_UNION_EFLAG) != 0) != IS_DERIVED_UNION_EDEFAULT; + case UMLPackage.PORT__DEFAULT : + return DEFAULT_EDEFAULT == null + ? getDefault() != null + : !DEFAULT_EDEFAULT.equals(getDefault()); + case UMLPackage.PORT__AGGREGATION : + return eVirtualIsSet(UMLPackage.PORT__AGGREGATION) + && eVirtualGet(UMLPackage.PORT__AGGREGATION) != AGGREGATION_EDEFAULT; + case UMLPackage.PORT__IS_COMPOSITE : + return isComposite() != IS_COMPOSITE_EDEFAULT; + case UMLPackage.PORT__CLASS_ : + return getClass_() != null; + case UMLPackage.PORT__REDEFINED_PROPERTY : + List redefinedProperty = (List) eVirtualGet(UMLPackage.PORT__REDEFINED_PROPERTY); + return redefinedProperty != null + && !redefinedProperty.isEmpty(); + case UMLPackage.PORT__OWNING_ASSOCIATION : + return getOwningAssociation() != null; + case UMLPackage.PORT__ASSOCIATION : + return eVirtualGet(UMLPackage.PORT__ASSOCIATION) != null; + case UMLPackage.PORT__DEFAULT_VALUE : + return eVirtualGet(UMLPackage.PORT__DEFAULT_VALUE) != null; + case UMLPackage.PORT__OPPOSITE : + return basicGetOpposite() != null; + case UMLPackage.PORT__SUBSETTED_PROPERTY : + List subsettedProperty = (List) eVirtualGet(UMLPackage.PORT__SUBSETTED_PROPERTY); + return subsettedProperty != null + && !subsettedProperty.isEmpty(); + case UMLPackage.PORT__QUALIFIER : + List qualifier = (List) eVirtualGet(UMLPackage.PORT__QUALIFIER); + return qualifier != null && !qualifier.isEmpty(); + case UMLPackage.PORT__ASSOCIATION_END : + return getAssociationEnd() != null; + case UMLPackage.PORT__IS_BEHAVIOR : + return ((eFlags & IS_BEHAVIOR_EFLAG) != 0) != IS_BEHAVIOR_EDEFAULT; + case UMLPackage.PORT__IS_SERVICE : + return ((eFlags & IS_SERVICE_EFLAG) != 0) != IS_SERVICE_EDEFAULT; + case UMLPackage.PORT__REQUIRED : + return !getRequireds().isEmpty(); + case UMLPackage.PORT__REDEFINED_PORT : + List redefinedPort = (List) eVirtualGet(UMLPackage.PORT__REDEFINED_PORT); + return redefinedPort != null && !redefinedPort.isEmpty(); + case UMLPackage.PORT__PROVIDED : + return !getProvideds().isEmpty(); + case UMLPackage.PORT__PROTOCOL : + return eVirtualGet(UMLPackage.PORT__PROTOCOL) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isBehavior: "); //$NON-NLS-1$ + result.append((eFlags & IS_BEHAVIOR_EFLAG) != 0); + result.append(", isService: "); //$NON-NLS-1$ + result.append((eFlags & IS_SERVICE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getPort_RedefinedPort()); + } + +} //PortImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PrimitiveTypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PrimitiveTypeImpl.java new file mode 100644 index 00000000..6e8156d4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PrimitiveTypeImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PrimitiveTypeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.PrimitiveType; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Primitive Type'. + * + *

+ *

+ * + * @generated + */ +public class PrimitiveTypeImpl + extends DataTypeImpl + implements PrimitiveType { + + /** + * + * + * @generated + */ + protected PrimitiveTypeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPrimitiveType(); + } + +} //PrimitiveTypeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java new file mode 100644 index 00000000..fd254f24 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProfileApplicationImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Profile Application'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getImportedPackage Imported Package}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getImportedProfile Imported Profile}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#isStrict Is Strict}
  • + *
+ *

+ * + * @generated + */ +public class ProfileApplicationImpl + extends PackageImportImpl + implements ProfileApplication { + + /** + * The default value of the '{@link #isStrict() Is Strict}' attribute. + * + * + * @see #isStrict() + * @generated + * @ordered + */ + protected static final boolean IS_STRICT_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isStrict() Is Strict}' attribute. + * + * + * @see #isStrict() + * @generated + * @ordered + */ + protected static final int IS_STRICT_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected ProfileApplicationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getProfileApplication(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getImportedPackage() { + org.eclipse.uml2.uml.Package importedPackage = (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE); + if (importedPackage != null && importedPackage.eIsProxy()) { + org.eclipse.uml2.uml.Package oldImportedPackage = importedPackage; + importedPackage = (org.eclipse.uml2.uml.Package) eResolveProxy((InternalEObject) importedPackage); + if (importedPackage != oldImportedPackage) { + eVirtualSet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE, + importedPackage); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE, + oldImportedPackage, importedPackage)); + } + } + return importedPackage; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package basicGetImportedPackage() { + return (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE); + } + + /** + * + * + * @generated + */ + public void setImportedPackage( + org.eclipse.uml2.uml.Package newImportedPackage) { + org.eclipse.uml2.uml.Package importedPackage = newImportedPackage; + Object oldImportedPackage = eVirtualSet( + UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE, importedPackage); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE, + oldImportedPackage == EVIRTUAL_NO_VALUE + ? null + : oldImportedPackage, importedPackage)); + + if (eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE) != null + && eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE) != newImportedPackage) { + setImportedProfile(null); + } + } + + /** + * + * + * @generated + */ + public Profile getImportedProfile() { + Profile importedProfile = (Profile) eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE); + if (importedProfile != null && importedProfile.eIsProxy()) { + Profile oldImportedProfile = importedProfile; + importedProfile = (Profile) eResolveProxy((InternalEObject) importedProfile); + if (importedProfile != oldImportedProfile) { + eVirtualSet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE, + importedProfile); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE, + oldImportedProfile, importedProfile)); + } + } + return importedProfile; + } + + /** + * + * + * @generated + */ + public Profile basicGetImportedProfile() { + return (Profile) eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE); + } + + /** + * + * + * @generated + */ + public void setImportedProfile(Profile newImportedProfile) { + Profile importedProfile = newImportedProfile; + Object oldImportedProfile = eVirtualSet( + UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE, importedProfile); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE, + oldImportedProfile == EVIRTUAL_NO_VALUE + ? null + : oldImportedProfile, importedProfile)); + + if (newImportedProfile != null + || oldImportedProfile == eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE)) { + setImportedPackage(newImportedProfile); + } + } + + /** + * + * + * @generated + */ + public boolean isStrict() { + return (eFlags & IS_STRICT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsStrict(boolean newIsStrict) { + boolean oldIsStrict = (eFlags & IS_STRICT_EFLAG) != 0; + if (newIsStrict) + eFlags |= IS_STRICT_EFLAG; + else + eFlags &= ~IS_STRICT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROFILE_APPLICATION__IS_STRICT, oldIsStrict, + newIsStrict)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE_APPLICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PROFILE_APPLICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PROFILE_APPLICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PROFILE_APPLICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PROFILE_APPLICATION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.PROFILE_APPLICATION__SOURCE : + return getSources(); + case UMLPackage.PROFILE_APPLICATION__TARGET : + return getTargets(); + case UMLPackage.PROFILE_APPLICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE : + if (resolve) + return getImportedPackage(); + return basicGetImportedPackage(); + case UMLPackage.PROFILE_APPLICATION__IMPORTING_NAMESPACE : + return getImportingNamespace(); + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE : + if (resolve) + return getImportedProfile(); + return basicGetImportedProfile(); + case UMLPackage.PROFILE_APPLICATION__IS_STRICT : + return isStrict() + ? Boolean.TRUE + : Boolean.FALSE; + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE_APPLICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE_APPLICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE_APPLICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE : + setImportedPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PROFILE_APPLICATION__IMPORTING_NAMESPACE : + setImportingNamespace((Namespace) newValue); + return; + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE : + setImportedProfile((Profile) newValue); + return; + case UMLPackage.PROFILE_APPLICATION__IS_STRICT : + setIsStrict(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE_APPLICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PROFILE_APPLICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PROFILE_APPLICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE : + setImportedPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PROFILE_APPLICATION__IMPORTING_NAMESPACE : + setImportingNamespace((Namespace) null); + return; + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE : + setImportedProfile((Profile) null); + return; + case UMLPackage.PROFILE_APPLICATION__IS_STRICT : + setIsStrict(IS_STRICT_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE_APPLICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PROFILE_APPLICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PROFILE_APPLICATION__OWNER : + return isSetOwner(); + case UMLPackage.PROFILE_APPLICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PROFILE_APPLICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PROFILE_APPLICATION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.PROFILE_APPLICATION__SOURCE : + return isSetSources(); + case UMLPackage.PROFILE_APPLICATION__TARGET : + return isSetTargets(); + case UMLPackage.PROFILE_APPLICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.PROFILE_APPLICATION__VISIBILITY) + && eVirtualGet(UMLPackage.PROFILE_APPLICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE : + return eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE) != null; + case UMLPackage.PROFILE_APPLICATION__IMPORTING_NAMESPACE : + return getImportingNamespace() != null; + case UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE : + return eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE) != null; + case UMLPackage.PROFILE_APPLICATION__IS_STRICT : + return ((eFlags & IS_STRICT_EFLAG) != 0) != IS_STRICT_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isStrict: "); //$NON-NLS-1$ + result.append((eFlags & IS_STRICT_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //ProfileApplicationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java new file mode 100644 index 00000000..a7bcc579 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java @@ -0,0 +1,701 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProfileImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; + +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ProfileOperations; + +/** + * + * An implementation of the model object 'Profile'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getPackagedElements Packaged Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getElementImports Element Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getPackageImports Package Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getOwnedStereotypes Owned Stereotype}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getMetaclassReferences Metaclass Reference}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getMetamodelReferences Metamodel Reference}
  • + *
+ *

+ * + * @generated + */ +public class ProfileImpl + extends PackageImpl + implements Profile { + + /** + * + * + * @generated + */ + protected ProfileImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getProfile(); + } + + /** + * + * + * @generated + */ + public List getPackagedElements() { + List packagedElement = (List) eVirtualGet(UMLPackage.PROFILE__PACKAGED_ELEMENT); + if (packagedElement == null) { + eVirtualSet(UMLPackage.PROFILE__PACKAGED_ELEMENT, + packagedElement = new SupersetEObjectContainmentEList( + PackageableElement.class, this, + UMLPackage.PROFILE__PACKAGED_ELEMENT, + new int[]{UMLPackage.PROFILE__OWNED_STEREOTYPE})); + } + return packagedElement; + } + + /** + * + * + * @generated + */ + public List getElementImports() { + List elementImport = (List) eVirtualGet(UMLPackage.PROFILE__ELEMENT_IMPORT); + if (elementImport == null) { + eVirtualSet(UMLPackage.PROFILE__ELEMENT_IMPORT, + elementImport = new SupersetEObjectContainmentWithInverseEList( + ElementImport.class, this, + UMLPackage.PROFILE__ELEMENT_IMPORT, + new int[]{UMLPackage.PROFILE__METACLASS_REFERENCE}, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE)); + } + return elementImport; + } + + /** + * + * + * @generated + */ + public List getPackageImports() { + List packageImport = (List) eVirtualGet(UMLPackage.PROFILE__PACKAGE_IMPORT); + if (packageImport == null) { + eVirtualSet(UMLPackage.PROFILE__PACKAGE_IMPORT, + packageImport = new SupersetEObjectContainmentWithInverseEList( + PackageImport.class, this, + UMLPackage.PROFILE__PACKAGE_IMPORT, new int[]{ + UMLPackage.PROFILE__APPLIED_PROFILE, + UMLPackage.PROFILE__METAMODEL_REFERENCE}, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE)); + } + return packageImport; + } + + /** + * + * + * @generated + */ + public List getOwnedStereotypes() { + List ownedStereotype = (List) eVirtualGet(UMLPackage.PROFILE__OWNED_STEREOTYPE); + if (ownedStereotype == null) { + eVirtualSet(UMLPackage.PROFILE__OWNED_STEREOTYPE, + ownedStereotype = new SubsetEObjectEList(Stereotype.class, + this, UMLPackage.PROFILE__OWNED_STEREOTYPE, + new int[]{UMLPackage.PROFILE__PACKAGED_ELEMENT})); + } + return ownedStereotype; + } + + /** + * + * + * @generated + */ + public Stereotype getOwnedStereotype(String name) { + for (Iterator i = getOwnedStereotypes().iterator(); i.hasNext();) { + Stereotype ownedStereotype = (Stereotype) i.next(); + if (name.equals(ownedStereotype.getName())) { + return ownedStereotype; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getMetaclassReferences() { + List metaclassReference = (List) eVirtualGet(UMLPackage.PROFILE__METACLASS_REFERENCE); + if (metaclassReference == null) { + eVirtualSet(UMLPackage.PROFILE__METACLASS_REFERENCE, + metaclassReference = new SubsetEObjectEList( + ElementImport.class, this, + UMLPackage.PROFILE__METACLASS_REFERENCE, + new int[]{UMLPackage.PROFILE__ELEMENT_IMPORT})); + } + return metaclassReference; + } + + /** + * + * + * @generated + */ + public List getMetamodelReferences() { + List metamodelReference = (List) eVirtualGet(UMLPackage.PROFILE__METAMODEL_REFERENCE); + if (metamodelReference == null) { + eVirtualSet(UMLPackage.PROFILE__METAMODEL_REFERENCE, + metamodelReference = new SubsetEObjectEList( + PackageImport.class, this, + UMLPackage.PROFILE__METAMODEL_REFERENCE, + new int[]{UMLPackage.PROFILE__PACKAGE_IMPORT})); + } + return metamodelReference; + } + + /** + * + * + * @generated + */ + public boolean validateMetaclassReferenceNotSpecialized( + DiagnosticChain diagnostics, Map context) { + return ProfileOperations.validateMetaclassReferenceNotSpecialized(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReferencesSameMetamodel(DiagnosticChain diagnostics, + Map context) { + return ProfileOperations.validateReferencesSameMetamodel(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public List allOwningPackages() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getProfile().getEOperations().get(2)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE.getProfile() + .getEOperations().get(2), result = ProfileOperations + .allOwningPackages(this)); + } + return result; + } + return ProfileOperations.allOwningPackages(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROFILE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROFILE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROFILE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROFILE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROFILE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.PROFILE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PROFILE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PROFILE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.PROFILE__PACKAGE_MERGE : + return ((InternalEList) getPackageMerges()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROFILE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROFILE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PROFILE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PROFILE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.PROFILE__PACKAGE_MERGE : + return ((InternalEList) getPackageMerges()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROFILE__PACKAGED_ELEMENT : + return ((InternalEList) getPackagedElements()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PROFILE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PROFILE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PROFILE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PROFILE__NAME : + return getName(); + case UMLPackage.PROFILE__VISIBILITY : + return getVisibility(); + case UMLPackage.PROFILE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PROFILE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PROFILE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PROFILE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PROFILE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.PROFILE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.PROFILE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.PROFILE__MEMBER : + return getMembers(); + case UMLPackage.PROFILE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.PROFILE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.PROFILE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.PROFILE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.PROFILE__PACKAGE_MERGE : + return getPackageMerges(); + case UMLPackage.PROFILE__PACKAGED_ELEMENT : + return getPackagedElements(); + case UMLPackage.PROFILE__OWNED_TYPE : + return getOwnedTypes(); + case UMLPackage.PROFILE__NESTED_PACKAGE : + return getNestedPackages(); + case UMLPackage.PROFILE__NESTING_PACKAGE : + return getNestingPackage(); + case UMLPackage.PROFILE__APPLIED_PROFILE : + return getAppliedProfiles(); + case UMLPackage.PROFILE__OWNED_STEREOTYPE : + return getOwnedStereotypes(); + case UMLPackage.PROFILE__METACLASS_REFERENCE : + return getMetaclassReferences(); + case UMLPackage.PROFILE__METAMODEL_REFERENCE : + return getMetamodelReferences(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__NAME : + setName((String) newValue); + return; + case UMLPackage.PROFILE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PROFILE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PROFILE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PROFILE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.PROFILE__PACKAGE_MERGE : + getPackageMerges().clear(); + getPackageMerges().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__PACKAGED_ELEMENT : + getPackagedElements().clear(); + getPackagedElements().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__OWNED_TYPE : + getOwnedTypes().clear(); + getOwnedTypes().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__NESTED_PACKAGE : + getNestedPackages().clear(); + getNestedPackages().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PROFILE__APPLIED_PROFILE : + getAppliedProfiles().clear(); + getAppliedProfiles().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__OWNED_STEREOTYPE : + getOwnedStereotypes().clear(); + getOwnedStereotypes().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__METACLASS_REFERENCE : + getMetaclassReferences().clear(); + getMetaclassReferences().addAll((Collection) newValue); + return; + case UMLPackage.PROFILE__METAMODEL_REFERENCE : + getMetamodelReferences().clear(); + getMetamodelReferences().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PROFILE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PROFILE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PROFILE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PROFILE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PROFILE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PROFILE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.PROFILE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.PROFILE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.PROFILE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PROFILE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.PROFILE__PACKAGE_MERGE : + getPackageMerges().clear(); + return; + case UMLPackage.PROFILE__PACKAGED_ELEMENT : + getPackagedElements().clear(); + return; + case UMLPackage.PROFILE__OWNED_TYPE : + getOwnedTypes().clear(); + return; + case UMLPackage.PROFILE__NESTED_PACKAGE : + getNestedPackages().clear(); + return; + case UMLPackage.PROFILE__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PROFILE__APPLIED_PROFILE : + getAppliedProfiles().clear(); + return; + case UMLPackage.PROFILE__OWNED_STEREOTYPE : + getOwnedStereotypes().clear(); + return; + case UMLPackage.PROFILE__METACLASS_REFERENCE : + getMetaclassReferences().clear(); + return; + case UMLPackage.PROFILE__METAMODEL_REFERENCE : + getMetamodelReferences().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROFILE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PROFILE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PROFILE__OWNER : + return isSetOwner(); + case UMLPackage.PROFILE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PROFILE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PROFILE__NAME : + String name = eVirtualIsSet(UMLPackage.PROFILE__NAME) + ? (String) eVirtualGet(UMLPackage.PROFILE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PROFILE__VISIBILITY : + return eVirtualIsSet(UMLPackage.PROFILE__VISIBILITY) + && eVirtualGet(UMLPackage.PROFILE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PROFILE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PROFILE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PROFILE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PROFILE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PROFILE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PROFILE__NAME_EXPRESSION) != null; + case UMLPackage.PROFILE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.PROFILE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.PROFILE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.PROFILE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.PROFILE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.PROFILE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.PROFILE__MEMBER : + return isSetMembers(); + case UMLPackage.PROFILE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.PROFILE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.PROFILE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PROFILE__TEMPLATE_PARAMETER) != null; + case UMLPackage.PROFILE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.PROFILE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.PROFILE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.PROFILE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.PROFILE__PACKAGE_MERGE : + List packageMerge = (List) eVirtualGet(UMLPackage.PROFILE__PACKAGE_MERGE); + return packageMerge != null && !packageMerge.isEmpty(); + case UMLPackage.PROFILE__PACKAGED_ELEMENT : + List packagedElement = (List) eVirtualGet(UMLPackage.PROFILE__PACKAGED_ELEMENT); + return packagedElement != null && !packagedElement.isEmpty(); + case UMLPackage.PROFILE__OWNED_TYPE : + return !getOwnedTypes().isEmpty(); + case UMLPackage.PROFILE__NESTED_PACKAGE : + return !getNestedPackages().isEmpty(); + case UMLPackage.PROFILE__NESTING_PACKAGE : + return getNestingPackage() != null; + case UMLPackage.PROFILE__APPLIED_PROFILE : + List appliedProfile = (List) eVirtualGet(UMLPackage.PROFILE__APPLIED_PROFILE); + return appliedProfile != null && !appliedProfile.isEmpty(); + case UMLPackage.PROFILE__OWNED_STEREOTYPE : + List ownedStereotype = (List) eVirtualGet(UMLPackage.PROFILE__OWNED_STEREOTYPE); + return ownedStereotype != null && !ownedStereotype.isEmpty(); + case UMLPackage.PROFILE__METACLASS_REFERENCE : + List metaclassReference = (List) eVirtualGet(UMLPackage.PROFILE__METACLASS_REFERENCE); + return metaclassReference != null + && !metaclassReference.isEmpty(); + case UMLPackage.PROFILE__METAMODEL_REFERENCE : + List metamodelReference = (List) eVirtualGet(UMLPackage.PROFILE__METAMODEL_REFERENCE); + return metamodelReference != null + && !metamodelReference.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //ProfileImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java new file mode 100644 index 00000000..f28ac220 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java @@ -0,0 +1,2384 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PropertyImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.AggregationKind; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; +import org.eclipse.uml2.uml.internal.operations.PropertyOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * + * An implementation of the model object 'Property'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getTemplateParameter Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwningTemplateParameter Owning Template Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getEnds End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getClientDependencies Client Dependency}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDeployments Deployment}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDeployedElements Deployed Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwnedTemplateSignature Owned Template Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getFeaturingClassifiers Featuring Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAssociation Association}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDatatype Datatype}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isDerived Is Derived}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isDerivedUnion Is Derived Union}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDefault Default}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAggregation Aggregation}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isComposite Is Composite}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getClass_ Class }
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getRedefinedProperties Redefined Property}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwningAssociation Owning Association}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDefaultValue Default Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOpposite Opposite}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getSubsettedProperties Subsetted Property}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getQualifiers Qualifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAssociationEnd Association End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isReadOnly Is Read Only}
  • + *
+ *

+ * + * @generated + */ +public class PropertyImpl + extends StructuralFeatureImpl + implements Property { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isDerived() Is Derived}' attribute. + * + * + * @see #isDerived() + * @generated + * @ordered + */ + protected static final boolean IS_DERIVED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDerived() Is Derived}' attribute. + * + * + * @see #isDerived() + * @generated + * @ordered + */ + protected static final int IS_DERIVED_EFLAG = 1 << 13; + + /** + * The default value of the '{@link #isDerivedUnion() Is Derived Union}' attribute. + * + * + * @see #isDerivedUnion() + * @generated + * @ordered + */ + protected static final boolean IS_DERIVED_UNION_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDerivedUnion() Is Derived Union}' attribute. + * + * + * @see #isDerivedUnion() + * @generated + * @ordered + */ + protected static final int IS_DERIVED_UNION_EFLAG = 1 << 14; + + /** + * The default value of the '{@link #getDefault() Default}' attribute. + * + * + * @see #getDefault() + * @generated + * @ordered + */ + protected static final String DEFAULT_EDEFAULT = null; + + /** + * The default value of the '{@link #getAggregation() Aggregation}' attribute. + * + * + * @see #getAggregation() + * @generated + * @ordered + */ + protected static final AggregationKind AGGREGATION_EDEFAULT = AggregationKind.NONE_LITERAL; + + /** + * The default value of the '{@link #isComposite() Is Composite}' attribute. + * + * + * @see #isComposite() + * @generated + * @ordered + */ + protected static final boolean IS_COMPOSITE_EDEFAULT = false; + + /** + * + * + * @generated + */ + protected PropertyImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getProperty(); + } + + /** + * + * + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PROPERTY__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.PROPERTY__TEMPLATE_PARAMETER, newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PROPERTY__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + ConnectableElementTemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter) + .eInverseAdd( + this, + UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + ConnectableElementTemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__TEMPLATE_PARAMETER, newTemplateParameter, + newTemplateParameter)); + + } + + /** + * + * + * @generated + */ + public boolean isSetTemplateParameter() { + return eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER) != null; + } + + /** + * + * + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * + * + * @generated + */ + public List getEnds() { + List end = (List) eVirtualGet(UMLPackage.PROPERTY__END); + if (end == null) { + eVirtualSet(UMLPackage.PROPERTY__END, + end = new EObjectWithInverseResolvingEList(ConnectorEnd.class, + this, UMLPackage.PROPERTY__END, + UMLPackage.CONNECTOR_END__ROLE)); + } + return end; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.PROPERTY__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.PROPERTY__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.PROPERTY__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getMultiplicityElement_UpperValue(), + UMLPackage.eINSTANCE + .getMultiplicityElement_LowerValue(), + UMLPackage.eINSTANCE.getDeploymentTarget_Deployment(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getProperty_DefaultValue(), + UMLPackage.eINSTANCE.getProperty_Qualifier()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getClientDependencies() { + List clientDependency = (List) eVirtualGet(UMLPackage.PROPERTY__CLIENT_DEPENDENCY); + if (clientDependency == null) { + eVirtualSet( + UMLPackage.PROPERTY__CLIENT_DEPENDENCY, + clientDependency = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + Dependency.class, this, + UMLPackage.PROPERTY__CLIENT_DEPENDENCY, + new int[]{UMLPackage.PROPERTY__DEPLOYMENT}, + UMLPackage.DEPENDENCY__CLIENT)); + } + return clientDependency; + } + + /** + * + * + * @generated + */ + public List getDeployments() { + List deployment = (List) eVirtualGet(UMLPackage.PROPERTY__DEPLOYMENT); + if (deployment == null) { + eVirtualSet(UMLPackage.PROPERTY__DEPLOYMENT, + deployment = new SubsetEObjectContainmentWithInverseEList( + Deployment.class, this, UMLPackage.PROPERTY__DEPLOYMENT, + new int[]{UMLPackage.PROPERTY__CLIENT_DEPENDENCY}, + UMLPackage.DEPLOYMENT__LOCATION)); + } + return deployment; + } + + /** + * + * + * @generated + */ + public Deployment createDeployment() { + Deployment newDeployment = UMLFactory.eINSTANCE.createDeployment(); + getDeployments().add(newDeployment); + return newDeployment; + } + + /** + * + * + * @generated + */ + public Deployment getDeployment(String name) { + for (Iterator i = getDeployments().iterator(); i.hasNext();) { + Deployment deployment = (Deployment) i.next(); + if (name.equals(deployment.getName())) { + return deployment; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getDeployedElements() { + // TODO: implement this method to return the 'Deployed Element' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public PackageableElement getDeployedElement(String name) { + for (Iterator i = getDeployedElements().iterator(); i.hasNext();) { + PackageableElement deployedElement = (PackageableElement) i.next(); + if (name.equals(deployedElement.getName())) { + return deployedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.PROPERTY__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.PROPERTY__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * + * + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public List getFeaturingClassifiers() { + List featuringClassifier = (List) eVirtualGet(UMLPackage.PROPERTY__FEATURING_CLASSIFIER); + if (featuringClassifier == null) { + eVirtualSet(UMLPackage.PROPERTY__FEATURING_CLASSIFIER, + featuringClassifier = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.PROPERTY__FEATURING_CLASSIFIER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getProperty_Datatype(), + UMLPackage.eINSTANCE.getProperty_Class_(), + UMLPackage.eINSTANCE.getProperty_OwningAssociation()})); + } + return featuringClassifier; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.PROPERTY__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.PROPERTY__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.PROPERTY__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getProperty_RedefinedProperty()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public Association getAssociation() { + Association association = (Association) eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION); + if (association != null && association.eIsProxy()) { + Association oldAssociation = association; + association = (Association) eResolveProxy((InternalEObject) association); + if (association != oldAssociation) { + eVirtualSet(UMLPackage.PROPERTY__ASSOCIATION, association); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PROPERTY__ASSOCIATION, oldAssociation, + association)); + } + } + return association; + } + + /** + * + * + * @generated + */ + public Association basicGetAssociation() { + return (Association) eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAssociation(Association newAssociation, + NotificationChain msgs) { + Object oldAssociation = eVirtualSet(UMLPackage.PROPERTY__ASSOCIATION, + newAssociation); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PROPERTY__ASSOCIATION, + oldAssociation == EVIRTUAL_NO_VALUE + ? null + : oldAssociation, newAssociation); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (getOwningAssociation() != null + && getOwningAssociation() != newAssociation) { + setOwningAssociation(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAssociation(Association newAssociation) { + Association association = (Association) eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION); + if (newAssociation != association) { + NotificationChain msgs = null; + if (association != null) + msgs = ((InternalEObject) association) + .eInverseRemove(this, UMLPackage.ASSOCIATION__MEMBER_END, + Association.class, msgs); + if (newAssociation != null) + msgs = ((InternalEObject) newAssociation) + .eInverseAdd(this, UMLPackage.ASSOCIATION__MEMBER_END, + Association.class, msgs); + msgs = basicSetAssociation(newAssociation, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__ASSOCIATION, newAssociation, + newAssociation)); + + } + + /** + * + * + * @generated + */ + public DataType getDatatype() { + if (eContainerFeatureID != UMLPackage.PROPERTY__DATATYPE) + return null; + return (DataType) eContainer; + } + + /** + * + * + * @generated + */ + public void setDatatype(DataType newDatatype) { + if (newDatatype != eContainer + || (eContainerFeatureID != UMLPackage.PROPERTY__DATATYPE && newDatatype != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newDatatype)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newDatatype != null) + msgs = ((InternalEObject) newDatatype) + .eInverseAdd(this, UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE, + DataType.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newDatatype, + UMLPackage.PROPERTY__DATATYPE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__DATATYPE, newDatatype, newDatatype)); + + } + + /** + * + * + * @generated + */ + public boolean isDerived() { + return (eFlags & IS_DERIVED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDerived(boolean newIsDerived) { + boolean oldIsDerived = (eFlags & IS_DERIVED_EFLAG) != 0; + if (newIsDerived) + eFlags |= IS_DERIVED_EFLAG; + else + eFlags &= ~IS_DERIVED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__IS_DERIVED, oldIsDerived, newIsDerived)); + + } + + /** + * + * + * @generated + */ + public boolean isDerivedUnion() { + return (eFlags & IS_DERIVED_UNION_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDerivedUnion(boolean newIsDerivedUnion) { + boolean oldIsDerivedUnion = (eFlags & IS_DERIVED_UNION_EFLAG) != 0; + if (newIsDerivedUnion) + eFlags |= IS_DERIVED_UNION_EFLAG; + else + eFlags &= ~IS_DERIVED_UNION_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__IS_DERIVED_UNION, oldIsDerivedUnion, + newIsDerivedUnion)); + + } + + /** + * + * + * @generated + */ + public String getDefault() { + // TODO: implement this method to return the 'Default' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setDefault(String newDefault) { + newDefault = newDefault == null + ? DEFAULT_EDEFAULT + : newDefault; + // TODO: implement this method to set the 'Default' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public AggregationKind getAggregation() { + AggregationKind aggregation = (AggregationKind) eVirtualGet(UMLPackage.PROPERTY__AGGREGATION); + return aggregation == null + ? AGGREGATION_EDEFAULT + : aggregation; + } + + /** + * + * + * @generated + */ + public void setAggregation(AggregationKind newAggregation) { + AggregationKind aggregation = newAggregation == null + ? AGGREGATION_EDEFAULT + : newAggregation; + Object oldAggregation = eVirtualSet(UMLPackage.PROPERTY__AGGREGATION, + aggregation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__AGGREGATION, + oldAggregation == EVIRTUAL_NO_VALUE + ? AGGREGATION_EDEFAULT + : oldAggregation, aggregation)); + + } + + /** + * + * + * @generated + */ + public boolean isComposite() { + // TODO: implement this method to return the 'Is Composite' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setIsComposite(boolean newIsComposite) { + // TODO: implement this method to set the 'Is Composite' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class getClass_() { + // TODO: implement this method to return the 'Class ' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getRedefinedProperties() { + List redefinedProperty = (List) eVirtualGet(UMLPackage.PROPERTY__REDEFINED_PROPERTY); + if (redefinedProperty == null) { + eVirtualSet(UMLPackage.PROPERTY__REDEFINED_PROPERTY, + redefinedProperty = new EObjectResolvingEList(Property.class, + this, UMLPackage.PROPERTY__REDEFINED_PROPERTY)); + } + return redefinedProperty; + } + + /** + * + * + * @generated + */ + public Property getRedefinedProperty(String name) { + for (Iterator i = getRedefinedProperties().iterator(); i.hasNext();) { + Property redefinedProperty = (Property) i.next(); + if (name.equals(redefinedProperty.getName())) { + return redefinedProperty; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Association getOwningAssociation() { + if (eContainerFeatureID != UMLPackage.PROPERTY__OWNING_ASSOCIATION) + return null; + return (Association) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningAssociation(Association newOwningAssociation) { + EObject oldOwningAssociation = eContainer; + if (newOwningAssociation != eContainer + || (eContainerFeatureID != UMLPackage.PROPERTY__OWNING_ASSOCIATION && newOwningAssociation != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newOwningAssociation)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningAssociation != null) + msgs = ((InternalEObject) newOwningAssociation).eInverseAdd( + this, UMLPackage.ASSOCIATION__OWNED_END, Association.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newOwningAssociation, + UMLPackage.PROPERTY__OWNING_ASSOCIATION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__OWNING_ASSOCIATION, newOwningAssociation, + newOwningAssociation)); + + if (newOwningAssociation != null + || oldOwningAssociation == eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION)) { + setAssociation(newOwningAssociation); + } + } + + /** + * + * + * @generated + */ + public ValueSpecification getDefaultValue() { + ValueSpecification defaultValue = (ValueSpecification) eVirtualGet(UMLPackage.PROPERTY__DEFAULT_VALUE); + return defaultValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetDefaultValue( + ValueSpecification newDefaultValue, NotificationChain msgs) { + Object oldDefaultValue = eVirtualSet( + UMLPackage.PROPERTY__DEFAULT_VALUE, newDefaultValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PROPERTY__DEFAULT_VALUE, + oldDefaultValue == EVIRTUAL_NO_VALUE + ? null + : oldDefaultValue, newDefaultValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setDefaultValue(ValueSpecification newDefaultValue) { + ValueSpecification defaultValue = (ValueSpecification) eVirtualGet(UMLPackage.PROPERTY__DEFAULT_VALUE); + if (newDefaultValue != defaultValue) { + NotificationChain msgs = null; + if (defaultValue != null) + msgs = ((InternalEObject) defaultValue) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.PROPERTY__DEFAULT_VALUE, null, msgs); + if (newDefaultValue != null) + msgs = ((InternalEObject) newDefaultValue) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.PROPERTY__DEFAULT_VALUE, null, msgs); + msgs = basicSetDefaultValue(newDefaultValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__DEFAULT_VALUE, newDefaultValue, + newDefaultValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createDefaultValue(EClass eClass) { + ValueSpecification newDefaultValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setDefaultValue(newDefaultValue); + return newDefaultValue; + } + + /** + * + * + * @generated + */ + public Property getOpposite() { + Property opposite = basicGetOpposite(); + return opposite == null + ? null + : (opposite.eIsProxy() + ? (Property) eResolveProxy((InternalEObject) opposite) + : opposite); + } + + /** + * + * + * @generated + */ + public Property basicGetOpposite() { + // TODO: implement this method to return the 'Opposite' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setOpposite(Property newOpposite) { + // TODO: implement this method to set the 'Opposite' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public List getSubsettedProperties() { + List subsettedProperty = (List) eVirtualGet(UMLPackage.PROPERTY__SUBSETTED_PROPERTY); + if (subsettedProperty == null) { + eVirtualSet(UMLPackage.PROPERTY__SUBSETTED_PROPERTY, + subsettedProperty = new EObjectResolvingEList(Property.class, + this, UMLPackage.PROPERTY__SUBSETTED_PROPERTY)); + } + return subsettedProperty; + } + + /** + * + * + * @generated + */ + public Property getSubsettedProperty(String name) { + for (Iterator i = getSubsettedProperties().iterator(); i.hasNext();) { + Property subsettedProperty = (Property) i.next(); + if (name.equals(subsettedProperty.getName())) { + return subsettedProperty; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getQualifiers() { + List qualifier = (List) eVirtualGet(UMLPackage.PROPERTY__QUALIFIER); + if (qualifier == null) { + eVirtualSet(UMLPackage.PROPERTY__QUALIFIER, + qualifier = new EObjectContainmentWithInverseEList( + Property.class, this, UMLPackage.PROPERTY__QUALIFIER, + UMLPackage.PROPERTY__ASSOCIATION_END)); + } + return qualifier; + } + + /** + * + * + * @generated + */ + public Property createQualifier(EClass eClass) { + Property newQualifier = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getQualifiers().add(newQualifier); + return newQualifier; + } + + /** + * + * + * @generated + */ + public Property createQualifier() { + Property newQualifier = UMLFactory.eINSTANCE.createProperty(); + getQualifiers().add(newQualifier); + return newQualifier; + } + + /** + * + * + * @generated + */ + public Property getQualifier(String name) { + for (Iterator i = getQualifiers().iterator(); i.hasNext();) { + Property qualifier = (Property) i.next(); + if (name.equals(qualifier.getName())) { + return qualifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Property getAssociationEnd() { + if (eContainerFeatureID != UMLPackage.PROPERTY__ASSOCIATION_END) + return null; + return (Property) eContainer; + } + + /** + * + * + * @generated + */ + public void setAssociationEnd(Property newAssociationEnd) { + if (newAssociationEnd != eContainer + || (eContainerFeatureID != UMLPackage.PROPERTY__ASSOCIATION_END && newAssociationEnd != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newAssociationEnd)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newAssociationEnd != null) + msgs = ((InternalEObject) newAssociationEnd).eInverseAdd(this, + UMLPackage.PROPERTY__QUALIFIER, Property.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newAssociationEnd, + UMLPackage.PROPERTY__ASSOCIATION_END, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__ASSOCIATION_END, newAssociationEnd, + newAssociationEnd)); + + } + + /** + * + * + * @generated + */ + public boolean isReadOnly() { + return (eFlags & IS_READ_ONLY_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReadOnly(boolean newIsReadOnly) { + boolean oldIsReadOnly = (eFlags & IS_READ_ONLY_EFLAG) != 0; + if (newIsReadOnly) + eFlags |= IS_READ_ONLY_EFLAG; + else + eFlags &= ~IS_READ_ONLY_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROPERTY__IS_READ_ONLY, oldIsReadOnly, newIsReadOnly)); + + } + + /** + * + * + * @generated + */ + public boolean isSetIsReadOnly() { + return ((eFlags & IS_READ_ONLY_EFLAG) != 0) != IS_READ_ONLY_EDEFAULT; + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * + * + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * + * + * @generated + */ + public boolean isTemplate() { + return TemplateableElementOperations.isTemplate(this); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfComposite(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateMultiplicityOfComposite(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSubsettingContext(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateSubsettingContext(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNavigablePropertyRedefinition( + DiagnosticChain diagnostics, Map context) { + return PropertyOperations.validateNavigablePropertyRedefinition(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSubsettingRules(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateSubsettingRules(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNavigableReadonly(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateNavigableReadonly(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateDerivedUnionIsDerived(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateDerivedUnionIsDerived(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDerivedUnionIsReadOnly(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateDerivedUnionIsReadOnly(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDeploymentTarget(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateDeploymentTarget(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateBindingToAttribute(DiagnosticChain diagnostics, + Map context) { + return PropertyOperations.validateBindingToAttribute(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean isAttribute(Property p) { + return PropertyOperations.isAttribute(this, p); + } + + /** + * + * + * @generated + */ + public List subsettingContext() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getProperty().getEOperations().get(12)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getProperty() + .getEOperations().get(12), result = PropertyOperations + .subsettingContext(this)); + } + return result; + } + return PropertyOperations.subsettingContext(this); + } + + /** + * + * + * @generated + */ + public boolean isNavigable() { + return PropertyOperations.isNavigable(this); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return PropertyOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROPERTY__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROPERTY__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PROPERTY__END : + return ((InternalEList) getEnds()).basicAdd(otherEnd, msgs); + case UMLPackage.PROPERTY__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.PROPERTY__DATATYPE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PROPERTY__DATATYPE, msgs); + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PROPERTY__OWNING_ASSOCIATION, msgs); + case UMLPackage.PROPERTY__ASSOCIATION : + Association association = (Association) eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION); + if (association != null) + msgs = ((InternalEObject) association).eInverseRemove( + this, UMLPackage.ASSOCIATION__MEMBER_END, + Association.class, msgs); + return basicSetAssociation((Association) otherEnd, msgs); + case UMLPackage.PROPERTY__QUALIFIER : + return ((InternalEList) getQualifiers()).basicAdd(otherEnd, + msgs); + case UMLPackage.PROPERTY__ASSOCIATION_END : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PROPERTY__ASSOCIATION_END, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROPERTY__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROPERTY__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROPERTY__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROPERTY__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PROPERTY__UPPER_VALUE : + return basicSetUpperValue(null, msgs); + case UMLPackage.PROPERTY__LOWER_VALUE : + return basicSetLowerValue(null, msgs); + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.PROPERTY__END : + return ((InternalEList) getEnds()).basicRemove(otherEnd, + msgs); + case UMLPackage.PROPERTY__DEPLOYMENT : + return ((InternalEList) getDeployments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.PROPERTY__DATATYPE : + return eBasicSetContainer(null, + UMLPackage.PROPERTY__DATATYPE, msgs); + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + return eBasicSetContainer(null, + UMLPackage.PROPERTY__OWNING_ASSOCIATION, msgs); + case UMLPackage.PROPERTY__ASSOCIATION : + return basicSetAssociation(null, msgs); + case UMLPackage.PROPERTY__DEFAULT_VALUE : + return basicSetDefaultValue(null, msgs); + case UMLPackage.PROPERTY__QUALIFIER : + return ((InternalEList) getQualifiers()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROPERTY__ASSOCIATION_END : + return eBasicSetContainer(null, + UMLPackage.PROPERTY__ASSOCIATION_END, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.PROPERTY__DATATYPE : + return eContainer.eInverseRemove(this, + UMLPackage.DATA_TYPE__OWNED_ATTRIBUTE, DataType.class, + msgs); + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + return eContainer.eInverseRemove(this, + UMLPackage.ASSOCIATION__OWNED_END, Association.class, + msgs); + case UMLPackage.PROPERTY__ASSOCIATION_END : + return eContainer.eInverseRemove(this, + UMLPackage.PROPERTY__QUALIFIER, Property.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROPERTY__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PROPERTY__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PROPERTY__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PROPERTY__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PROPERTY__NAME : + return getName(); + case UMLPackage.PROPERTY__VISIBILITY : + return getVisibility(); + case UMLPackage.PROPERTY__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PROPERTY__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PROPERTY__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PROPERTY__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PROPERTY__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.PROPERTY__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.PROPERTY__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.PROPERTY__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.PROPERTY__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__UPPER : + return new Integer(getUpper()); + case UMLPackage.PROPERTY__LOWER : + return new Integer(getLower()); + case UMLPackage.PROPERTY__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.PROPERTY__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.PROPERTY__IS_READ_ONLY : + return isReadOnly() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.PROPERTY__END : + return getEnds(); + case UMLPackage.PROPERTY__DEPLOYMENT : + return getDeployments(); + case UMLPackage.PROPERTY__DEPLOYED_ELEMENT : + return getDeployedElements(); + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.PROPERTY__DATATYPE : + return getDatatype(); + case UMLPackage.PROPERTY__IS_DERIVED : + return isDerived() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__IS_DERIVED_UNION : + return isDerivedUnion() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__DEFAULT : + return getDefault(); + case UMLPackage.PROPERTY__AGGREGATION : + return getAggregation(); + case UMLPackage.PROPERTY__IS_COMPOSITE : + return isComposite() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROPERTY__CLASS_ : + return getClass_(); + case UMLPackage.PROPERTY__REDEFINED_PROPERTY : + return getRedefinedProperties(); + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + return getOwningAssociation(); + case UMLPackage.PROPERTY__ASSOCIATION : + if (resolve) + return getAssociation(); + return basicGetAssociation(); + case UMLPackage.PROPERTY__DEFAULT_VALUE : + return getDefaultValue(); + case UMLPackage.PROPERTY__OPPOSITE : + if (resolve) + return getOpposite(); + return basicGetOpposite(); + case UMLPackage.PROPERTY__SUBSETTED_PROPERTY : + return getSubsettedProperties(); + case UMLPackage.PROPERTY__QUALIFIER : + return getQualifiers(); + case UMLPackage.PROPERTY__ASSOCIATION_END : + return getAssociationEnd(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROPERTY__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__NAME : + setName((String) newValue); + return; + case UMLPackage.PROPERTY__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PROPERTY__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PROPERTY__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__TYPE : + setType((Type) newValue); + return; + case UMLPackage.PROPERTY__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.PROPERTY__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.PROPERTY__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.PROPERTY__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + case UMLPackage.PROPERTY__IS_READ_ONLY : + setIsReadOnly(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PROPERTY__END : + getEnds().clear(); + getEnds().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__DEPLOYMENT : + getDeployments().clear(); + getDeployments().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.PROPERTY__DATATYPE : + setDatatype((DataType) newValue); + return; + case UMLPackage.PROPERTY__IS_DERIVED : + setIsDerived(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__IS_DERIVED_UNION : + setIsDerivedUnion(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__DEFAULT : + setDefault((String) newValue); + return; + case UMLPackage.PROPERTY__AGGREGATION : + setAggregation((AggregationKind) newValue); + return; + case UMLPackage.PROPERTY__IS_COMPOSITE : + setIsComposite(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROPERTY__REDEFINED_PROPERTY : + getRedefinedProperties().clear(); + getRedefinedProperties().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + setOwningAssociation((Association) newValue); + return; + case UMLPackage.PROPERTY__ASSOCIATION : + setAssociation((Association) newValue); + return; + case UMLPackage.PROPERTY__DEFAULT_VALUE : + setDefaultValue((ValueSpecification) newValue); + return; + case UMLPackage.PROPERTY__OPPOSITE : + setOpposite((Property) newValue); + return; + case UMLPackage.PROPERTY__SUBSETTED_PROPERTY : + getSubsettedProperties().clear(); + getSubsettedProperties().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__QUALIFIER : + getQualifiers().clear(); + getQualifiers().addAll((Collection) newValue); + return; + case UMLPackage.PROPERTY__ASSOCIATION_END : + setAssociationEnd((Property) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROPERTY__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PROPERTY__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PROPERTY__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PROPERTY__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PROPERTY__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PROPERTY__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PROPERTY__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.PROPERTY__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.PROPERTY__TYPE : + setType((Type) null); + return; + case UMLPackage.PROPERTY__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.PROPERTY__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.PROPERTY__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.PROPERTY__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.PROPERTY__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.PROPERTY__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + case UMLPackage.PROPERTY__IS_READ_ONLY : + setIsReadOnly(IS_READ_ONLY_EDEFAULT); + return; + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PROPERTY__END : + getEnds().clear(); + return; + case UMLPackage.PROPERTY__DEPLOYMENT : + getDeployments().clear(); + return; + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.PROPERTY__DATATYPE : + setDatatype((DataType) null); + return; + case UMLPackage.PROPERTY__IS_DERIVED : + setIsDerived(IS_DERIVED_EDEFAULT); + return; + case UMLPackage.PROPERTY__IS_DERIVED_UNION : + setIsDerivedUnion(IS_DERIVED_UNION_EDEFAULT); + return; + case UMLPackage.PROPERTY__DEFAULT : + setDefault(DEFAULT_EDEFAULT); + return; + case UMLPackage.PROPERTY__AGGREGATION : + setAggregation(AGGREGATION_EDEFAULT); + return; + case UMLPackage.PROPERTY__IS_COMPOSITE : + setIsComposite(IS_COMPOSITE_EDEFAULT); + return; + case UMLPackage.PROPERTY__REDEFINED_PROPERTY : + getRedefinedProperties().clear(); + return; + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + setOwningAssociation((Association) null); + return; + case UMLPackage.PROPERTY__ASSOCIATION : + setAssociation((Association) null); + return; + case UMLPackage.PROPERTY__DEFAULT_VALUE : + setDefaultValue((ValueSpecification) null); + return; + case UMLPackage.PROPERTY__OPPOSITE : + setOpposite((Property) null); + return; + case UMLPackage.PROPERTY__SUBSETTED_PROPERTY : + getSubsettedProperties().clear(); + return; + case UMLPackage.PROPERTY__QUALIFIER : + getQualifiers().clear(); + return; + case UMLPackage.PROPERTY__ASSOCIATION_END : + setAssociationEnd((Property) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROPERTY__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PROPERTY__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PROPERTY__OWNER : + return isSetOwner(); + case UMLPackage.PROPERTY__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PROPERTY__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PROPERTY__NAME : + String name = eVirtualIsSet(UMLPackage.PROPERTY__NAME) + ? (String) eVirtualGet(UMLPackage.PROPERTY__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PROPERTY__VISIBILITY : + return eVirtualIsSet(UMLPackage.PROPERTY__VISIBILITY) + && eVirtualGet(UMLPackage.PROPERTY__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PROPERTY__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PROPERTY__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PROPERTY__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PROPERTY__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PROPERTY__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PROPERTY__NAME_EXPRESSION) != null; + case UMLPackage.PROPERTY__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.PROPERTY__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.PROPERTY__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.PROPERTY__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.PROPERTY__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.PROPERTY__TYPE : + return eVirtualGet(UMLPackage.PROPERTY__TYPE) != null; + case UMLPackage.PROPERTY__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.PROPERTY__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.PROPERTY__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.PROPERTY__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.PROPERTY__UPPER_VALUE : + return eVirtualGet(UMLPackage.PROPERTY__UPPER_VALUE) != null; + case UMLPackage.PROPERTY__LOWER_VALUE : + return eVirtualGet(UMLPackage.PROPERTY__LOWER_VALUE) != null; + case UMLPackage.PROPERTY__IS_READ_ONLY : + return isReadOnly() != IS_READ_ONLY_EDEFAULT; + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER) != null; + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.PROPERTY__END : + List end = (List) eVirtualGet(UMLPackage.PROPERTY__END); + return end != null && !end.isEmpty(); + case UMLPackage.PROPERTY__DEPLOYMENT : + List deployment = (List) eVirtualGet(UMLPackage.PROPERTY__DEPLOYMENT); + return deployment != null && !deployment.isEmpty(); + case UMLPackage.PROPERTY__DEPLOYED_ELEMENT : + return !getDeployedElements().isEmpty(); + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.PROPERTY__DATATYPE : + return getDatatype() != null; + case UMLPackage.PROPERTY__IS_DERIVED : + return ((eFlags & IS_DERIVED_EFLAG) != 0) != IS_DERIVED_EDEFAULT; + case UMLPackage.PROPERTY__IS_DERIVED_UNION : + return ((eFlags & IS_DERIVED_UNION_EFLAG) != 0) != IS_DERIVED_UNION_EDEFAULT; + case UMLPackage.PROPERTY__DEFAULT : + return DEFAULT_EDEFAULT == null + ? getDefault() != null + : !DEFAULT_EDEFAULT.equals(getDefault()); + case UMLPackage.PROPERTY__AGGREGATION : + return eVirtualIsSet(UMLPackage.PROPERTY__AGGREGATION) + && eVirtualGet(UMLPackage.PROPERTY__AGGREGATION) != AGGREGATION_EDEFAULT; + case UMLPackage.PROPERTY__IS_COMPOSITE : + return isComposite() != IS_COMPOSITE_EDEFAULT; + case UMLPackage.PROPERTY__CLASS_ : + return getClass_() != null; + case UMLPackage.PROPERTY__REDEFINED_PROPERTY : + List redefinedProperty = (List) eVirtualGet(UMLPackage.PROPERTY__REDEFINED_PROPERTY); + return redefinedProperty != null + && !redefinedProperty.isEmpty(); + case UMLPackage.PROPERTY__OWNING_ASSOCIATION : + return getOwningAssociation() != null; + case UMLPackage.PROPERTY__ASSOCIATION : + return eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION) != null; + case UMLPackage.PROPERTY__DEFAULT_VALUE : + return eVirtualGet(UMLPackage.PROPERTY__DEFAULT_VALUE) != null; + case UMLPackage.PROPERTY__OPPOSITE : + return basicGetOpposite() != null; + case UMLPackage.PROPERTY__SUBSETTED_PROPERTY : + List subsettedProperty = (List) eVirtualGet(UMLPackage.PROPERTY__SUBSETTED_PROPERTY); + return subsettedProperty != null + && !subsettedProperty.isEmpty(); + case UMLPackage.PROPERTY__QUALIFIER : + List qualifier = (List) eVirtualGet(UMLPackage.PROPERTY__QUALIFIER); + return qualifier != null && !qualifier.isEmpty(); + case UMLPackage.PROPERTY__ASSOCIATION_END : + return getAssociationEnd() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PROPERTY__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == ConnectableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PROPERTY__END : + return UMLPackage.CONNECTABLE_ELEMENT__END; + default : + return -1; + } + } + if (baseClass == DeploymentTarget.class) { + switch (derivedFeatureID) { + case UMLPackage.PROPERTY__DEPLOYMENT : + return UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT; + case UMLPackage.PROPERTY__DEPLOYED_ELEMENT : + return UMLPackage.DEPLOYMENT_TARGET__DEPLOYED_ELEMENT; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PROPERTY__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.PROPERTY__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == ConnectableElement.class) { + switch (baseFeatureID) { + case UMLPackage.CONNECTABLE_ELEMENT__END : + return UMLPackage.PROPERTY__END; + default : + return -1; + } + } + if (baseClass == DeploymentTarget.class) { + switch (baseFeatureID) { + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYMENT : + return UMLPackage.PROPERTY__DEPLOYMENT; + case UMLPackage.DEPLOYMENT_TARGET__DEPLOYED_ELEMENT : + return UMLPackage.PROPERTY__DEPLOYED_ELEMENT; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.PROPERTY__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDerived: "); //$NON-NLS-1$ + result.append((eFlags & IS_DERIVED_EFLAG) != 0); + result.append(", isDerivedUnion: "); //$NON-NLS-1$ + result.append((eFlags & IS_DERIVED_UNION_EFLAG) != 0); + result.append(", aggregation: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PROPERTY__AGGREGATION) + ? eVirtualGet(UMLPackage.PROPERTY__AGGREGATION) + : AGGREGATION_EDEFAULT); + result.append(", isReadOnly: "); //$NON-NLS-1$ + result.append((eFlags & IS_READ_ONLY_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + Property associationEnd = getAssociationEnd(); + if (associationEnd != null) { + return associationEnd; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_AssociationEnd()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getDeploymentTarget_Deployment()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_DefaultValue()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_Qualifier()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + DataType datatype = getDatatype(); + if (datatype != null) { + return datatype; + } + org.eclipse.uml2.uml.Class class_ = getClass_(); + if (class_ != null) { + return class_; + } + Association owningAssociation = getOwningAssociation(); + if (owningAssociation != null) { + return owningAssociation; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getProperty_Datatype()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_OwningAssociation()); + } + + /** + * + * + * @generated + */ + public boolean isSetFeaturingClassifiers() { + return super.isSetFeaturingClassifiers() + || eIsSet(UMLPackage.eINSTANCE.getProperty_Datatype()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getProperty_OwningAssociation()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getProperty_RedefinedProperty()); + } + +} //PropertyImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java new file mode 100644 index 00000000..5ce96ec5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java @@ -0,0 +1,429 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolConformanceImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ProtocolConformance; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Protocol Conformance'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getGeneralMachine General Machine}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSpecificMachine Specific Machine}
  • + *
+ *

+ * + * @generated + */ +public class ProtocolConformanceImpl + extends DirectedRelationshipImpl + implements ProtocolConformance { + + /** + * + * + * @generated + */ + protected ProtocolConformanceImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getProtocolConformance(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.PROTOCOL_CONFORMANCE__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.PROTOCOL_CONFORMANCE__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getProtocolConformance_GeneralMachine()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.PROTOCOL_CONFORMANCE__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.PROTOCOL_CONFORMANCE__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getProtocolConformance_SpecificMachine()})); + } + return source; + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine getGeneralMachine() { + ProtocolStateMachine generalMachine = (ProtocolStateMachine) eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE); + if (generalMachine != null && generalMachine.eIsProxy()) { + ProtocolStateMachine oldGeneralMachine = generalMachine; + generalMachine = (ProtocolStateMachine) eResolveProxy((InternalEObject) generalMachine); + if (generalMachine != oldGeneralMachine) { + eVirtualSet(UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE, + generalMachine); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE, + oldGeneralMachine, generalMachine)); + } + } + return generalMachine; + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine basicGetGeneralMachine() { + return (ProtocolStateMachine) eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE); + } + + /** + * + * + * @generated + */ + public void setGeneralMachine(ProtocolStateMachine newGeneralMachine) { + ProtocolStateMachine generalMachine = newGeneralMachine; + Object oldGeneralMachine = eVirtualSet( + UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE, generalMachine); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE, + oldGeneralMachine == EVIRTUAL_NO_VALUE + ? null + : oldGeneralMachine, generalMachine)); + + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine getSpecificMachine() { + if (eContainerFeatureID != UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE) + return null; + return (ProtocolStateMachine) eContainer; + } + + /** + * + * + * @generated + */ + public void setSpecificMachine(ProtocolStateMachine newSpecificMachine) { + if (newSpecificMachine != eContainer + || (eContainerFeatureID != UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE && newSpecificMachine != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newSpecificMachine)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newSpecificMachine != null) + msgs = ((InternalEObject) newSpecificMachine).eInverseAdd(this, + UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE, + ProtocolStateMachine.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newSpecificMachine, + UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE, + newSpecificMachine, newSpecificMachine)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROTOCOL_CONFORMANCE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROTOCOL_CONFORMANCE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + return eBasicSetContainer(null, + UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + return eContainer.eInverseRemove(this, + UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE, + ProtocolStateMachine.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_CONFORMANCE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PROTOCOL_CONFORMANCE__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.PROTOCOL_CONFORMANCE__SOURCE : + return getSources(); + case UMLPackage.PROTOCOL_CONFORMANCE__TARGET : + return getTargets(); + case UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE : + if (resolve) + return getGeneralMachine(); + return basicGetGeneralMachine(); + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + return getSpecificMachine(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_CONFORMANCE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE : + setGeneralMachine((ProtocolStateMachine) newValue); + return; + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + setSpecificMachine((ProtocolStateMachine) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_CONFORMANCE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE : + setGeneralMachine((ProtocolStateMachine) null); + return; + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + setSpecificMachine((ProtocolStateMachine) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_CONFORMANCE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNER : + return isSetOwner(); + case UMLPackage.PROTOCOL_CONFORMANCE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PROTOCOL_CONFORMANCE__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.PROTOCOL_CONFORMANCE__SOURCE : + return isSetSources(); + case UMLPackage.PROTOCOL_CONFORMANCE__TARGET : + return isSetTargets(); + case UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE : + return eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE) != null; + case UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE : + return getSpecificMachine() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE + .getProtocolConformance_GeneralMachine()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE + .getProtocolConformance_SpecificMachine()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + ProtocolStateMachine specificMachine = getSpecificMachine(); + if (specificMachine != null) { + return specificMachine; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getProtocolConformance_SpecificMachine()); + } + +} //ProtocolConformanceImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java new file mode 100644 index 00000000..3e29e321 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java @@ -0,0 +1,1117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolStateMachineImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ProtocolConformance; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ProtocolStateMachineOperations; + +/** + * + * An implementation of the model object 'Protocol State Machine'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl#getConformances Conformance}
  • + *
+ *

+ * + * @generated + */ +public class ProtocolStateMachineImpl + extends StateMachineImpl + implements ProtocolStateMachine { + + /** + * + * + * @generated + */ + protected ProtocolStateMachineImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getProtocolStateMachine(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE.getClassifier_Generalization(), + UMLPackage.eINSTANCE.getClassifier_Substitution(), + UMLPackage.eINSTANCE.getClassifier_CollaborationUse(), + UMLPackage.eINSTANCE.getClassifier_OwnedSignature(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_InterfaceRealization(), + UMLPackage.eINSTANCE + .getProtocolStateMachine_Conformance()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getConformances() { + List conformance = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE); + if (conformance == null) { + eVirtualSet(UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE, + conformance = new EObjectContainmentWithInverseEList( + ProtocolConformance.class, this, + UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE, + UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE)); + } + return conformance; + } + + /** + * + * + * @generated + */ + public ProtocolConformance createConformance() { + ProtocolConformance newConformance = UMLFactory.eINSTANCE + .createProtocolConformance(); + getConformances().add(newConformance); + return newConformance; + } + + /** + * + * + * @generated + */ + public boolean validateProtocolTransitions(DiagnosticChain diagnostics, + Map context) { + return ProtocolStateMachineOperations.validateProtocolTransitions(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateEntryExitDo(DiagnosticChain diagnostics, Map context) { + return ProtocolStateMachineOperations.validateEntryExitDo(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDeepOrShallowHistory(DiagnosticChain diagnostics, + Map context) { + return ProtocolStateMachineOperations.validateDeepOrShallowHistory( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validatePortsConnected(DiagnosticChain diagnostics, + Map context) { + return ProtocolStateMachineOperations.validatePortsConnected(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClassifierContext(DiagnosticChain diagnostics, + Map context) { + return ProtocolStateMachineOperations.validateClassifierContext(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROTOCOL_STATE_MACHINE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION : + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION); + if (specification != null) + msgs = ((InternalEObject) specification) + .eInverseRemove(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + return basicSetSpecification((BehavioralFeature) otherEnd, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__REGION : + return ((InternalEList) getRegions()).basicAdd(otherEnd, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT : + return ((InternalEList) getConnectionPoints()).basicAdd( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE : + return ((InternalEList) getConformances()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROTOCOL_STATE_MACHINE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__REGION : + return ((InternalEList) getRegions()).basicRemove(otherEnd, + msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT : + return ((InternalEList) getConnectionPoints()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE : + return ((InternalEList) getConformances()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_STATE_MACHINE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME : + return getName(); + case UMLPackage.PROTOCOL_STATE_MACHINE__VISIBILITY : + return getVisibility(); + case UMLPackage.PROTOCOL_STATE_MACHINE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.PROTOCOL_STATE_MACHINE__MEMBER : + return getMembers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE : + return getPackage(); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.PROTOCOL_STATE_MACHINE__FEATURE : + return getFeatures(); + case UMLPackage.PROTOCOL_STATE_MACHINE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERAL : + return getGenerals(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE : + return getUseCases(); + case UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.PROTOCOL_STATE_MACHINE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.PROTOCOL_STATE_MACHINE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.PROTOCOL_STATE_MACHINE__PART : + return getParts(); + case UMLPackage.PROTOCOL_STATE_MACHINE__ROLE : + return getRoles(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.PROTOCOL_STATE_MACHINE__EXTENSION : + return getExtensions(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_REENTRANT : + return isReentrant() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_BEHAVIOR : + return getRedefinedBehaviors(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONTEXT : + if (resolve) + return getContext(); + return basicGetContext(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION : + if (resolve) + return getSpecification(); + return basicGetSpecification(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REGION : + return getRegions(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT : + return getConnectionPoints(); + case UMLPackage.PROTOCOL_STATE_MACHINE__EXTENDED_STATE_MACHINE : + if (resolve) + return getExtendedStateMachine(); + return basicGetExtendedStateMachine(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE : + return getConformances(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_STATE_MACHINE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME : + setName((String) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_REENTRANT : + setIsReentrant(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + getRedefinedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONTEXT : + setContext((BehavioredClassifier) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION : + setSpecification((BehavioralFeature) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REGION : + getRegions().clear(); + getRegions().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT : + getConnectionPoints().clear(); + getConnectionPoints().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__EXTENDED_STATE_MACHINE : + setExtendedStateMachine((StateMachine) newValue); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE : + getConformances().clear(); + getConformances().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_STATE_MACHINE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_REENTRANT : + setIsReentrant(IS_REENTRANT_EDEFAULT); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONTEXT : + setContext((BehavioredClassifier) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION : + setSpecification((BehavioralFeature) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__REGION : + getRegions().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT : + getConnectionPoints().clear(); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__EXTENDED_STATE_MACHINE : + setExtendedStateMachine((StateMachine) null); + return; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE : + getConformances().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_STATE_MACHINE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNER : + return isSetOwner(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME : + String name = eVirtualIsSet(UMLPackage.PROTOCOL_STATE_MACHINE__NAME) + ? (String) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PROTOCOL_STATE_MACHINE__VISIBILITY : + return eVirtualIsSet(UMLPackage.PROTOCOL_STATE_MACHINE__VISIBILITY) + && eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PROTOCOL_STATE_MACHINE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__NAME_EXPRESSION) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__MEMBER : + return isSetMembers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_PARAMETER) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__PACKAGE : + return getPackage() != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__FEATURE : + return isSetFeatures(); + case UMLPackage.PROTOCOL_STATE_MACHINE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.PROTOCOL_STATE_MACHINE__REPRESENTATION : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__REPRESENTATION) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_SIGNATURE) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__PART : + return !getParts().isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__ROLE : + return isSetRoles(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__IS_REENTRANT : + return ((eFlags & IS_REENTRANT_EFLAG) != 0) != IS_REENTRANT_EDEFAULT; + case UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_BEHAVIOR : + List redefinedBehavior = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__REDEFINED_BEHAVIOR); + return redefinedBehavior != null + && !redefinedBehavior.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONTEXT : + return basicGetContext() != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__SPECIFICATION) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__REGION : + List region = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__REGION); + return region != null && !region.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT : + List connectionPoint = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__CONNECTION_POINT); + return connectionPoint != null && !connectionPoint.isEmpty(); + case UMLPackage.PROTOCOL_STATE_MACHINE__EXTENDED_STATE_MACHINE : + return eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__EXTENDED_STATE_MACHINE) != null; + case UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE : + List conformance = (List) eVirtualGet(UMLPackage.PROTOCOL_STATE_MACHINE__CONFORMANCE); + return conformance != null && !conformance.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getProtocolStateMachine_Conformance()); + } + +} //ProtocolStateMachineImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java new file mode 100644 index 00000000..c66dd7af --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java @@ -0,0 +1,687 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolTransitionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.ProtocolTransition; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.TransitionKind; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ProtocolTransitionOperations; + +/** + * + * An implementation of the model object 'Protocol Transition'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getPostCondition Post Condition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getReferreds Referred}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getPreCondition Pre Condition}
  • + *
+ *

+ * + * @generated + */ +public class ProtocolTransitionImpl + extends TransitionImpl + implements ProtocolTransition { + + /** + * + * + * @generated + */ + protected ProtocolTransitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getProtocolTransition(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.PROTOCOL_TRANSITION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.PROTOCOL_TRANSITION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getTransition_Guard(), + UMLPackage.eINSTANCE.getTransition_Effect(), + UMLPackage.eINSTANCE + .getProtocolTransition_PostCondition()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Constraint getGuard() { + Constraint guard = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__GUARD); + return guard; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetGuard(Constraint newGuard, + NotificationChain msgs) { + Object oldGuard = eVirtualSet(UMLPackage.PROTOCOL_TRANSITION__GUARD, + newGuard); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.PROTOCOL_TRANSITION__GUARD, + oldGuard == EVIRTUAL_NO_VALUE + ? null + : oldGuard, newGuard); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION) != null + && eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION) != newGuard) { + setPreCondition(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setGuard(Constraint newGuard) { + Constraint guard = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__GUARD); + if (newGuard != guard) { + NotificationChain msgs = null; + if (guard != null) + msgs = ((InternalEObject) guard).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROTOCOL_TRANSITION__GUARD, null, msgs); + if (newGuard != null) + msgs = ((InternalEObject) newGuard).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROTOCOL_TRANSITION__GUARD, null, msgs); + msgs = basicSetGuard(newGuard, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROTOCOL_TRANSITION__GUARD, newGuard, newGuard)); + + } + + /** + * + * + * @generated + */ + public Constraint getPostCondition() { + Constraint postCondition = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION); + return postCondition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPostCondition(Constraint newPostCondition, + NotificationChain msgs) { + Object oldPostCondition = eVirtualSet( + UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION, newPostCondition); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION, + oldPostCondition == EVIRTUAL_NO_VALUE + ? null + : oldPostCondition, newPostCondition); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setPostCondition(Constraint newPostCondition) { + Constraint postCondition = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION); + if (newPostCondition != postCondition) { + NotificationChain msgs = null; + if (postCondition != null) + msgs = ((InternalEObject) postCondition).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION, null, + msgs); + if (newPostCondition != null) + msgs = ((InternalEObject) newPostCondition).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION, null, + msgs); + msgs = basicSetPostCondition(newPostCondition, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION, + newPostCondition, newPostCondition)); + + } + + /** + * + * + * @generated + */ + public Constraint createPostCondition(EClass eClass) { + Constraint newPostCondition = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setPostCondition(newPostCondition); + return newPostCondition; + } + + /** + * + * + * @generated + */ + public Constraint createPostCondition() { + Constraint newPostCondition = UMLFactory.eINSTANCE.createConstraint(); + setPostCondition(newPostCondition); + return newPostCondition; + } + + /** + * + * + * @generated + */ + public List getReferreds() { + // TODO: implement this method to return the 'Referred' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Operation getReferred(String name) { + for (Iterator i = getReferreds().iterator(); i.hasNext();) { + Operation referred = (Operation) i.next(); + if (name.equals(referred.getName())) { + return referred; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Constraint getPreCondition() { + Constraint preCondition = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION); + return preCondition; + } + + /** + * + * + * @generated + */ + public void setPreCondition(Constraint newPreCondition) { + Constraint preCondition = newPreCondition; + Object oldPreCondition = eVirtualSet( + UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION, preCondition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION, + oldPreCondition == EVIRTUAL_NO_VALUE + ? null + : oldPreCondition, preCondition)); + + if (newPreCondition != null + || oldPreCondition == eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__GUARD)) { + setGuard(newPreCondition); + } + } + + /** + * + * + * @generated + */ + public boolean validateBelongsToPsm(DiagnosticChain diagnostics, Map context) { + return ProtocolTransitionOperations.validateBelongsToPsm(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssociatedActions(DiagnosticChain diagnostics, + Map context) { + return ProtocolTransitionOperations.validateAssociatedActions(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRefersToOperation(DiagnosticChain diagnostics, + Map context) { + return ProtocolTransitionOperations.validateRefersToOperation(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean belongsToPSM() { + return ProtocolTransitionOperations.belongsToPSM(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PROTOCOL_TRANSITION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_TRANSITION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_TRANSITION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PROTOCOL_TRANSITION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PROTOCOL_TRANSITION__CONTAINER : + return eBasicSetContainer(null, + UMLPackage.PROTOCOL_TRANSITION__CONTAINER, msgs); + case UMLPackage.PROTOCOL_TRANSITION__TARGET : + return basicSetTarget(null, msgs); + case UMLPackage.PROTOCOL_TRANSITION__GUARD : + return basicSetGuard(null, msgs); + case UMLPackage.PROTOCOL_TRANSITION__EFFECT : + return basicSetEffect(null, msgs); + case UMLPackage.PROTOCOL_TRANSITION__TRIGGER : + return ((InternalEList) getTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.PROTOCOL_TRANSITION__SOURCE : + return basicSetSource(null, msgs); + case UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION : + return basicSetPostCondition(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_TRANSITION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PROTOCOL_TRANSITION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PROTOCOL_TRANSITION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PROTOCOL_TRANSITION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PROTOCOL_TRANSITION__NAME : + return getName(); + case UMLPackage.PROTOCOL_TRANSITION__VISIBILITY : + return getVisibility(); + case UMLPackage.PROTOCOL_TRANSITION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PROTOCOL_TRANSITION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PROTOCOL_TRANSITION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PROTOCOL_TRANSITION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PROTOCOL_TRANSITION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.PROTOCOL_TRANSITION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.PROTOCOL_TRANSITION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.PROTOCOL_TRANSITION__KIND : + return getKind(); + case UMLPackage.PROTOCOL_TRANSITION__CONTAINER : + return getContainer(); + case UMLPackage.PROTOCOL_TRANSITION__TARGET : + if (resolve) + return getTarget(); + return basicGetTarget(); + case UMLPackage.PROTOCOL_TRANSITION__REDEFINED_TRANSITION : + if (resolve) + return getRedefinedTransition(); + return basicGetRedefinedTransition(); + case UMLPackage.PROTOCOL_TRANSITION__GUARD : + return getGuard(); + case UMLPackage.PROTOCOL_TRANSITION__EFFECT : + return getEffect(); + case UMLPackage.PROTOCOL_TRANSITION__TRIGGER : + return getTriggers(); + case UMLPackage.PROTOCOL_TRANSITION__SOURCE : + if (resolve) + return getSource(); + return basicGetSource(); + case UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION : + return getPostCondition(); + case UMLPackage.PROTOCOL_TRANSITION__REFERRED : + return getReferreds(); + case UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION : + return getPreCondition(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_TRANSITION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__NAME : + setName((String) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.PROTOCOL_TRANSITION__KIND : + setKind((TransitionKind) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__CONTAINER : + setContainer((Region) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__TARGET : + setTarget((Vertex) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__REDEFINED_TRANSITION : + setRedefinedTransition((Transition) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__GUARD : + setGuard((Constraint) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__EFFECT : + setEffect((Behavior) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__TRIGGER : + getTriggers().clear(); + getTriggers().addAll((Collection) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__SOURCE : + setSource((Vertex) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION : + setPostCondition((Constraint) newValue); + return; + case UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION : + setPreCondition((Constraint) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_TRANSITION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PROTOCOL_TRANSITION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PROTOCOL_TRANSITION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PROTOCOL_TRANSITION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PROTOCOL_TRANSITION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PROTOCOL_TRANSITION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.PROTOCOL_TRANSITION__KIND : + setKind(KIND_EDEFAULT); + return; + case UMLPackage.PROTOCOL_TRANSITION__CONTAINER : + setContainer((Region) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__TARGET : + setTarget((Vertex) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__REDEFINED_TRANSITION : + setRedefinedTransition((Transition) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__GUARD : + setGuard((Constraint) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__EFFECT : + setEffect((Behavior) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__TRIGGER : + getTriggers().clear(); + return; + case UMLPackage.PROTOCOL_TRANSITION__SOURCE : + setSource((Vertex) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION : + setPostCondition((Constraint) null); + return; + case UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION : + setPreCondition((Constraint) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PROTOCOL_TRANSITION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PROTOCOL_TRANSITION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PROTOCOL_TRANSITION__OWNER : + return isSetOwner(); + case UMLPackage.PROTOCOL_TRANSITION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PROTOCOL_TRANSITION__NAME : + String name = eVirtualIsSet(UMLPackage.PROTOCOL_TRANSITION__NAME) + ? (String) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PROTOCOL_TRANSITION__VISIBILITY : + return eVirtualIsSet(UMLPackage.PROTOCOL_TRANSITION__VISIBILITY) + && eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PROTOCOL_TRANSITION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PROTOCOL_TRANSITION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PROTOCOL_TRANSITION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PROTOCOL_TRANSITION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__NAME_EXPRESSION) != null; + case UMLPackage.PROTOCOL_TRANSITION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.PROTOCOL_TRANSITION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.PROTOCOL_TRANSITION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.PROTOCOL_TRANSITION__KIND : + return eVirtualIsSet(UMLPackage.PROTOCOL_TRANSITION__KIND) + && eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__KIND) != KIND_EDEFAULT; + case UMLPackage.PROTOCOL_TRANSITION__CONTAINER : + return getContainer() != null; + case UMLPackage.PROTOCOL_TRANSITION__TARGET : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__TARGET) != null; + case UMLPackage.PROTOCOL_TRANSITION__REDEFINED_TRANSITION : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__REDEFINED_TRANSITION) != null; + case UMLPackage.PROTOCOL_TRANSITION__GUARD : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__GUARD) != null; + case UMLPackage.PROTOCOL_TRANSITION__EFFECT : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__EFFECT) != null; + case UMLPackage.PROTOCOL_TRANSITION__TRIGGER : + List trigger = (List) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__TRIGGER); + return trigger != null && !trigger.isEmpty(); + case UMLPackage.PROTOCOL_TRANSITION__SOURCE : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__SOURCE) != null; + case UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION) != null; + case UMLPackage.PROTOCOL_TRANSITION__REFERRED : + return !getReferreds().isEmpty(); + case UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION : + return eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getProtocolTransition_PostCondition()); + } + +} //ProtocolTransitionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java new file mode 100644 index 00000000..1d59b133 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java @@ -0,0 +1,679 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PseudostateImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.PseudostateKind; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.PseudostateOperations; + +/** + * + * An implementation of the model object 'Pseudostate'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl#getKind Kind}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl#getStateMachine State Machine}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl#getState State}
  • + *
+ *

+ * + * @generated + */ +public class PseudostateImpl + extends VertexImpl + implements Pseudostate { + + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final PseudostateKind KIND_EDEFAULT = PseudostateKind.INITIAL_LITERAL; + + /** + * + * + * @generated + */ + protected PseudostateImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getPseudostate(); + } + + /** + * + * + * @generated + */ + public PseudostateKind getKind() { + PseudostateKind kind = (PseudostateKind) eVirtualGet(UMLPackage.PSEUDOSTATE__KIND); + return kind == null + ? KIND_EDEFAULT + : kind; + } + + /** + * + * + * @generated + */ + public void setKind(PseudostateKind newKind) { + PseudostateKind kind = newKind == null + ? KIND_EDEFAULT + : newKind; + Object oldKind = eVirtualSet(UMLPackage.PSEUDOSTATE__KIND, kind); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PSEUDOSTATE__KIND, oldKind == EVIRTUAL_NO_VALUE + ? KIND_EDEFAULT + : oldKind, kind)); + + } + + /** + * + * + * @generated + */ + public StateMachine getStateMachine() { + if (eContainerFeatureID != UMLPackage.PSEUDOSTATE__STATE_MACHINE) + return null; + return (StateMachine) eContainer; + } + + /** + * + * + * @generated + */ + public void setStateMachine(StateMachine newStateMachine) { + if (newStateMachine != eContainer + || (eContainerFeatureID != UMLPackage.PSEUDOSTATE__STATE_MACHINE && newStateMachine != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newStateMachine)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newStateMachine != null) + msgs = ((InternalEObject) newStateMachine).eInverseAdd(this, + UMLPackage.STATE_MACHINE__CONNECTION_POINT, + StateMachine.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newStateMachine, + UMLPackage.PSEUDOSTATE__STATE_MACHINE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PSEUDOSTATE__STATE_MACHINE, newStateMachine, + newStateMachine)); + + } + + /** + * + * + * @generated + */ + public State getState() { + if (eContainerFeatureID != UMLPackage.PSEUDOSTATE__STATE) + return null; + return (State) eContainer; + } + + /** + * + * + * @generated + */ + public void setState(State newState) { + if (newState != eContainer + || (eContainerFeatureID != UMLPackage.PSEUDOSTATE__STATE && newState != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newState)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newState != null) + msgs = ((InternalEObject) newState).eInverseAdd(this, + UMLPackage.STATE__CONNECTION_POINT, State.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newState, + UMLPackage.PSEUDOSTATE__STATE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PSEUDOSTATE__STATE, newState, newState)); + + } + + /** + * + * + * @generated + */ + public boolean validateInitialVertex(DiagnosticChain diagnostics, + Map context) { + return PseudostateOperations.validateInitialVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateHistoryVertices(DiagnosticChain diagnostics, + Map context) { + return PseudostateOperations.validateHistoryVertices(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateJoinVertex(DiagnosticChain diagnostics, Map context) { + return PseudostateOperations.validateJoinVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTransitionsIncoming(DiagnosticChain diagnostics, + Map context) { + return PseudostateOperations.validateTransitionsIncoming(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateForkVertex(DiagnosticChain diagnostics, Map context) { + return PseudostateOperations.validateForkVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTransitionsOutgoing(DiagnosticChain diagnostics, + Map context) { + return PseudostateOperations.validateTransitionsOutgoing(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateJunctionVertex(DiagnosticChain diagnostics, + Map context) { + return PseudostateOperations.validateJunctionVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateChoiceVertex(DiagnosticChain diagnostics, Map context) { + return PseudostateOperations.validateChoiceVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateOutgoingFromInitial(DiagnosticChain diagnostics, + Map context) { + return PseudostateOperations.validateOutgoingFromInitial(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PSEUDOSTATE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.PSEUDOSTATE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.PSEUDOSTATE__CONTAINER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PSEUDOSTATE__CONTAINER, msgs); + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PSEUDOSTATE__STATE_MACHINE, msgs); + case UMLPackage.PSEUDOSTATE__STATE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.PSEUDOSTATE__STATE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.PSEUDOSTATE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PSEUDOSTATE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.PSEUDOSTATE__CONTAINER : + return eBasicSetContainer(null, + UMLPackage.PSEUDOSTATE__CONTAINER, msgs); + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + return eBasicSetContainer(null, + UMLPackage.PSEUDOSTATE__STATE_MACHINE, msgs); + case UMLPackage.PSEUDOSTATE__STATE : + return eBasicSetContainer(null, + UMLPackage.PSEUDOSTATE__STATE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.PSEUDOSTATE__CONTAINER : + return eContainer.eInverseRemove(this, + UMLPackage.REGION__SUBVERTEX, Region.class, msgs); + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + return eContainer.eInverseRemove(this, + UMLPackage.STATE_MACHINE__CONNECTION_POINT, + StateMachine.class, msgs); + case UMLPackage.PSEUDOSTATE__STATE : + return eContainer.eInverseRemove(this, + UMLPackage.STATE__CONNECTION_POINT, State.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PSEUDOSTATE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PSEUDOSTATE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PSEUDOSTATE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PSEUDOSTATE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PSEUDOSTATE__NAME : + return getName(); + case UMLPackage.PSEUDOSTATE__VISIBILITY : + return getVisibility(); + case UMLPackage.PSEUDOSTATE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PSEUDOSTATE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PSEUDOSTATE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.PSEUDOSTATE__OUTGOING : + return getOutgoings(); + case UMLPackage.PSEUDOSTATE__INCOMING : + return getIncomings(); + case UMLPackage.PSEUDOSTATE__CONTAINER : + return getContainer(); + case UMLPackage.PSEUDOSTATE__KIND : + return getKind(); + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + return getStateMachine(); + case UMLPackage.PSEUDOSTATE__STATE : + return getState(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PSEUDOSTATE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.PSEUDOSTATE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.PSEUDOSTATE__NAME : + setName((String) newValue); + return; + case UMLPackage.PSEUDOSTATE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.PSEUDOSTATE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PSEUDOSTATE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.PSEUDOSTATE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.PSEUDOSTATE__CONTAINER : + setContainer((Region) newValue); + return; + case UMLPackage.PSEUDOSTATE__KIND : + setKind((PseudostateKind) newValue); + return; + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + setStateMachine((StateMachine) newValue); + return; + case UMLPackage.PSEUDOSTATE__STATE : + setState((State) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PSEUDOSTATE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PSEUDOSTATE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PSEUDOSTATE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.PSEUDOSTATE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.PSEUDOSTATE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PSEUDOSTATE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.PSEUDOSTATE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.PSEUDOSTATE__CONTAINER : + setContainer((Region) null); + return; + case UMLPackage.PSEUDOSTATE__KIND : + setKind(KIND_EDEFAULT); + return; + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + setStateMachine((StateMachine) null); + return; + case UMLPackage.PSEUDOSTATE__STATE : + setState((State) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.PSEUDOSTATE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.PSEUDOSTATE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PSEUDOSTATE__OWNER : + return isSetOwner(); + case UMLPackage.PSEUDOSTATE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.PSEUDOSTATE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.PSEUDOSTATE__NAME : + String name = eVirtualIsSet(UMLPackage.PSEUDOSTATE__NAME) + ? (String) eVirtualGet(UMLPackage.PSEUDOSTATE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.PSEUDOSTATE__VISIBILITY : + return eVirtualIsSet(UMLPackage.PSEUDOSTATE__VISIBILITY) + && eVirtualGet(UMLPackage.PSEUDOSTATE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.PSEUDOSTATE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.PSEUDOSTATE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.PSEUDOSTATE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PSEUDOSTATE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.PSEUDOSTATE__NAME_EXPRESSION) != null; + case UMLPackage.PSEUDOSTATE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.PSEUDOSTATE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.PSEUDOSTATE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.PSEUDOSTATE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.PSEUDOSTATE__CONTAINER : + return getContainer() != null; + case UMLPackage.PSEUDOSTATE__KIND : + return eVirtualIsSet(UMLPackage.PSEUDOSTATE__KIND) + && eVirtualGet(UMLPackage.PSEUDOSTATE__KIND) != KIND_EDEFAULT; + case UMLPackage.PSEUDOSTATE__STATE_MACHINE : + return getStateMachine() != null; + case UMLPackage.PSEUDOSTATE__STATE : + return getState() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (kind: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.PSEUDOSTATE__KIND) + ? eVirtualGet(UMLPackage.PSEUDOSTATE__KIND) + : KIND_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + StateMachine stateMachine = getStateMachine(); + if (stateMachine != null) { + return stateMachine; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getPseudostate_StateMachine()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + State state = getState(); + if (state != null) { + return state; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getPseudostate_State()); + } + +} //PseudostateImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java new file mode 100644 index 00000000..21d8935a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java @@ -0,0 +1,300 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: QualifierValueImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.QualifierValue; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.QualifierValueOperations; + +/** + * + * An implementation of the model object 'Qualifier Value'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl#getQualifier Qualifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class QualifierValueImpl + extends ElementImpl + implements QualifierValue { + + /** + * + * + * @generated + */ + protected QualifierValueImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getQualifierValue(); + } + + /** + * + * + * @generated + */ + public Property getQualifier() { + Property qualifier = (Property) eVirtualGet(UMLPackage.QUALIFIER_VALUE__QUALIFIER); + if (qualifier != null && qualifier.eIsProxy()) { + Property oldQualifier = qualifier; + qualifier = (Property) eResolveProxy((InternalEObject) qualifier); + if (qualifier != oldQualifier) { + eVirtualSet(UMLPackage.QUALIFIER_VALUE__QUALIFIER, qualifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.QUALIFIER_VALUE__QUALIFIER, oldQualifier, + qualifier)); + } + } + return qualifier; + } + + /** + * + * + * @generated + */ + public Property basicGetQualifier() { + return (Property) eVirtualGet(UMLPackage.QUALIFIER_VALUE__QUALIFIER); + } + + /** + * + * + * @generated + */ + public void setQualifier(Property newQualifier) { + Property qualifier = newQualifier; + Object oldQualifier = eVirtualSet( + UMLPackage.QUALIFIER_VALUE__QUALIFIER, qualifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.QUALIFIER_VALUE__QUALIFIER, + oldQualifier == EVIRTUAL_NO_VALUE + ? null + : oldQualifier, qualifier)); + + } + + /** + * + * + * @generated + */ + public InputPin getValue() { + InputPin value = (InputPin) eVirtualGet(UMLPackage.QUALIFIER_VALUE__VALUE); + if (value != null && value.eIsProxy()) { + InputPin oldValue = value; + value = (InputPin) eResolveProxy((InternalEObject) value); + if (value != oldValue) { + eVirtualSet(UMLPackage.QUALIFIER_VALUE__VALUE, value); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.QUALIFIER_VALUE__VALUE, oldValue, value)); + } + } + return value; + } + + /** + * + * + * @generated + */ + public InputPin basicGetValue() { + return (InputPin) eVirtualGet(UMLPackage.QUALIFIER_VALUE__VALUE); + } + + /** + * + * + * @generated + */ + public void setValue(InputPin newValue) { + InputPin value = newValue; + Object oldValue = eVirtualSet(UMLPackage.QUALIFIER_VALUE__VALUE, value); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.QUALIFIER_VALUE__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, value)); + + } + + /** + * + * + * @generated + */ + public boolean validateQualifierAttribute(DiagnosticChain diagnostics, + Map context) { + return QualifierValueOperations.validateQualifierAttribute(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOfQualifier(DiagnosticChain diagnostics, + Map context) { + return QualifierValueOperations.validateTypeOfQualifier(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfQualifier(DiagnosticChain diagnostics, + Map context) { + return QualifierValueOperations.validateMultiplicityOfQualifier(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.QUALIFIER_VALUE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.QUALIFIER_VALUE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.QUALIFIER_VALUE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.QUALIFIER_VALUE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.QUALIFIER_VALUE__QUALIFIER : + if (resolve) + return getQualifier(); + return basicGetQualifier(); + case UMLPackage.QUALIFIER_VALUE__VALUE : + if (resolve) + return getValue(); + return basicGetValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.QUALIFIER_VALUE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.QUALIFIER_VALUE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.QUALIFIER_VALUE__QUALIFIER : + setQualifier((Property) newValue); + return; + case UMLPackage.QUALIFIER_VALUE__VALUE : + setValue((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.QUALIFIER_VALUE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.QUALIFIER_VALUE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.QUALIFIER_VALUE__QUALIFIER : + setQualifier((Property) null); + return; + case UMLPackage.QUALIFIER_VALUE__VALUE : + setValue((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.QUALIFIER_VALUE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.QUALIFIER_VALUE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.QUALIFIER_VALUE__OWNER : + return isSetOwner(); + case UMLPackage.QUALIFIER_VALUE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.QUALIFIER_VALUE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.QUALIFIER_VALUE__QUALIFIER : + return eVirtualGet(UMLPackage.QUALIFIER_VALUE__QUALIFIER) != null; + case UMLPackage.QUALIFIER_VALUE__VALUE : + return eVirtualGet(UMLPackage.QUALIFIER_VALUE__VALUE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //QualifierValueImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java new file mode 100644 index 00000000..fe6a6ffc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java @@ -0,0 +1,549 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RaiseExceptionActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.RaiseExceptionAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Raise Exception Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RaiseExceptionActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RaiseExceptionActionImpl#getException Exception}
  • + *
+ *

+ * + * @generated + */ +public class RaiseExceptionActionImpl + extends ActionImpl + implements RaiseExceptionAction { + + /** + * + * + * @generated + */ + protected RaiseExceptionActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRaiseExceptionAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.RAISE_EXCEPTION_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.RAISE_EXCEPTION_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getRaiseExceptionAction_Exception()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getException() { + InputPin exception = (InputPin) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION); + return exception; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetException(InputPin newException, + NotificationChain msgs) { + Object oldException = eVirtualSet( + UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION, newException); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION, + oldException == EVIRTUAL_NO_VALUE + ? null + : oldException, newException); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setException(InputPin newException) { + InputPin exception = (InputPin) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION); + if (newException != exception) { + NotificationChain msgs = null; + if (exception != null) + msgs = ((InternalEObject) exception).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION, null, + msgs); + if (newException != null) + msgs = ((InternalEObject) newException).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION, null, + msgs); + msgs = basicSetException(newException, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION, newException, + newException)); + + } + + /** + * + * + * @generated + */ + public InputPin createException(EClass eClass) { + InputPin newException = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setException(newException); + return newException; + } + + /** + * + * + * @generated + */ + public InputPin createException() { + InputPin newException = UMLFactory.eINSTANCE.createInputPin(); + setException(newException); + return newException; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.RAISE_EXCEPTION_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION : + return basicSetException(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RAISE_EXCEPTION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME : + return getName(); + case UMLPackage.RAISE_EXCEPTION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.RAISE_EXCEPTION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.RAISE_EXCEPTION_ACTION__INPUT : + return getInputs(); + case UMLPackage.RAISE_EXCEPTION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION : + return getException(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RAISE_EXCEPTION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION : + setException((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RAISE_EXCEPTION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION : + setException((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RAISE_EXCEPTION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.RAISE_EXCEPTION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.RAISE_EXCEPTION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.RAISE_EXCEPTION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.RAISE_EXCEPTION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.RAISE_EXCEPTION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.RAISE_EXCEPTION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.RAISE_EXCEPTION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.RAISE_EXCEPTION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION : + return eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getRaiseExceptionAction_Exception()); + } + +} //RaiseExceptionActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java new file mode 100644 index 00000000..03bef2c2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java @@ -0,0 +1,623 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadExtentActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadExtentAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadExtentActionOperations; + +/** + * + * An implementation of the model object 'Read Extent Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl#getClassifier Classifier}
  • + *
+ *

+ * + * @generated + */ +public class ReadExtentActionImpl + extends ActionImpl + implements ReadExtentAction { + + /** + * + * + * @generated + */ + protected ReadExtentActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadExtentAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_EXTENT_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_EXTENT_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadExtentAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet(UMLPackage.READ_EXTENT_ACTION__RESULT, + newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.READ_EXTENT_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_EXTENT_ACTION__RESULT, null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_EXTENT_ACTION__RESULT, null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_EXTENT_ACTION__RESULT, newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public Classifier getClassifier() { + Classifier classifier = (Classifier) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__CLASSIFIER); + if (classifier != null && classifier.eIsProxy()) { + Classifier oldClassifier = classifier; + classifier = (Classifier) eResolveProxy((InternalEObject) classifier); + if (classifier != oldClassifier) { + eVirtualSet(UMLPackage.READ_EXTENT_ACTION__CLASSIFIER, + classifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.READ_EXTENT_ACTION__CLASSIFIER, + oldClassifier, classifier)); + } + } + return classifier; + } + + /** + * + * + * @generated + */ + public Classifier basicGetClassifier() { + return (Classifier) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__CLASSIFIER); + } + + /** + * + * + * @generated + */ + public void setClassifier(Classifier newClassifier) { + Classifier classifier = newClassifier; + Object oldClassifier = eVirtualSet( + UMLPackage.READ_EXTENT_ACTION__CLASSIFIER, classifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_EXTENT_ACTION__CLASSIFIER, + oldClassifier == EVIRTUAL_NO_VALUE + ? null + : oldClassifier, classifier)); + + } + + /** + * + * + * @generated + */ + public boolean validateTypeIsClassifier(DiagnosticChain diagnostics, + Map context) { + return ReadExtentActionOperations.validateTypeIsClassifier(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context) { + return ReadExtentActionOperations.validateMultiplicityOfResult(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_EXTENT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_EXTENT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.READ_EXTENT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_EXTENT_ACTION__ACTIVITY, msgs); + case UMLPackage.READ_EXTENT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_EXTENT_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_EXTENT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_EXTENT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_EXTENT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_EXTENT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_EXTENT_ACTION__NAME : + return getName(); + case UMLPackage.READ_EXTENT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_EXTENT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_EXTENT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_EXTENT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_EXTENT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_EXTENT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_EXTENT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_EXTENT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_EXTENT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_EXTENT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_EXTENT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_EXTENT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_EXTENT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_EXTENT_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_EXTENT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_EXTENT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_EXTENT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_EXTENT_ACTION__RESULT : + return getResult(); + case UMLPackage.READ_EXTENT_ACTION__CLASSIFIER : + if (resolve) + return getClassifier(); + return basicGetClassifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_EXTENT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_EXTENT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + case UMLPackage.READ_EXTENT_ACTION__CLASSIFIER : + setClassifier((Classifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_EXTENT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_EXTENT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_EXTENT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_EXTENT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_EXTENT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_EXTENT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_EXTENT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_EXTENT_ACTION__RESULT : + setResult((OutputPin) null); + return; + case UMLPackage.READ_EXTENT_ACTION__CLASSIFIER : + setClassifier((Classifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_EXTENT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_EXTENT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_EXTENT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_EXTENT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_EXTENT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_EXTENT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_EXTENT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_EXTENT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_EXTENT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_EXTENT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_EXTENT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_EXTENT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_EXTENT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_EXTENT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_EXTENT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_EXTENT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_EXTENT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_EXTENT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_EXTENT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_EXTENT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_EXTENT_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_EXTENT_ACTION__RESULT) != null; + case UMLPackage.READ_EXTENT_ACTION__CLASSIFIER : + return eVirtualGet(UMLPackage.READ_EXTENT_ACTION__CLASSIFIER) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getReadExtentAction_Result()); + } + +} //ReadExtentActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java new file mode 100644 index 00000000..de64540c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java @@ -0,0 +1,861 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadIsClassifiedObjectActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadIsClassifiedObjectAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadIsClassifiedObjectActionOperations; + +/** + * + * An implementation of the model object 'Read Is Classified Object Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#isDirect Is Direct}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getClassifier Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getObject Object}
  • + *
+ *

+ * + * @generated + */ +public class ReadIsClassifiedObjectActionImpl + extends ActionImpl + implements ReadIsClassifiedObjectAction { + + /** + * The default value of the '{@link #isDirect() Is Direct}' attribute. + * + * + * @see #isDirect() + * @generated + * @ordered + */ + protected static final boolean IS_DIRECT_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isDirect() Is Direct}' attribute. + * + * + * @see #isDirect() + * @generated + * @ordered + */ + protected static final int IS_DIRECT_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected ReadIsClassifiedObjectActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadIsClassifiedObjectAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadIsClassifiedObjectAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadIsClassifiedObjectAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isDirect() { + return (eFlags & IS_DIRECT_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsDirect(boolean newIsDirect) { + boolean oldIsDirect = (eFlags & IS_DIRECT_EFLAG) != 0; + if (newIsDirect) + eFlags |= IS_DIRECT_EFLAG; + else + eFlags &= ~IS_DIRECT_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_DIRECT, + oldIsDirect, newIsDirect)); + + } + + /** + * + * + * @generated + */ + public Classifier getClassifier() { + Classifier classifier = (Classifier) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER); + if (classifier != null && classifier.eIsProxy()) { + Classifier oldClassifier = classifier; + classifier = (Classifier) eResolveProxy((InternalEObject) classifier); + if (classifier != oldClassifier) { + eVirtualSet( + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER, + classifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER, + oldClassifier, classifier)); + } + } + return classifier; + } + + /** + * + * + * @generated + */ + public Classifier basicGetClassifier() { + return (Classifier) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER); + } + + /** + * + * + * @generated + */ + public void setClassifier(Classifier newClassifier) { + Classifier classifier = newClassifier; + Object oldClassifier = eVirtualSet( + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER, classifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER, + oldClassifier == EVIRTUAL_NO_VALUE + ? null + : oldClassifier, classifier)); + + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet( + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT, newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT, + null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT, + null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT, newResult, + newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT, + null, msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT, + null, msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT, newObject, + newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfInput(DiagnosticChain diagnostics, + Map context) { + return ReadIsClassifiedObjectActionOperations + .validateMultiplicityOfInput(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNoType(DiagnosticChain diagnostics, Map context) { + return ReadIsClassifiedObjectActionOperations.validateNoType(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfOutput(DiagnosticChain diagnostics, + Map context) { + return ReadIsClassifiedObjectActionOperations + .validateMultiplicityOfOutput(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBooleanResult(DiagnosticChain diagnostics, + Map context) { + return ReadIsClassifiedObjectActionOperations.validateBooleanResult( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY, + msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT : + return basicSetResult(null, msgs); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT : + return basicSetObject(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME : + return getName(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_DIRECT : + return isDirect() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER : + if (resolve) + return getClassifier(); + return basicGetClassifier(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT : + return getResult(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT : + return getObject(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_DIRECT : + setIsDirect(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER : + setClassifier((Classifier) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_DIRECT : + setIsDirect(IS_DIRECT_EDEFAULT); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER : + setClassifier((Classifier) null); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT : + setResult((OutputPin) null); + return; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT : + setObject((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__IS_DIRECT : + return ((eFlags & IS_DIRECT_EFLAG) != 0) != IS_DIRECT_EDEFAULT; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER : + return eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER) != null; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT) != null; + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT : + return eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isDirect: "); //$NON-NLS-1$ + result.append((eFlags & IS_DIRECT_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE + .getReadIsClassifiedObjectAction_Result()); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getReadIsClassifiedObjectAction_Object()); + } + +} //ReadIsClassifiedObjectActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java new file mode 100644 index 00000000..67fb3faf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java @@ -0,0 +1,621 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadLinkAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadLinkActionOperations; + +/** + * + * An implementation of the model object 'Read Link Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class ReadLinkActionImpl + extends LinkActionImpl + implements ReadLinkAction { + + /** + * + * + * @generated + */ + protected ReadLinkActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadLinkAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_LINK_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_LINK_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadLinkAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet(UMLPackage.READ_LINK_ACTION__RESULT, + newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.READ_LINK_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_ACTION__RESULT, null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_ACTION__RESULT, null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_ACTION__RESULT, newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateOneOpenEnd(DiagnosticChain diagnostics, Map context) { + return ReadLinkActionOperations.validateOneOpenEnd(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeAndOrdering(DiagnosticChain diagnostics, + Map context) { + return ReadLinkActionOperations.validateTypeAndOrdering(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCompatibleMultiplicity(DiagnosticChain diagnostics, + Map context) { + return ReadLinkActionOperations.validateCompatibleMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNavigableOpenEnd(DiagnosticChain diagnostics, + Map context) { + return ReadLinkActionOperations.validateNavigableOpenEnd(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateVisibility(DiagnosticChain diagnostics, Map context) { + return ReadLinkActionOperations.validateVisibility(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_LINK_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_LINK_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.READ_LINK_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_LINK_ACTION__ACTIVITY, msgs); + case UMLPackage.READ_LINK_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__END_DATA : + return ((InternalEList) getEndData()).basicRemove(otherEnd, + msgs); + case UMLPackage.READ_LINK_ACTION__INPUT_VALUE : + return ((InternalEList) getInputValues()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_LINK_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_LINK_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_LINK_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_LINK_ACTION__NAME : + return getName(); + case UMLPackage.READ_LINK_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_LINK_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_LINK_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_LINK_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_LINK_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_LINK_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_LINK_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_LINK_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_LINK_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_LINK_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_LINK_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_LINK_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_LINK_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_LINK_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_LINK_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_LINK_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_LINK_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_LINK_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_LINK_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_LINK_ACTION__END_DATA : + return getEndData(); + case UMLPackage.READ_LINK_ACTION__INPUT_VALUE : + return getInputValues(); + case UMLPackage.READ_LINK_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_LINK_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_LINK_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_LINK_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_LINK_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_LINK_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_LINK_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__END_DATA : + getEndData().clear(); + getEndData().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__INPUT_VALUE : + getInputValues().clear(); + getInputValues().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_LINK_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_LINK_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_LINK_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_LINK_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_LINK_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_LINK_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_LINK_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_LINK_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_LINK_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_LINK_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_LINK_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_LINK_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_LINK_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_LINK_ACTION__END_DATA : + getEndData().clear(); + return; + case UMLPackage.READ_LINK_ACTION__INPUT_VALUE : + getInputValues().clear(); + return; + case UMLPackage.READ_LINK_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_LINK_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_LINK_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_LINK_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_LINK_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_LINK_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_LINK_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_LINK_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_LINK_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_LINK_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_LINK_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_LINK_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_LINK_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_LINK_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_LINK_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_LINK_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_LINK_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_LINK_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_LINK_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_LINK_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_LINK_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_LINK_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_LINK_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_LINK_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_LINK_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_LINK_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_LINK_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_LINK_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_LINK_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_LINK_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_LINK_ACTION__END_DATA : + List endData = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__END_DATA); + return endData != null && !endData.isEmpty(); + case UMLPackage.READ_LINK_ACTION__INPUT_VALUE : + List inputValue = (List) eVirtualGet(UMLPackage.READ_LINK_ACTION__INPUT_VALUE); + return inputValue != null && !inputValue.isEmpty(); + case UMLPackage.READ_LINK_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_LINK_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getReadLinkAction_Result()); + } + +} //ReadLinkActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java new file mode 100644 index 00000000..d1d55cf5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java @@ -0,0 +1,809 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkObjectEndActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ReadLinkObjectEndAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadLinkObjectEndActionOperations; + +/** + * + * An implementation of the model object 'Read Link Object End Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getObject Object}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getEnd End}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class ReadLinkObjectEndActionImpl + extends ActionImpl + implements ReadLinkObjectEndAction { + + /** + * + * + * @generated + */ + protected ReadLinkObjectEndActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadLinkObjectEndAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.READ_LINK_OBJECT_END_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.READ_LINK_OBJECT_END_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadLinkObjectEndAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadLinkObjectEndAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT, null, + msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT, null, + msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT, newObject, + newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public Property getEnd() { + Property end = (Property) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__END); + if (end != null && end.eIsProxy()) { + Property oldEnd = end; + end = (Property) eResolveProxy((InternalEObject) end); + if (end != oldEnd) { + eVirtualSet(UMLPackage.READ_LINK_OBJECT_END_ACTION__END, end); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.READ_LINK_OBJECT_END_ACTION__END, oldEnd, + end)); + } + } + return end; + } + + /** + * + * + * @generated + */ + public Property basicGetEnd() { + return (Property) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__END); + } + + /** + * + * + * @generated + */ + public void setEnd(Property newEnd) { + Property end = newEnd; + Object oldEnd = eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_ACTION__END, end); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_ACTION__END, + oldEnd == EVIRTUAL_NO_VALUE + ? null + : oldEnd, end)); + + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT, newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT, null, + msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT, null, + msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT, newResult, + newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateProperty(DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndActionOperations.validateProperty(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationOfAssociation( + DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndActionOperations + .validateAssociationOfAssociation(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateEndsOfAssociation(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndActionOperations.validateEndsOfAssociation( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOfObject(DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndActionOperations.validateTypeOfObject(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfObject(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndActionOperations.validateMultiplicityOfObject( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOfResult(DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndActionOperations.validateTypeOfResult(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndActionOperations.validateMultiplicityOfResult( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_LINK_OBJECT_END_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT : + return basicSetObject(null, msgs); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME : + return getName(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT : + return getObject(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__END : + if (resolve) + return getEnd(); + return basicGetEnd(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__END : + setEnd((Property) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__END : + setEnd((Property) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_LINK_OBJECT_END_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT) != null; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__END : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__END) != null; + case UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getReadLinkObjectEndAction_Object()); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getReadLinkObjectEndAction_Result()); + } + +} //ReadLinkObjectEndActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java new file mode 100644 index 00000000..0b652b1b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java @@ -0,0 +1,840 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkObjectEndQualifierActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadLinkObjectEndQualifierActionOperations; + +/** + * + * An implementation of the model object 'Read Link Object End Qualifier Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getObject Object}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getResult Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getQualifier Qualifier}
  • + *
+ *

+ * + * @generated + */ +public class ReadLinkObjectEndQualifierActionImpl + extends ActionImpl + implements ReadLinkObjectEndQualifierAction { + + /** + * + * + * @generated + */ + protected ReadLinkObjectEndQualifierActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadLinkObjectEndQualifierAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INPUT); + if (input == null) { + eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadLinkObjectEndQualifierAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTPUT); + if (output == null) { + eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadLinkObjectEndQualifierAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT, + null, msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject) + .eInverseAdd( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT, + null, msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT, + newObject, newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT, newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT, + null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult) + .eInverseAdd( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT, + null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT, + newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public Property getQualifier() { + Property qualifier = (Property) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER); + if (qualifier != null && qualifier.eIsProxy()) { + Property oldQualifier = qualifier; + qualifier = (Property) eResolveProxy((InternalEObject) qualifier); + if (qualifier != oldQualifier) { + eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER, + qualifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER, + oldQualifier, qualifier)); + } + } + return qualifier; + } + + /** + * + * + * @generated + */ + public Property basicGetQualifier() { + return (Property) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER); + } + + /** + * + * + * @generated + */ + public void setQualifier(Property newQualifier) { + Property qualifier = newQualifier; + Object oldQualifier = eVirtualSet( + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER, + qualifier); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER, + oldQualifier == EVIRTUAL_NO_VALUE + ? null + : oldQualifier, qualifier)); + + } + + /** + * + * + * @generated + */ + public boolean validateQualifierAttribute(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndQualifierActionOperations + .validateQualifierAttribute(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationOfAssociation( + DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndQualifierActionOperations + .validateAssociationOfAssociation(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateEndsOfAssociation(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndQualifierActionOperations + .validateEndsOfAssociation(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOfObject(DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndQualifierActionOperations.validateTypeOfObject( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfQualifier(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndQualifierActionOperations + .validateMultiplicityOfQualifier(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfObject(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndQualifierActionOperations + .validateMultiplicityOfObject(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return ReadLinkObjectEndQualifierActionOperations.validateSameType( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context) { + return ReadLinkObjectEndQualifierActionOperations + .validateMultiplicityOfResult(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY : + return eBasicSetContainer( + null, + UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY, + msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT : + return basicSetObject(null, msgs); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME : + return getName(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT : + return getObject(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT : + return getResult(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER : + if (resolve) + return getQualifier(); + return basicGetQualifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER : + setQualifier((Property) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT : + setResult((OutputPin) null); + return; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER : + setQualifier((Property) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT) != null; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT) != null; + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER : + return eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getReadLinkObjectEndQualifierAction_Object()); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE + .getReadLinkObjectEndQualifierAction_Result()); + } + +} //ReadLinkObjectEndQualifierActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java new file mode 100644 index 00000000..4d254739 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java @@ -0,0 +1,578 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadSelfActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadSelfAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadSelfActionOperations; + +/** + * + * An implementation of the model object 'Read Self Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class ReadSelfActionImpl + extends ActionImpl + implements ReadSelfAction { + + /** + * + * + * @generated + */ + protected ReadSelfActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadSelfAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_SELF_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_SELF_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadSelfAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_SELF_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet(UMLPackage.READ_SELF_ACTION__RESULT, + newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.READ_SELF_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_SELF_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_SELF_ACTION__RESULT, null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_SELF_ACTION__RESULT, null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_SELF_ACTION__RESULT, newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateContained(DiagnosticChain diagnostics, Map context) { + return ReadSelfActionOperations.validateContained(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotStatic(DiagnosticChain diagnostics, Map context) { + return ReadSelfActionOperations.validateNotStatic(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateType(DiagnosticChain diagnostics, Map context) { + return ReadSelfActionOperations + .validateType(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ReadSelfActionOperations.validateMultiplicity(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_SELF_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_SELF_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.READ_SELF_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_SELF_ACTION__ACTIVITY, msgs); + case UMLPackage.READ_SELF_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_SELF_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_SELF_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_SELF_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_SELF_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_SELF_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_SELF_ACTION__NAME : + return getName(); + case UMLPackage.READ_SELF_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_SELF_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_SELF_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_SELF_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_SELF_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_SELF_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_SELF_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_SELF_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_SELF_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_SELF_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_SELF_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_SELF_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_SELF_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_SELF_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_SELF_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_SELF_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_SELF_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_SELF_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_SELF_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_SELF_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_SELF_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_SELF_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_SELF_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_SELF_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_SELF_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_SELF_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_SELF_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_SELF_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_SELF_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_SELF_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_SELF_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_SELF_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_SELF_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_SELF_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_SELF_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_SELF_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_SELF_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_SELF_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_SELF_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_SELF_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_SELF_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_SELF_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_SELF_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_SELF_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_SELF_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_SELF_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_SELF_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_SELF_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_SELF_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_SELF_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_SELF_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_SELF_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_SELF_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_SELF_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_SELF_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_SELF_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_SELF_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_SELF_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_SELF_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_SELF_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_SELF_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_SELF_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_SELF_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_SELF_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_SELF_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_SELF_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_SELF_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_SELF_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_SELF_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_SELF_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_SELF_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_SELF_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_SELF_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_SELF_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_SELF_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_SELF_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getReadSelfAction_Result()); + } + +} //ReadSelfActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java new file mode 100644 index 00000000..3ba50da0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java @@ -0,0 +1,593 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadStructuralFeatureActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadStructuralFeatureAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadStructuralFeatureActionOperations; + +/** + * + * An implementation of the model object 'Read Structural Feature Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class ReadStructuralFeatureActionImpl + extends StructuralFeatureActionImpl + implements ReadStructuralFeatureAction { + + /** + * + * + * @generated + */ + protected ReadStructuralFeatureActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadStructuralFeatureAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadStructuralFeatureAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet( + UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT, newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT, + null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT, + null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT, newResult, + newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateTypeAndOrdering(DiagnosticChain diagnostics, + Map context) { + return ReadStructuralFeatureActionOperations.validateTypeAndOrdering( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ReadStructuralFeatureActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY, + msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OBJECT : + return basicSetObject(null, msgs); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME : + return getName(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OBJECT : + return getObject(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OBJECT : + return eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__OBJECT) != null; + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE + .getReadStructuralFeatureAction_Result()); + } + +} //ReadStructuralFeatureActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java new file mode 100644 index 00000000..0bd97f4b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java @@ -0,0 +1,574 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadVariableActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadVariableAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReadVariableActionOperations; + +/** + * + * An implementation of the model object 'Read Variable Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadVariableActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReadVariableActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class ReadVariableActionImpl + extends VariableActionImpl + implements ReadVariableAction { + + /** + * + * + * @generated + */ + protected ReadVariableActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReadVariableAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.READ_VARIABLE_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.READ_VARIABLE_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReadVariableAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet(UMLPackage.READ_VARIABLE_ACTION__RESULT, + newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.READ_VARIABLE_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_VARIABLE_ACTION__RESULT, null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.READ_VARIABLE_ACTION__RESULT, null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.READ_VARIABLE_ACTION__RESULT, newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateTypeAndOrdering(DiagnosticChain diagnostics, + Map context) { + return ReadVariableActionOperations.validateTypeAndOrdering(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCompatibleMultiplicity(DiagnosticChain diagnostics, + Map context) { + return ReadVariableActionOperations.validateCompatibleMultiplicity( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.READ_VARIABLE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.READ_VARIABLE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.READ_VARIABLE_ACTION__ACTIVITY, msgs); + case UMLPackage.READ_VARIABLE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.READ_VARIABLE_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_VARIABLE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.READ_VARIABLE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.READ_VARIABLE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.READ_VARIABLE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.READ_VARIABLE_ACTION__NAME : + return getName(); + case UMLPackage.READ_VARIABLE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.READ_VARIABLE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.READ_VARIABLE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.READ_VARIABLE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.READ_VARIABLE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.READ_VARIABLE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.READ_VARIABLE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.READ_VARIABLE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.READ_VARIABLE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.READ_VARIABLE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.READ_VARIABLE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.READ_VARIABLE_ACTION__INPUT : + return getInputs(); + case UMLPackage.READ_VARIABLE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.READ_VARIABLE_ACTION__VARIABLE : + if (resolve) + return getVariable(); + return basicGetVariable(); + case UMLPackage.READ_VARIABLE_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_VARIABLE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.READ_VARIABLE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__VARIABLE : + setVariable((Variable) newValue); + return; + case UMLPackage.READ_VARIABLE_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_VARIABLE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.READ_VARIABLE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.READ_VARIABLE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.READ_VARIABLE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.READ_VARIABLE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.READ_VARIABLE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.READ_VARIABLE_ACTION__VARIABLE : + setVariable((Variable) null); + return; + case UMLPackage.READ_VARIABLE_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.READ_VARIABLE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.READ_VARIABLE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.READ_VARIABLE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.READ_VARIABLE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.READ_VARIABLE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.READ_VARIABLE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.READ_VARIABLE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.READ_VARIABLE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.READ_VARIABLE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.READ_VARIABLE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.READ_VARIABLE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.READ_VARIABLE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.READ_VARIABLE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.READ_VARIABLE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.READ_VARIABLE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.READ_VARIABLE_ACTION__VARIABLE : + return eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__VARIABLE) != null; + case UMLPackage.READ_VARIABLE_ACTION__RESULT : + return eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getReadVariableAction_Result()); + } + +} //ReadVariableActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RealizationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RealizationImpl.java new file mode 100644 index 00000000..7d0400af --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RealizationImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RealizationImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.Realization; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Realization'. + * + *

+ *

+ * + * @generated + */ +public class RealizationImpl + extends AbstractionImpl + implements Realization { + + /** + * + * + * @generated + */ + protected RealizationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRealization(); + } + +} //RealizationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java new file mode 100644 index 00000000..7a9a1abc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java @@ -0,0 +1,432 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReceptionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.CallConcurrencyKind; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReceptionOperations; + +/** + * + * An implementation of the model object 'Reception'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReceptionImpl#getSignal Signal}
  • + *
+ *

+ * + * @generated + */ +public class ReceptionImpl + extends BehavioralFeatureImpl + implements Reception { + + /** + * + * + * @generated + */ + protected ReceptionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReception(); + } + + /** + * + * + * @generated + */ + public Signal getSignal() { + Signal signal = (Signal) eVirtualGet(UMLPackage.RECEPTION__SIGNAL); + if (signal != null && signal.eIsProxy()) { + Signal oldSignal = signal; + signal = (Signal) eResolveProxy((InternalEObject) signal); + if (signal != oldSignal) { + eVirtualSet(UMLPackage.RECEPTION__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.RECEPTION__SIGNAL, oldSignal, signal)); + } + } + return signal; + } + + /** + * + * + * @generated + */ + public Signal basicGetSignal() { + return (Signal) eVirtualGet(UMLPackage.RECEPTION__SIGNAL); + } + + /** + * + * + * @generated + */ + public void setSignal(Signal newSignal) { + Signal signal = newSignal; + Object oldSignal = eVirtualSet(UMLPackage.RECEPTION__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.RECEPTION__SIGNAL, oldSignal == EVIRTUAL_NO_VALUE + ? null + : oldSignal, signal)); + + } + + /** + * + * + * @generated + */ + public boolean validateNotQuery(DiagnosticChain diagnostics, Map context) { + return ReceptionOperations.validateNotQuery(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECEPTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.RECEPTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.RECEPTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.RECEPTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.RECEPTION__NAME : + return getName(); + case UMLPackage.RECEPTION__VISIBILITY : + return getVisibility(); + case UMLPackage.RECEPTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.RECEPTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.RECEPTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.RECEPTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.RECEPTION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.RECEPTION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.RECEPTION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.RECEPTION__MEMBER : + return getMembers(); + case UMLPackage.RECEPTION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.RECEPTION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.RECEPTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.RECEPTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.RECEPTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.RECEPTION__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.RECEPTION__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.RECEPTION__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.RECEPTION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.RECEPTION__METHOD : + return getMethods(); + case UMLPackage.RECEPTION__CONCURRENCY : + return getConcurrency(); + case UMLPackage.RECEPTION__RAISED_EXCEPTION : + return getRaisedExceptions(); + case UMLPackage.RECEPTION__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.RECEPTION__SIGNAL : + if (resolve) + return getSignal(); + return basicGetSignal(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECEPTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__NAME : + setName((String) newValue); + return; + case UMLPackage.RECEPTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.RECEPTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.RECEPTION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.RECEPTION__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.RECEPTION__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.RECEPTION__METHOD : + getMethods().clear(); + getMethods().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__CONCURRENCY : + setConcurrency((CallConcurrencyKind) newValue); + return; + case UMLPackage.RECEPTION__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + getRaisedExceptions().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.RECEPTION__SIGNAL : + setSignal((Signal) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECEPTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.RECEPTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.RECEPTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.RECEPTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.RECEPTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.RECEPTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.RECEPTION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.RECEPTION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.RECEPTION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.RECEPTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.RECEPTION__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.RECEPTION__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.RECEPTION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.RECEPTION__METHOD : + getMethods().clear(); + return; + case UMLPackage.RECEPTION__CONCURRENCY : + setConcurrency(CONCURRENCY_EDEFAULT); + return; + case UMLPackage.RECEPTION__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + return; + case UMLPackage.RECEPTION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.RECEPTION__SIGNAL : + setSignal((Signal) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECEPTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.RECEPTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.RECEPTION__OWNER : + return isSetOwner(); + case UMLPackage.RECEPTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.RECEPTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.RECEPTION__NAME : + String name = eVirtualIsSet(UMLPackage.RECEPTION__NAME) + ? (String) eVirtualGet(UMLPackage.RECEPTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.RECEPTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.RECEPTION__VISIBILITY) + && eVirtualGet(UMLPackage.RECEPTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.RECEPTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.RECEPTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.RECEPTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.RECEPTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.RECEPTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.RECEPTION__NAME_EXPRESSION) != null; + case UMLPackage.RECEPTION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.RECEPTION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.RECEPTION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.RECEPTION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.RECEPTION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.RECEPTION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.RECEPTION__MEMBER : + return isSetMembers(); + case UMLPackage.RECEPTION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.RECEPTION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.RECEPTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.RECEPTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.RECEPTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.RECEPTION__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.RECEPTION__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.RECEPTION__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.RECEPTION__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.RECEPTION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.RECEPTION__METHOD : + List method = (List) eVirtualGet(UMLPackage.RECEPTION__METHOD); + return method != null && !method.isEmpty(); + case UMLPackage.RECEPTION__CONCURRENCY : + return eVirtualIsSet(UMLPackage.RECEPTION__CONCURRENCY) + && eVirtualGet(UMLPackage.RECEPTION__CONCURRENCY) != CONCURRENCY_EDEFAULT; + case UMLPackage.RECEPTION__RAISED_EXCEPTION : + List raisedException = (List) eVirtualGet(UMLPackage.RECEPTION__RAISED_EXCEPTION); + return raisedException != null && !raisedException.isEmpty(); + case UMLPackage.RECEPTION__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.RECEPTION__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.RECEPTION__SIGNAL : + return eVirtualGet(UMLPackage.RECEPTION__SIGNAL) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ReceptionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java new file mode 100644 index 00000000..d90f7e7e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java @@ -0,0 +1,751 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReclassifyObjectActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.ReclassifyObjectAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReclassifyObjectActionOperations; + +/** + * + * An implementation of the model object 'Reclassify Object Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#isReplaceAll Is Replace All}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getOldClassifiers Old Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getNewClassifiers New Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getObject Object}
  • + *
+ *

+ * + * @generated + */ +public class ReclassifyObjectActionImpl + extends ActionImpl + implements ReclassifyObjectAction { + + /** + * The default value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final boolean IS_REPLACE_ALL_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReplaceAll() Is Replace All}' attribute. + * + * + * @see #isReplaceAll() + * @generated + * @ordered + */ + protected static final int IS_REPLACE_ALL_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected ReclassifyObjectActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReclassifyObjectAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.RECLASSIFY_OBJECT_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.RECLASSIFY_OBJECT_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getReclassifyObjectAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isReplaceAll() { + return (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReplaceAll(boolean newIsReplaceAll) { + boolean oldIsReplaceAll = (eFlags & IS_REPLACE_ALL_EFLAG) != 0; + if (newIsReplaceAll) + eFlags |= IS_REPLACE_ALL_EFLAG; + else + eFlags &= ~IS_REPLACE_ALL_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_REPLACE_ALL, + oldIsReplaceAll, newIsReplaceAll)); + + } + + /** + * + * + * @generated + */ + public List getOldClassifiers() { + List oldClassifier = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER); + if (oldClassifier == null) { + eVirtualSet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER, + oldClassifier = new EObjectResolvingEList(Classifier.class, + this, UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER)); + } + return oldClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getOldClassifier(String name) { + for (Iterator i = getOldClassifiers().iterator(); i.hasNext();) { + Classifier oldClassifier = (Classifier) i.next(); + if (name.equals(oldClassifier.getName())) { + return oldClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNewClassifiers() { + List newClassifier = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER); + if (newClassifier == null) { + eVirtualSet(UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER, + newClassifier = new EObjectResolvingEList(Classifier.class, + this, UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER)); + } + return newClassifier; + } + + /** + * + * + * @generated + */ + public Classifier getNewClassifier(String name) { + for (Iterator i = getNewClassifiers().iterator(); i.hasNext();) { + Classifier newClassifier = (Classifier) i.next(); + if (name.equals(newClassifier.getName())) { + return newClassifier; + } + } + return null; + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT, null, + msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT, null, + msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT, newObject, + newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public boolean validateClassifierNotAbstract(DiagnosticChain diagnostics, + Map context) { + return ReclassifyObjectActionOperations.validateClassifierNotAbstract( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ReclassifyObjectActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInputPin(DiagnosticChain diagnostics, Map context) { + return ReclassifyObjectActionOperations.validateInputPin(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.RECLASSIFY_OBJECT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT : + return basicSetObject(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECLASSIFY_OBJECT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME : + return getName(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INPUT : + return getInputs(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_REPLACE_ALL : + return isReplaceAll() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER : + return getOldClassifiers(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER : + return getNewClassifiers(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT : + return getObject(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECLASSIFY_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_REPLACE_ALL : + setIsReplaceAll(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER : + getOldClassifiers().clear(); + getOldClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER : + getNewClassifiers().clear(); + getNewClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECLASSIFY_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_REPLACE_ALL : + setIsReplaceAll(IS_REPLACE_ALL_EDEFAULT); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER : + getOldClassifiers().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER : + getNewClassifiers().clear(); + return; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT : + setObject((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RECLASSIFY_OBJECT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.RECLASSIFY_OBJECT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__IS_REPLACE_ALL : + return ((eFlags & IS_REPLACE_ALL_EFLAG) != 0) != IS_REPLACE_ALL_EDEFAULT; + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER : + List oldClassifier = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OLD_CLASSIFIER); + return oldClassifier != null && !oldClassifier.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER : + List newClassifier = (List) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__NEW_CLASSIFIER); + return newClassifier != null && !newClassifier.isEmpty(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT : + return eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isReplaceAll: "); //$NON-NLS-1$ + result.append((eFlags & IS_REPLACE_ALL_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getReclassifyObjectAction_Object()); + } + +} //ReclassifyObjectActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java new file mode 100644 index 00000000..838c88cc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java @@ -0,0 +1,427 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RedefinableElementImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.RedefinableElementOperations; + +/** + * + * An implementation of the model object 'Redefinable Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl#isLeaf Is Leaf}
  • + *
+ *

+ * + * @generated + */ +public abstract class RedefinableElementImpl + extends NamedElementImpl + implements RedefinableElement { + + /** + * The default value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final boolean IS_LEAF_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final int IS_LEAF_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected RedefinableElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRedefinableElement(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT, + new EStructuralFeature[]{})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public RedefinableElement getRedefinedElement(String name) { + for (Iterator i = getRedefinedElements().iterator(); i.hasNext();) { + RedefinableElement redefinedElement = (RedefinableElement) i.next(); + if (name.equals(redefinedElement.getName())) { + return redefinedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet(UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT, + new EStructuralFeature[]{})); + } + return redefinitionContext; + } + + /** + * + * + * @generated + */ + public Classifier getRedefinitionContext(String name) { + for (Iterator i = getRedefinitionContexts().iterator(); i.hasNext();) { + Classifier redefinitionContext = (Classifier) i.next(); + if (name.equals(redefinitionContext.getName())) { + return redefinitionContext; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isLeaf() { + return (eFlags & IS_LEAF_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsLeaf(boolean newIsLeaf) { + boolean oldIsLeaf = (eFlags & IS_LEAF_EFLAG) != 0; + if (newIsLeaf) + eFlags |= IS_LEAF_EFLAG; + else + eFlags &= ~IS_LEAF_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF, oldIsLeaf, newIsLeaf)); + + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionContextValid( + DiagnosticChain diagnostics, Map context) { + return RedefinableElementOperations.validateRedefinitionContextValid( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics, + Map context) { + return RedefinableElementOperations.validateRedefinitionConsistent( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid(RedefinableElement redefinable) { + return RedefinableElementOperations.isRedefinitionContextValid(this, + redefinable); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return RedefinableElementOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid() { + return RedefinableElementOperations.isRedefinitionContextValid(this); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.REDEFINABLE_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.REDEFINABLE_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.REDEFINABLE_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.REDEFINABLE_ELEMENT__NAME : + return getName(); + case UMLPackage.REDEFINABLE_ELEMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.REDEFINABLE_ELEMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.REDEFINABLE_ELEMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.REDEFINABLE_ELEMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_ELEMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.REDEFINABLE_ELEMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.REDEFINABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.REDEFINABLE_ELEMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.REDEFINABLE_ELEMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.REDEFINABLE_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.REDEFINABLE_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.REDEFINABLE_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.REDEFINABLE_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.REDEFINABLE_ELEMENT__NAME : + String name = eVirtualIsSet(UMLPackage.REDEFINABLE_ELEMENT__NAME) + ? (String) eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.REDEFINABLE_ELEMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.REDEFINABLE_ELEMENT__VISIBILITY) + && eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.REDEFINABLE_ELEMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.REDEFINABLE_ELEMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.REDEFINABLE_ELEMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.REDEFINABLE_ELEMENT__NAME_EXPRESSION) != null; + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isLeaf: "); //$NON-NLS-1$ + result.append((eFlags & IS_LEAF_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return false; + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return false; + } + +} //RedefinableElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java new file mode 100644 index 00000000..c73db18d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java @@ -0,0 +1,800 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RedefinableTemplateSignatureImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.RedefinableTemplateSignatureOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateSignatureOperations; + +/** + * + * An implementation of the model object 'Redefinable Template Signature'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getParameters Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getTemplate Template}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getOwnedParameters Owned Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getExtendedSignatures Extended Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getInheritedParameters Inherited Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getClassifier Classifier}
  • + *
+ *

+ * + * @generated + */ +public class RedefinableTemplateSignatureImpl + extends RedefinableElementImpl + implements RedefinableTemplateSignature { + + /** + * + * + * @generated + */ + protected RedefinableTemplateSignatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRedefinableTemplateSignature(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet( + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getTemplateSignature_OwnedParameter()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getParameters() { + List parameter = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER); + if (parameter == null) { + eVirtualSet( + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER, + parameter = new SupersetEObjectResolvingEList( + TemplateParameter.class, + this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER, + new int[]{UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER})); + } + return parameter; + } + + /** + * + * + * @generated + */ + public TemplateableElement getTemplate() { + if (eContainerFeatureID != UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE) + return null; + return (TemplateableElement) eContainer; + } + + /** + * + * + * @generated + */ + public void setTemplate(TemplateableElement newTemplate) { + if (newTemplate != eContainer + || (eContainerFeatureID != UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE && newTemplate != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newTemplate)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newTemplate != null) + msgs = ((InternalEObject) newTemplate).eInverseAdd(this, + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + TemplateableElement.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newTemplate, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE, + newTemplate, newTemplate)); + + } + + /** + * + * + * @generated + */ + public List getOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER); + if (ownedParameter == null) { + eVirtualSet( + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER, + ownedParameter = new SubsetEObjectContainmentWithInverseEList( + TemplateParameter.class, + this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER, + new int[]{UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER}, + UMLPackage.TEMPLATE_PARAMETER__SIGNATURE)); + } + return ownedParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter createOwnedParameter(EClass eClass) { + TemplateParameter newOwnedParameter = (TemplateParameter) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter createOwnedParameter() { + TemplateParameter newOwnedParameter = UMLFactory.eINSTANCE + .createTemplateParameter(); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet( + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, + this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getRedefinableTemplateSignature_ExtendedSignature()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet( + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, + this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINITION_CONTEXT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getRedefinableTemplateSignature_Classifier()})); + } + return redefinitionContext; + } + + /** + * + * + * @generated + */ + public List getExtendedSignatures() { + List extendedSignature = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE); + if (extendedSignature == null) { + eVirtualSet( + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE, + extendedSignature = new EObjectResolvingEList( + RedefinableTemplateSignature.class, + this, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE)); + } + return extendedSignature; + } + + /** + * + * + * @generated + */ + public RedefinableTemplateSignature getExtendedSignature(String name) { + for (Iterator i = getExtendedSignatures().iterator(); i.hasNext();) { + RedefinableTemplateSignature extendedSignature = (RedefinableTemplateSignature) i + .next(); + if (name.equals(extendedSignature.getName())) { + return extendedSignature; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getInheritedParameters() { + // TODO: implement this method to return the 'Inherited Parameter' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Classifier getClassifier() { + if (eContainerFeatureID != UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER) + return null; + return (Classifier) eContainer; + } + + /** + * + * + * @generated + */ + public void setClassifier(Classifier newClassifier) { + if (newClassifier != eContainer + || (eContainerFeatureID != UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER && newClassifier != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newClassifier)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newClassifier != null) + msgs = ((InternalEObject) newClassifier).eInverseAdd(this, + UMLPackage.CLASSIFIER__OWNED_SIGNATURE, Classifier.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newClassifier, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER, + newClassifier, newClassifier)); + + } + + /** + * + * + * @generated + */ + public boolean validateOwnElements(DiagnosticChain diagnostics, Map context) { + return TemplateSignatureOperations.validateOwnElements(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInheritedParameters(DiagnosticChain diagnostics, + Map context) { + return RedefinableTemplateSignatureOperations + .validateInheritedParameters(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return RedefinableTemplateSignatureOperations.isConsistentWith(this, + redefinee); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE, + msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicAdd( + otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + return eBasicSetContainer(null, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE, + msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + return eBasicSetContainer(null, + UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + TemplateableElement.class, msgs); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + return eContainer.eInverseRemove(this, + UMLPackage.CLASSIFIER__OWNED_SIGNATURE, + Classifier.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME : + return getName(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY : + return getVisibility(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER : + return getParameters(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + return getTemplate(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE : + return getExtendedSignatures(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETER : + return getInheritedParameters(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + return getClassifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME : + setName((String) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER : + getParameters().clear(); + getParameters().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + setTemplate((TemplateableElement) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE : + getExtendedSignatures().clear(); + getExtendedSignatures().addAll((Collection) newValue); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + setClassifier((Classifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER : + getParameters().clear(); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + setTemplate((TemplateableElement) null); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE : + getExtendedSignatures().clear(); + return; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + setClassifier((Classifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNER : + return isSetOwner(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME : + String name = eVirtualIsSet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME) + ? (String) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY : + return eVirtualIsSet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY) + && eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__NAME_EXPRESSION) != null; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER : + List parameter = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER); + return parameter != null && !parameter.isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + return getTemplate() != null; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE : + List extendedSignature = (List) eVirtualGet(UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__EXTENDED_SIGNATURE); + return extendedSignature != null + && !extendedSignature.isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETER : + return !getInheritedParameters().isEmpty(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER : + return getClassifier() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == TemplateSignature.class) { + switch (derivedFeatureID) { + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER : + return UMLPackage.TEMPLATE_SIGNATURE__PARAMETER; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE : + return UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE; + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == TemplateSignature.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATE_SIGNATURE__PARAMETER : + return UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__PARAMETER; + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + return UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE; + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__OWNED_PARAMETER; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateableElement template = getTemplate(); + if (template != null) { + return template; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getTemplateSignature_Template()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateSignature_OwnedParameter()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE + .getRedefinableTemplateSignature_ExtendedSignature()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return super.isSetRedefinitionContexts() + || eIsSet(UMLPackage.eINSTANCE + .getRedefinableTemplateSignature_Classifier()); + } + +} //RedefinableTemplateSignatureImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java new file mode 100644 index 00000000..d56c12a1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java @@ -0,0 +1,1052 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RegionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.RedefinableElementOperations; +import org.eclipse.uml2.uml.internal.operations.RegionOperations; + +/** + * + * An implementation of the model object 'Region'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#isLeaf Is Leaf}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getSubvertices Subvertex}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getTransitions Transition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getState State}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getExtendedRegion Extended Region}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getStateMachine State Machine}
  • + *
+ *

+ * + * @generated + */ +public class RegionImpl + extends NamespaceImpl + implements Region { + + /** + * The default value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final boolean IS_LEAF_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final int IS_LEAF_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected RegionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRegion(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.REGION__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.REGION__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.REGION__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getRegion_ExtendedRegion()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public RedefinableElement getRedefinedElement(String name) { + for (Iterator i = getRedefinedElements().iterator(); i.hasNext();) { + RedefinableElement redefinedElement = (RedefinableElement) i.next(); + if (name.equals(redefinedElement.getName())) { + return redefinedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + // TODO: implement this method to return the 'Redefinition Context' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Classifier getRedefinitionContext(String name) { + for (Iterator i = getRedefinitionContexts().iterator(); i.hasNext();) { + Classifier redefinitionContext = (Classifier) i.next(); + if (name.equals(redefinitionContext.getName())) { + return redefinitionContext; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return !getRedefinitionContexts().isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean isLeaf() { + return (eFlags & IS_LEAF_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsLeaf(boolean newIsLeaf) { + boolean oldIsLeaf = (eFlags & IS_LEAF_EFLAG) != 0; + if (newIsLeaf) + eFlags |= IS_LEAF_EFLAG; + else + eFlags &= ~IS_LEAF_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REGION__IS_LEAF, oldIsLeaf, newIsLeaf)); + + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.REGION__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.REGION__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.REGION__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getRegion_Subvertex(), + UMLPackage.eINSTANCE.getRegion_Transition()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getSubvertices() { + List subvertex = (List) eVirtualGet(UMLPackage.REGION__SUBVERTEX); + if (subvertex == null) { + eVirtualSet(UMLPackage.REGION__SUBVERTEX, + subvertex = new EObjectContainmentWithInverseEList( + Vertex.class, this, UMLPackage.REGION__SUBVERTEX, + UMLPackage.VERTEX__CONTAINER)); + } + return subvertex; + } + + /** + * + * + * @generated + */ + public Vertex createSubvertex(EClass eClass) { + Vertex newSubvertex = (Vertex) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getSubvertices().add(newSubvertex); + return newSubvertex; + } + + /** + * + * + * @generated + */ + public Vertex getSubvertex(String name) { + for (Iterator i = getSubvertices().iterator(); i.hasNext();) { + Vertex subvertex = (Vertex) i.next(); + if (name.equals(subvertex.getName())) { + return subvertex; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getTransitions() { + List transition = (List) eVirtualGet(UMLPackage.REGION__TRANSITION); + if (transition == null) { + eVirtualSet(UMLPackage.REGION__TRANSITION, + transition = new EObjectContainmentWithInverseEList( + Transition.class, this, UMLPackage.REGION__TRANSITION, + UMLPackage.TRANSITION__CONTAINER)); + } + return transition; + } + + /** + * + * + * @generated + */ + public Transition createTransition(EClass eClass) { + Transition newTransition = (Transition) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getTransitions().add(newTransition); + return newTransition; + } + + /** + * + * + * @generated + */ + public Transition createTransition() { + Transition newTransition = UMLFactory.eINSTANCE.createTransition(); + getTransitions().add(newTransition); + return newTransition; + } + + /** + * + * + * @generated + */ + public Transition getTransition(String name) { + for (Iterator i = getTransitions().iterator(); i.hasNext();) { + Transition transition = (Transition) i.next(); + if (name.equals(transition.getName())) { + return transition; + } + } + return null; + } + + /** + * + * + * @generated + */ + public State getState() { + if (eContainerFeatureID != UMLPackage.REGION__STATE) + return null; + return (State) eContainer; + } + + /** + * + * + * @generated + */ + public void setState(State newState) { + if (newState != eContainer + || (eContainerFeatureID != UMLPackage.REGION__STATE && newState != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newState)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newState != null) + msgs = ((InternalEObject) newState).eInverseAdd(this, + UMLPackage.STATE__REGION, State.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newState, + UMLPackage.REGION__STATE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REGION__STATE, newState, newState)); + + } + + /** + * + * + * @generated + */ + public Region getExtendedRegion() { + Region extendedRegion = (Region) eVirtualGet(UMLPackage.REGION__EXTENDED_REGION); + if (extendedRegion != null && extendedRegion.eIsProxy()) { + Region oldExtendedRegion = extendedRegion; + extendedRegion = (Region) eResolveProxy((InternalEObject) extendedRegion); + if (extendedRegion != oldExtendedRegion) { + eVirtualSet(UMLPackage.REGION__EXTENDED_REGION, extendedRegion); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.REGION__EXTENDED_REGION, oldExtendedRegion, + extendedRegion)); + } + } + return extendedRegion; + } + + /** + * + * + * @generated + */ + public Region basicGetExtendedRegion() { + return (Region) eVirtualGet(UMLPackage.REGION__EXTENDED_REGION); + } + + /** + * + * + * @generated + */ + public void setExtendedRegion(Region newExtendedRegion) { + Region extendedRegion = newExtendedRegion; + Object oldExtendedRegion = eVirtualSet( + UMLPackage.REGION__EXTENDED_REGION, extendedRegion); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REGION__EXTENDED_REGION, + oldExtendedRegion == EVIRTUAL_NO_VALUE + ? null + : oldExtendedRegion, extendedRegion)); + + } + + /** + * + * + * @generated + */ + public StateMachine getStateMachine() { + if (eContainerFeatureID != UMLPackage.REGION__STATE_MACHINE) + return null; + return (StateMachine) eContainer; + } + + /** + * + * + * @generated + */ + public void setStateMachine(StateMachine newStateMachine) { + if (newStateMachine != eContainer + || (eContainerFeatureID != UMLPackage.REGION__STATE_MACHINE && newStateMachine != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newStateMachine)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newStateMachine != null) + msgs = ((InternalEObject) newStateMachine).eInverseAdd(this, + UMLPackage.STATE_MACHINE__REGION, StateMachine.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newStateMachine, + UMLPackage.REGION__STATE_MACHINE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REGION__STATE_MACHINE, newStateMachine, + newStateMachine)); + + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionContextValid( + DiagnosticChain diagnostics, Map context) { + return RedefinableElementOperations.validateRedefinitionContextValid( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics, + Map context) { + return RedefinableElementOperations.validateRedefinitionConsistent( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid(RedefinableElement redefinable) { + return RedefinableElementOperations.isRedefinitionContextValid(this, + redefinable); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return RegionOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid() { + return RegionOperations.isRedefinitionContextValid(this); + } + + /** + * + * + * @generated + */ + public boolean validateInitialVertex(DiagnosticChain diagnostics, + Map context) { + return RegionOperations.validateInitialVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateDeepHistoryVertex(DiagnosticChain diagnostics, + Map context) { + return RegionOperations.validateDeepHistoryVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateShallowHistoryVertex(DiagnosticChain diagnostics, + Map context) { + return RegionOperations.validateShallowHistoryVertex(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateOwned(DiagnosticChain diagnostics, Map context) { + return RegionOperations.validateOwned(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Classifier redefinitionContext() { + return RegionOperations.redefinitionContext(this); + } + + /** + * + * + * @generated + */ + public StateMachine containingStateMachine() { + return RegionOperations.containingStateMachine(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REGION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.REGION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.REGION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.REGION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.REGION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.REGION__SUBVERTEX : + return ((InternalEList) getSubvertices()).basicAdd( + otherEnd, msgs); + case UMLPackage.REGION__TRANSITION : + return ((InternalEList) getTransitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.REGION__STATE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.REGION__STATE, msgs); + case UMLPackage.REGION__STATE_MACHINE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.REGION__STATE_MACHINE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REGION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REGION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.REGION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__SUBVERTEX : + return ((InternalEList) getSubvertices()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__TRANSITION : + return ((InternalEList) getTransitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.REGION__STATE : + return eBasicSetContainer(null, UMLPackage.REGION__STATE, + msgs); + case UMLPackage.REGION__STATE_MACHINE : + return eBasicSetContainer(null, + UMLPackage.REGION__STATE_MACHINE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.REGION__STATE : + return eContainer.eInverseRemove(this, + UMLPackage.STATE__REGION, State.class, msgs); + case UMLPackage.REGION__STATE_MACHINE : + return eContainer.eInverseRemove(this, + UMLPackage.STATE_MACHINE__REGION, StateMachine.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REGION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.REGION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.REGION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.REGION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.REGION__NAME : + return getName(); + case UMLPackage.REGION__VISIBILITY : + return getVisibility(); + case UMLPackage.REGION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.REGION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.REGION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.REGION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.REGION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.REGION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.REGION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.REGION__MEMBER : + return getMembers(); + case UMLPackage.REGION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.REGION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.REGION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REGION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.REGION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.REGION__SUBVERTEX : + return getSubvertices(); + case UMLPackage.REGION__TRANSITION : + return getTransitions(); + case UMLPackage.REGION__STATE : + return getState(); + case UMLPackage.REGION__EXTENDED_REGION : + if (resolve) + return getExtendedRegion(); + return basicGetExtendedRegion(); + case UMLPackage.REGION__STATE_MACHINE : + return getStateMachine(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REGION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.REGION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.REGION__NAME : + setName((String) newValue); + return; + case UMLPackage.REGION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.REGION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.REGION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.REGION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.REGION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.REGION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.REGION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REGION__SUBVERTEX : + getSubvertices().clear(); + getSubvertices().addAll((Collection) newValue); + return; + case UMLPackage.REGION__TRANSITION : + getTransitions().clear(); + getTransitions().addAll((Collection) newValue); + return; + case UMLPackage.REGION__STATE : + setState((State) newValue); + return; + case UMLPackage.REGION__EXTENDED_REGION : + setExtendedRegion((Region) newValue); + return; + case UMLPackage.REGION__STATE_MACHINE : + setStateMachine((StateMachine) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REGION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.REGION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.REGION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.REGION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.REGION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.REGION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.REGION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.REGION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.REGION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.REGION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.REGION__SUBVERTEX : + getSubvertices().clear(); + return; + case UMLPackage.REGION__TRANSITION : + getTransitions().clear(); + return; + case UMLPackage.REGION__STATE : + setState((State) null); + return; + case UMLPackage.REGION__EXTENDED_REGION : + setExtendedRegion((Region) null); + return; + case UMLPackage.REGION__STATE_MACHINE : + setStateMachine((StateMachine) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REGION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.REGION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.REGION__OWNER : + return isSetOwner(); + case UMLPackage.REGION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.REGION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.REGION__NAME : + String name = eVirtualIsSet(UMLPackage.REGION__NAME) + ? (String) eVirtualGet(UMLPackage.REGION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.REGION__VISIBILITY : + return eVirtualIsSet(UMLPackage.REGION__VISIBILITY) + && eVirtualGet(UMLPackage.REGION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.REGION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.REGION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.REGION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.REGION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.REGION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.REGION__NAME_EXPRESSION) != null; + case UMLPackage.REGION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.REGION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.REGION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.REGION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.REGION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.REGION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.REGION__MEMBER : + return isSetMembers(); + case UMLPackage.REGION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.REGION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.REGION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.REGION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.REGION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.REGION__SUBVERTEX : + List subvertex = (List) eVirtualGet(UMLPackage.REGION__SUBVERTEX); + return subvertex != null && !subvertex.isEmpty(); + case UMLPackage.REGION__TRANSITION : + List transition = (List) eVirtualGet(UMLPackage.REGION__TRANSITION); + return transition != null && !transition.isEmpty(); + case UMLPackage.REGION__STATE : + return getState() != null; + case UMLPackage.REGION__EXTENDED_REGION : + return eVirtualGet(UMLPackage.REGION__EXTENDED_REGION) != null; + case UMLPackage.REGION__STATE_MACHINE : + return getStateMachine() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.REGION__IS_LEAF : + return UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF; + case UMLPackage.REGION__REDEFINED_ELEMENT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + case UMLPackage.REGION__REDEFINITION_CONTEXT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (baseFeatureID) { + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + return UMLPackage.REGION__IS_LEAF; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT : + return UMLPackage.REGION__REDEFINED_ELEMENT; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT : + return UMLPackage.REGION__REDEFINITION_CONTEXT; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isLeaf: "); //$NON-NLS-1$ + result.append((eFlags & IS_LEAF_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return eIsSet(UMLPackage.eINSTANCE.getRegion_ExtendedRegion()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getRegion_Subvertex()) + || eIsSet(UMLPackage.eINSTANCE.getRegion_Transition()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + State state = getState(); + if (state != null) { + return state; + } + StateMachine stateMachine = getStateMachine(); + if (stateMachine != null) { + return stateMachine; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getRegion_State()) + || eIsSet(UMLPackage.eINSTANCE.getRegion_StateMachine()); + } + +} //RegionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RelationshipImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RelationshipImpl.java new file mode 100644 index 00000000..5e0aab4c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RelationshipImpl.java @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RelationshipImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * + * An implementation of the model object 'Relationship'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RelationshipImpl#getRelatedElements Related Element}
  • + *
+ *

+ * + * @generated + */ +public abstract class RelationshipImpl + extends ElementImpl + implements Relationship { + + /** + * + * + * @generated + */ + protected RelationshipImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRelationship(); + } + + /** + * + * + * @generated + */ + public List getRelatedElements() { + List relatedElement = (List) eVirtualGet(UMLPackage.RELATIONSHIP__RELATED_ELEMENT); + if (relatedElement == null) { + eVirtualSet(UMLPackage.RELATIONSHIP__RELATED_ELEMENT, + relatedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.RELATIONSHIP__RELATED_ELEMENT, + new EStructuralFeature[]{})); + } + return relatedElement; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RELATIONSHIP__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.RELATIONSHIP__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.RELATIONSHIP__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.RELATIONSHIP__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return getRelatedElements(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.RELATIONSHIP__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.RELATIONSHIP__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.RELATIONSHIP__OWNER : + return isSetOwner(); + case UMLPackage.RELATIONSHIP__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.RELATIONSHIP__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.RELATIONSHIP__RELATED_ELEMENT : + return isSetRelatedElements(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetRelatedElements() { + return false; + } + +} //RelationshipImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java new file mode 100644 index 00000000..7119da12 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java @@ -0,0 +1,738 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RemoveStructuralFeatureValueActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.RemoveStructuralFeatureValueActionOperations; + +/** + * + * An implementation of the model object 'Remove Structural Feature Value Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl#isRemoveDuplicates Is Remove Duplicates}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl#getRemoveAt Remove At}
  • + *
+ *

+ * + * @generated + */ +public class RemoveStructuralFeatureValueActionImpl + extends WriteStructuralFeatureActionImpl + implements RemoveStructuralFeatureValueAction { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isRemoveDuplicates() Is Remove Duplicates}' attribute. + * + * + * @see #isRemoveDuplicates() + * @generated + * @ordered + */ + protected static final boolean IS_REMOVE_DUPLICATES_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isRemoveDuplicates() Is Remove Duplicates}' attribute. + * + * + * @see #isRemoveDuplicates() + * @generated + * @ordered + */ + protected static final int IS_REMOVE_DUPLICATES_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected RemoveStructuralFeatureValueActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRemoveStructuralFeatureValueAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT); + if (input == null) { + eVirtualSet( + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getStructuralFeatureAction_Object(), + UMLPackage.eINSTANCE + .getWriteStructuralFeatureAction_Value(), + UMLPackage.eINSTANCE + .getRemoveStructuralFeatureValueAction_RemoveAt()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isRemoveDuplicates() { + return (eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsRemoveDuplicates(boolean newIsRemoveDuplicates) { + boolean oldIsRemoveDuplicates = (eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0; + if (newIsRemoveDuplicates) + eFlags |= IS_REMOVE_DUPLICATES_EFLAG; + else + eFlags &= ~IS_REMOVE_DUPLICATES_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.SET, + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REMOVE_DUPLICATES, + oldIsRemoveDuplicates, newIsRemoveDuplicates)); + + } + + /** + * + * + * @generated + */ + public InputPin getRemoveAt() { + InputPin removeAt = (InputPin) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT); + return removeAt; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRemoveAt(InputPin newRemoveAt, + NotificationChain msgs) { + Object oldRemoveAt = eVirtualSet( + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT, + newRemoveAt); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT, + oldRemoveAt == EVIRTUAL_NO_VALUE + ? null + : oldRemoveAt, newRemoveAt); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setRemoveAt(InputPin newRemoveAt) { + InputPin removeAt = (InputPin) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT); + if (newRemoveAt != removeAt) { + NotificationChain msgs = null; + if (removeAt != null) + msgs = ((InternalEObject) removeAt) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT, + null, msgs); + if (newRemoveAt != null) + msgs = ((InternalEObject) newRemoveAt) + .eInverseAdd( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT, + null, msgs); + msgs = basicSetRemoveAt(newRemoveAt, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT, + newRemoveAt, newRemoveAt)); + + } + + /** + * + * + * @generated + */ + public InputPin createRemoveAt(EClass eClass) { + InputPin newRemoveAt = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setRemoveAt(newRemoveAt); + return newRemoveAt; + } + + /** + * + * + * @generated + */ + public InputPin createRemoveAt() { + InputPin newRemoveAt = UMLFactory.eINSTANCE.createInputPin(); + setRemoveAt(newRemoveAt); + return newRemoveAt; + } + + /** + * + * + * @generated + */ + public boolean validateNonUniqueRemoval(DiagnosticChain diagnostics, + Map context) { + return RemoveStructuralFeatureValueActionOperations + .validateNonUniqueRemoval(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + return eBasicSetContainer( + null, + UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY, + msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + return basicSetObject(null, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + return basicSetValue(null, msgs); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT : + return basicSetRemoveAt(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + return getName(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT : + return getInputs(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + return getObject(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + return getValue(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + return isRemoveDuplicates() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT : + return getRemoveAt(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + setIsRemoveDuplicates(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT : + setRemoveAt((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + setIsRemoveDuplicates(IS_REMOVE_DUPLICATES_EDEFAULT); + return; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT : + setRemoveAt((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT : + return eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__OBJECT) != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE : + return eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__VALUE) != null; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + return ((eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0) != IS_REMOVE_DUPLICATES_EDEFAULT; + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT : + return eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isRemoveDuplicates: "); //$NON-NLS-1$ + result.append((eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getRemoveStructuralFeatureValueAction_RemoveAt()); + } + +} //RemoveStructuralFeatureValueActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java new file mode 100644 index 00000000..7c2a2a36 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java @@ -0,0 +1,671 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RemoveVariableValueActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.RemoveVariableValueAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.RemoveVariableValueActionOperations; + +/** + * + * An implementation of the model object 'Remove Variable Value Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl#isRemoveDuplicates Is Remove Duplicates}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl#getRemoveAt Remove At}
  • + *
+ *

+ * + * @generated + */ +public class RemoveVariableValueActionImpl + extends WriteVariableActionImpl + implements RemoveVariableValueAction { + + /** + * The default value of the '{@link #isRemoveDuplicates() Is Remove Duplicates}' attribute. + * + * + * @see #isRemoveDuplicates() + * @generated + * @ordered + */ + protected static final boolean IS_REMOVE_DUPLICATES_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isRemoveDuplicates() Is Remove Duplicates}' attribute. + * + * + * @see #isRemoveDuplicates() + * @generated + * @ordered + */ + protected static final int IS_REMOVE_DUPLICATES_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected RemoveVariableValueActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getRemoveVariableValueAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getWriteVariableAction_Value(), + UMLPackage.eINSTANCE + .getRemoveVariableValueAction_RemoveAt()})); + } + return input; + } + + /** + * + * + * @generated + */ + public boolean isRemoveDuplicates() { + return (eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsRemoveDuplicates(boolean newIsRemoveDuplicates) { + boolean oldIsRemoveDuplicates = (eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0; + if (newIsRemoveDuplicates) + eFlags |= IS_REMOVE_DUPLICATES_EFLAG; + else + eFlags &= ~IS_REMOVE_DUPLICATES_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_REMOVE_DUPLICATES, + oldIsRemoveDuplicates, newIsRemoveDuplicates)); + + } + + /** + * + * + * @generated + */ + public InputPin getRemoveAt() { + InputPin removeAt = (InputPin) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT); + return removeAt; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRemoveAt(InputPin newRemoveAt, + NotificationChain msgs) { + Object oldRemoveAt = eVirtualSet( + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT, newRemoveAt); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT, + oldRemoveAt == EVIRTUAL_NO_VALUE + ? null + : oldRemoveAt, newRemoveAt); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setRemoveAt(InputPin newRemoveAt) { + InputPin removeAt = (InputPin) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT); + if (newRemoveAt != removeAt) { + NotificationChain msgs = null; + if (removeAt != null) + msgs = ((InternalEObject) removeAt).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT, + null, msgs); + if (newRemoveAt != null) + msgs = ((InternalEObject) newRemoveAt).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT, + null, msgs); + msgs = basicSetRemoveAt(newRemoveAt, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT, + newRemoveAt, newRemoveAt)); + + } + + /** + * + * + * @generated + */ + public InputPin createRemoveAt(EClass eClass) { + InputPin newRemoveAt = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setRemoveAt(newRemoveAt); + return newRemoveAt; + } + + /** + * + * + * @generated + */ + public InputPin createRemoveAt() { + InputPin newRemoveAt = UMLFactory.eINSTANCE.createInputPin(); + setRemoveAt(newRemoveAt); + return newRemoveAt; + } + + /** + * + * + * @generated + */ + public boolean validateUnlimitedNatural(DiagnosticChain diagnostics, + Map context) { + return RemoveVariableValueActionOperations.validateUnlimitedNatural( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VALUE : + return basicSetValue(null, msgs); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT : + return basicSetRemoveAt(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME : + return getName(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INPUT : + return getInputs(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VARIABLE : + if (resolve) + return getVariable(); + return basicGetVariable(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VALUE : + return getValue(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + return isRemoveDuplicates() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT : + return getRemoveAt(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VARIABLE : + setVariable((Variable) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + setIsRemoveDuplicates(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT : + setRemoveAt((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VARIABLE : + setVariable((Variable) null); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + setIsRemoveDuplicates(IS_REMOVE_DUPLICATES_EDEFAULT); + return; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT : + setRemoveAt((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VARIABLE : + return eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VARIABLE) != null; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VALUE : + return eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__VALUE) != null; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__IS_REMOVE_DUPLICATES : + return ((eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0) != IS_REMOVE_DUPLICATES_EDEFAULT; + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT : + return eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isRemoveDuplicates: "); //$NON-NLS-1$ + result.append((eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getRemoveVariableValueAction_RemoveAt()); + } + +} //RemoveVariableValueActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java new file mode 100644 index 00000000..ddd2040d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java @@ -0,0 +1,713 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReplyActionImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.ReplyAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ReplyActionOperations; + +/** + * + * An implementation of the model object 'Reply Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getReplyToCall Reply To Call}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getReturnInformation Return Information}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getReplyValues Reply Value}
  • + *
+ *

+ * + * @generated + */ +public class ReplyActionImpl + extends ActionImpl + implements ReplyAction { + + /** + * + * + * @generated + */ + protected ReplyActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getReplyAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.REPLY_ACTION__INPUT); + if (input == null) { + eVirtualSet( + UMLPackage.REPLY_ACTION__INPUT, + input = new DerivedUnionEObjectEList( + InputPin.class, + this, + UMLPackage.REPLY_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getReplyAction_ReturnInformation(), + UMLPackage.eINSTANCE.getReplyAction_ReplyValue()})); + } + return input; + } + + /** + * + * + * @generated + */ + public Trigger getReplyToCall() { + Trigger replyToCall = (Trigger) eVirtualGet(UMLPackage.REPLY_ACTION__REPLY_TO_CALL); + if (replyToCall != null && replyToCall.eIsProxy()) { + Trigger oldReplyToCall = replyToCall; + replyToCall = (Trigger) eResolveProxy((InternalEObject) replyToCall); + if (replyToCall != oldReplyToCall) { + eVirtualSet(UMLPackage.REPLY_ACTION__REPLY_TO_CALL, replyToCall); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.REPLY_ACTION__REPLY_TO_CALL, oldReplyToCall, + replyToCall)); + } + } + return replyToCall; + } + + /** + * + * + * @generated + */ + public Trigger basicGetReplyToCall() { + return (Trigger) eVirtualGet(UMLPackage.REPLY_ACTION__REPLY_TO_CALL); + } + + /** + * + * + * @generated + */ + public void setReplyToCall(Trigger newReplyToCall) { + Trigger replyToCall = newReplyToCall; + Object oldReplyToCall = eVirtualSet( + UMLPackage.REPLY_ACTION__REPLY_TO_CALL, replyToCall); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REPLY_ACTION__REPLY_TO_CALL, + oldReplyToCall == EVIRTUAL_NO_VALUE + ? null + : oldReplyToCall, replyToCall)); + + } + + /** + * + * + * @generated + */ + public InputPin getReturnInformation() { + InputPin returnInformation = (InputPin) eVirtualGet(UMLPackage.REPLY_ACTION__RETURN_INFORMATION); + return returnInformation; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetReturnInformation( + InputPin newReturnInformation, NotificationChain msgs) { + Object oldReturnInformation = eVirtualSet( + UMLPackage.REPLY_ACTION__RETURN_INFORMATION, newReturnInformation); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.REPLY_ACTION__RETURN_INFORMATION, + oldReturnInformation == EVIRTUAL_NO_VALUE + ? null + : oldReturnInformation, newReturnInformation); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setReturnInformation(InputPin newReturnInformation) { + InputPin returnInformation = (InputPin) eVirtualGet(UMLPackage.REPLY_ACTION__RETURN_INFORMATION); + if (newReturnInformation != returnInformation) { + NotificationChain msgs = null; + if (returnInformation != null) + msgs = ((InternalEObject) returnInformation).eInverseRemove( + this, EOPPOSITE_FEATURE_BASE + - UMLPackage.REPLY_ACTION__RETURN_INFORMATION, null, + msgs); + if (newReturnInformation != null) + msgs = ((InternalEObject) newReturnInformation).eInverseAdd( + this, EOPPOSITE_FEATURE_BASE + - UMLPackage.REPLY_ACTION__RETURN_INFORMATION, null, + msgs); + msgs = basicSetReturnInformation(newReturnInformation, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.REPLY_ACTION__RETURN_INFORMATION, + newReturnInformation, newReturnInformation)); + + } + + /** + * + * + * @generated + */ + public InputPin createReturnInformation(EClass eClass) { + InputPin newReturnInformation = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setReturnInformation(newReturnInformation); + return newReturnInformation; + } + + /** + * + * + * @generated + */ + public InputPin createReturnInformation() { + InputPin newReturnInformation = UMLFactory.eINSTANCE.createInputPin(); + setReturnInformation(newReturnInformation); + return newReturnInformation; + } + + /** + * + * + * @generated + */ + public List getReplyValues() { + List replyValue = (List) eVirtualGet(UMLPackage.REPLY_ACTION__REPLY_VALUE); + if (replyValue == null) { + eVirtualSet(UMLPackage.REPLY_ACTION__REPLY_VALUE, + replyValue = new EObjectContainmentEList(InputPin.class, this, + UMLPackage.REPLY_ACTION__REPLY_VALUE)); + } + return replyValue; + } + + /** + * + * + * @generated + */ + public InputPin createReplyValue(EClass eClass) { + InputPin newReplyValue = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getReplyValues().add(newReplyValue); + return newReplyValue; + } + + /** + * + * + * @generated + */ + public InputPin createReplyValue() { + InputPin newReplyValue = UMLFactory.eINSTANCE.createInputPin(); + getReplyValues().add(newReplyValue); + return newReplyValue; + } + + /** + * + * + * @generated + */ + public InputPin getReplyValue(String name) { + for (Iterator i = getReplyValues().iterator(); i.hasNext();) { + InputPin replyValue = (InputPin) i.next(); + if (name.equals(replyValue.getName())) { + return replyValue; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validatePinsMatchParameter(DiagnosticChain diagnostics, + Map context) { + return ReplyActionOperations.validatePinsMatchParameter(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateEventOnReplyToCallTrigger( + DiagnosticChain diagnostics, Map context) { + return ReplyActionOperations.validateEventOnReplyToCallTrigger(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.REPLY_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.REPLY_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.REPLY_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REPLY_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.REPLY_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.REPLY_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.REPLY_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.REPLY_ACTION__ACTIVITY, msgs); + case UMLPackage.REPLY_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.REPLY_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REPLY_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.REPLY_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REPLY_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.REPLY_ACTION__RETURN_INFORMATION : + return basicSetReturnInformation(null, msgs); + case UMLPackage.REPLY_ACTION__REPLY_VALUE : + return ((InternalEList) getReplyValues()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REPLY_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.REPLY_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.REPLY_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.REPLY_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.REPLY_ACTION__NAME : + return getName(); + case UMLPackage.REPLY_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.REPLY_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.REPLY_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.REPLY_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.REPLY_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.REPLY_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.REPLY_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.REPLY_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.REPLY_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.REPLY_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.REPLY_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.REPLY_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.REPLY_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.REPLY_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.REPLY_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.REPLY_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.REPLY_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.REPLY_ACTION__INPUT : + return getInputs(); + case UMLPackage.REPLY_ACTION__CONTEXT : + return getContext(); + case UMLPackage.REPLY_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.REPLY_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.REPLY_ACTION__REPLY_TO_CALL : + if (resolve) + return getReplyToCall(); + return basicGetReplyToCall(); + case UMLPackage.REPLY_ACTION__RETURN_INFORMATION : + return getReturnInformation(); + case UMLPackage.REPLY_ACTION__REPLY_VALUE : + return getReplyValues(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REPLY_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.REPLY_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.REPLY_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.REPLY_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.REPLY_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.REPLY_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.REPLY_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.REPLY_ACTION__REPLY_TO_CALL : + setReplyToCall((Trigger) newValue); + return; + case UMLPackage.REPLY_ACTION__RETURN_INFORMATION : + setReturnInformation((InputPin) newValue); + return; + case UMLPackage.REPLY_ACTION__REPLY_VALUE : + getReplyValues().clear(); + getReplyValues().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REPLY_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.REPLY_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.REPLY_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.REPLY_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.REPLY_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.REPLY_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.REPLY_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.REPLY_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.REPLY_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.REPLY_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.REPLY_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.REPLY_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.REPLY_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.REPLY_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.REPLY_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.REPLY_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.REPLY_ACTION__REPLY_TO_CALL : + setReplyToCall((Trigger) null); + return; + case UMLPackage.REPLY_ACTION__RETURN_INFORMATION : + setReturnInformation((InputPin) null); + return; + case UMLPackage.REPLY_ACTION__REPLY_VALUE : + getReplyValues().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.REPLY_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.REPLY_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.REPLY_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.REPLY_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.REPLY_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.REPLY_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.REPLY_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.REPLY_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.REPLY_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.REPLY_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.REPLY_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.REPLY_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.REPLY_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.REPLY_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.REPLY_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.REPLY_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.REPLY_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.REPLY_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.REPLY_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.REPLY_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.REPLY_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.REPLY_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.REPLY_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.REPLY_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.REPLY_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.REPLY_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.REPLY_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.REPLY_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.REPLY_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.REPLY_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.REPLY_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.REPLY_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.REPLY_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.REPLY_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.REPLY_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.REPLY_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.REPLY_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.REPLY_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.REPLY_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.REPLY_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.REPLY_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.REPLY_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.REPLY_ACTION__REPLY_TO_CALL : + return eVirtualGet(UMLPackage.REPLY_ACTION__REPLY_TO_CALL) != null; + case UMLPackage.REPLY_ACTION__RETURN_INFORMATION : + return eVirtualGet(UMLPackage.REPLY_ACTION__RETURN_INFORMATION) != null; + case UMLPackage.REPLY_ACTION__REPLY_VALUE : + List replyValue = (List) eVirtualGet(UMLPackage.REPLY_ACTION__REPLY_VALUE); + return replyValue != null && !replyValue.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getReplyAction_ReturnInformation()) + || eIsSet(UMLPackage.eINSTANCE.getReplyAction_ReplyValue()); + } + +} //ReplyActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java new file mode 100644 index 00000000..3213b521 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java @@ -0,0 +1,701 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendObjectActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.SendObjectAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Send Object Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl#getRequest Request}
  • + *
+ *

+ * + * @generated + */ +public class SendObjectActionImpl + extends InvocationActionImpl + implements SendObjectAction { + + /** + * + * + * @generated + */ + protected SendObjectActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSendObjectAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.SEND_OBJECT_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.SEND_OBJECT_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getInvocationAction_Argument(), + UMLPackage.eINSTANCE.getSendObjectAction_Target()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getTarget() { + InputPin target = (InputPin) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__TARGET); + return target; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(InputPin newTarget, + NotificationChain msgs) { + Object oldTarget = eVirtualSet(UMLPackage.SEND_OBJECT_ACTION__TARGET, + newTarget); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.SEND_OBJECT_ACTION__TARGET, + oldTarget == EVIRTUAL_NO_VALUE + ? null + : oldTarget, newTarget); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTarget(InputPin newTarget) { + InputPin target = (InputPin) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__TARGET); + if (newTarget != target) { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.SEND_OBJECT_ACTION__TARGET, null, msgs); + if (newTarget != null) + msgs = ((InternalEObject) newTarget).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.SEND_OBJECT_ACTION__TARGET, null, msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SEND_OBJECT_ACTION__TARGET, newTarget, newTarget)); + + } + + /** + * + * + * @generated + */ + public InputPin createTarget(EClass eClass) { + InputPin newTarget = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public InputPin createTarget() { + InputPin newTarget = UMLFactory.eINSTANCE.createInputPin(); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public InputPin getRequest() { + InputPin request = (InputPin) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__REQUEST); + return request; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRequest(InputPin newRequest, + NotificationChain msgs) { + Object oldRequest = eVirtualSet(UMLPackage.SEND_OBJECT_ACTION__REQUEST, + newRequest); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.SEND_OBJECT_ACTION__REQUEST, + oldRequest == EVIRTUAL_NO_VALUE + ? null + : oldRequest, newRequest); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setRequest(InputPin newRequest) { + InputPin request = (InputPin) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__REQUEST); + if (newRequest != request) { + NotificationChain msgs = null; + if (request != null) + msgs = ((InternalEObject) request).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.SEND_OBJECT_ACTION__REQUEST, null, msgs); + if (newRequest != null) + msgs = ((InternalEObject) newRequest).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.SEND_OBJECT_ACTION__REQUEST, null, msgs); + msgs = basicSetRequest(newRequest, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SEND_OBJECT_ACTION__REQUEST, newRequest, newRequest)); + + } + + /** + * + * + * @generated + */ + public InputPin createRequest(EClass eClass) { + InputPin newRequest = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setRequest(newRequest); + return newRequest; + } + + /** + * + * + * @generated + */ + public InputPin createRequest() { + InputPin newRequest = UMLFactory.eINSTANCE.createInputPin(); + setRequest(newRequest); + return newRequest; + } + + /** + * + * + * @generated + */ + public boolean isSetRequest() { + return eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__REQUEST) != null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SEND_OBJECT_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.SEND_OBJECT_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.SEND_OBJECT_ACTION__ACTIVITY, msgs); + case UMLPackage.SEND_OBJECT_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_OBJECT_ACTION__TARGET : + return basicSetTarget(null, msgs); + case UMLPackage.SEND_OBJECT_ACTION__REQUEST : + return basicSetRequest(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OBJECT_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SEND_OBJECT_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SEND_OBJECT_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SEND_OBJECT_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SEND_OBJECT_ACTION__NAME : + return getName(); + case UMLPackage.SEND_OBJECT_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.SEND_OBJECT_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SEND_OBJECT_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SEND_OBJECT_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SEND_OBJECT_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.SEND_OBJECT_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.SEND_OBJECT_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.SEND_OBJECT_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.SEND_OBJECT_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.SEND_OBJECT_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.SEND_OBJECT_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.SEND_OBJECT_ACTION__INPUT : + return getInputs(); + case UMLPackage.SEND_OBJECT_ACTION__CONTEXT : + return getContext(); + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.SEND_OBJECT_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.SEND_OBJECT_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + case UMLPackage.SEND_OBJECT_ACTION__TARGET : + return getTarget(); + case UMLPackage.SEND_OBJECT_ACTION__REQUEST : + return getRequest(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.SEND_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__TARGET : + setTarget((InputPin) newValue); + return; + case UMLPackage.SEND_OBJECT_ACTION__REQUEST : + setRequest((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OBJECT_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SEND_OBJECT_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SEND_OBJECT_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SEND_OBJECT_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.SEND_OBJECT_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.SEND_OBJECT_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.SEND_OBJECT_ACTION__ON_PORT : + setOnPort((Port) null); + return; + case UMLPackage.SEND_OBJECT_ACTION__TARGET : + setTarget((InputPin) null); + return; + case UMLPackage.SEND_OBJECT_ACTION__REQUEST : + setRequest((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OBJECT_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SEND_OBJECT_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.SEND_OBJECT_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.SEND_OBJECT_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SEND_OBJECT_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.SEND_OBJECT_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SEND_OBJECT_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SEND_OBJECT_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.SEND_OBJECT_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.SEND_OBJECT_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.SEND_OBJECT_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.SEND_OBJECT_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.SEND_OBJECT_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.SEND_OBJECT_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.SEND_OBJECT_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.SEND_OBJECT_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__ON_PORT) != null; + case UMLPackage.SEND_OBJECT_ACTION__TARGET : + return eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__TARGET) != null; + case UMLPackage.SEND_OBJECT_ACTION__REQUEST : + return isSetRequest(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getSendObjectAction_Target()); + } + + /** + * + * + * @generated + */ + public List getArguments() { + return new EcoreEList.UnmodifiableEList(this, UMLPackage.eINSTANCE + .getInvocationAction_Argument(), 0, Collections.EMPTY_LIST + .toArray()); + } + + /** + * + * + * @generated + */ + public boolean isSetArguments() { + return false; + } + +} //SendObjectActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendOperationEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendOperationEventImpl.java new file mode 100644 index 00000000..b917712d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendOperationEventImpl.java @@ -0,0 +1,288 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendOperationEventImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.SendOperationEvent; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Send Operation Event'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendOperationEventImpl#getOperation Operation}
  • + *
+ *

+ * + * @generated + */ +public class SendOperationEventImpl + extends MessageEventImpl + implements SendOperationEvent { + + /** + * + * + * @generated + */ + protected SendOperationEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSendOperationEvent(); + } + + /** + * + * + * @generated + */ + public Operation getOperation() { + Operation operation = (Operation) eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__OPERATION); + if (operation != null && operation.eIsProxy()) { + Operation oldOperation = operation; + operation = (Operation) eResolveProxy((InternalEObject) operation); + if (operation != oldOperation) { + eVirtualSet(UMLPackage.SEND_OPERATION_EVENT__OPERATION, + operation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.SEND_OPERATION_EVENT__OPERATION, + oldOperation, operation)); + } + } + return operation; + } + + /** + * + * + * @generated + */ + public Operation basicGetOperation() { + return (Operation) eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__OPERATION); + } + + /** + * + * + * @generated + */ + public void setOperation(Operation newOperation) { + Operation operation = newOperation; + Object oldOperation = eVirtualSet( + UMLPackage.SEND_OPERATION_EVENT__OPERATION, operation); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SEND_OPERATION_EVENT__OPERATION, + oldOperation == EVIRTUAL_NO_VALUE + ? null + : oldOperation, operation)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OPERATION_EVENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SEND_OPERATION_EVENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SEND_OPERATION_EVENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SEND_OPERATION_EVENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SEND_OPERATION_EVENT__NAME : + return getName(); + case UMLPackage.SEND_OPERATION_EVENT__VISIBILITY : + return getVisibility(); + case UMLPackage.SEND_OPERATION_EVENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SEND_OPERATION_EVENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SEND_OPERATION_EVENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SEND_OPERATION_EVENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SEND_OPERATION_EVENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.SEND_OPERATION_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.SEND_OPERATION_EVENT__OPERATION : + if (resolve) + return getOperation(); + return basicGetOperation(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OPERATION_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__NAME : + setName((String) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SEND_OPERATION_EVENT__OPERATION : + setOperation((Operation) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OPERATION_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SEND_OPERATION_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SEND_OPERATION_EVENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SEND_OPERATION_EVENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SEND_OPERATION_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SEND_OPERATION_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SEND_OPERATION_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SEND_OPERATION_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SEND_OPERATION_EVENT__OPERATION : + setOperation((Operation) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_OPERATION_EVENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SEND_OPERATION_EVENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SEND_OPERATION_EVENT__OWNER : + return isSetOwner(); + case UMLPackage.SEND_OPERATION_EVENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SEND_OPERATION_EVENT__NAME : + String name = eVirtualIsSet(UMLPackage.SEND_OPERATION_EVENT__NAME) + ? (String) eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SEND_OPERATION_EVENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.SEND_OPERATION_EVENT__VISIBILITY) + && eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SEND_OPERATION_EVENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SEND_OPERATION_EVENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SEND_OPERATION_EVENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SEND_OPERATION_EVENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__NAME_EXPRESSION) != null; + case UMLPackage.SEND_OPERATION_EVENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.SEND_OPERATION_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.SEND_OPERATION_EVENT__OPERATION : + return eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__OPERATION) != null; + } + return eDynamicIsSet(eFeature); + } + +} //SendOperationEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java new file mode 100644 index 00000000..00251208 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java @@ -0,0 +1,662 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendSignalActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.SendSignalAction; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.SendSignalActionOperations; + +/** + * + * An implementation of the model object 'Send Signal Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl#getSignal Signal}
  • + *
+ *

+ * + * @generated + */ +public class SendSignalActionImpl + extends InvocationActionImpl + implements SendSignalAction { + + /** + * + * + * @generated + */ + protected SendSignalActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSendSignalAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.SEND_SIGNAL_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.SEND_SIGNAL_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getInvocationAction_Argument(), + UMLPackage.eINSTANCE.getSendSignalAction_Target()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getTarget() { + InputPin target = (InputPin) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__TARGET); + return target; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(InputPin newTarget, + NotificationChain msgs) { + Object oldTarget = eVirtualSet(UMLPackage.SEND_SIGNAL_ACTION__TARGET, + newTarget); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.SEND_SIGNAL_ACTION__TARGET, + oldTarget == EVIRTUAL_NO_VALUE + ? null + : oldTarget, newTarget); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTarget(InputPin newTarget) { + InputPin target = (InputPin) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__TARGET); + if (newTarget != target) { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.SEND_SIGNAL_ACTION__TARGET, null, msgs); + if (newTarget != null) + msgs = ((InternalEObject) newTarget).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.SEND_SIGNAL_ACTION__TARGET, null, msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SEND_SIGNAL_ACTION__TARGET, newTarget, newTarget)); + + } + + /** + * + * + * @generated + */ + public InputPin createTarget(EClass eClass) { + InputPin newTarget = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public InputPin createTarget() { + InputPin newTarget = UMLFactory.eINSTANCE.createInputPin(); + setTarget(newTarget); + return newTarget; + } + + /** + * + * + * @generated + */ + public Signal getSignal() { + Signal signal = (Signal) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__SIGNAL); + if (signal != null && signal.eIsProxy()) { + Signal oldSignal = signal; + signal = (Signal) eResolveProxy((InternalEObject) signal); + if (signal != oldSignal) { + eVirtualSet(UMLPackage.SEND_SIGNAL_ACTION__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.SEND_SIGNAL_ACTION__SIGNAL, oldSignal, + signal)); + } + } + return signal; + } + + /** + * + * + * @generated + */ + public Signal basicGetSignal() { + return (Signal) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__SIGNAL); + } + + /** + * + * + * @generated + */ + public void setSignal(Signal newSignal) { + Signal signal = newSignal; + Object oldSignal = eVirtualSet(UMLPackage.SEND_SIGNAL_ACTION__SIGNAL, + signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SEND_SIGNAL_ACTION__SIGNAL, + oldSignal == EVIRTUAL_NO_VALUE + ? null + : oldSignal, signal)); + + } + + /** + * + * + * @generated + */ + public boolean validateNumberOrder(DiagnosticChain diagnostics, Map context) { + return SendSignalActionOperations.validateNumberOrder(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeOrderingMultiplicity( + DiagnosticChain diagnostics, Map context) { + return SendSignalActionOperations.validateTypeOrderingMultiplicity( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SEND_SIGNAL_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__ARGUMENT : + return ((InternalEList) getArguments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEND_SIGNAL_ACTION__TARGET : + return basicSetTarget(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SEND_SIGNAL_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SEND_SIGNAL_ACTION__NAME : + return getName(); + case UMLPackage.SEND_SIGNAL_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.SEND_SIGNAL_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SEND_SIGNAL_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SEND_SIGNAL_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.SEND_SIGNAL_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.SEND_SIGNAL_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.SEND_SIGNAL_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.SEND_SIGNAL_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.SEND_SIGNAL_ACTION__INPUT : + return getInputs(); + case UMLPackage.SEND_SIGNAL_ACTION__CONTEXT : + return getContext(); + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.SEND_SIGNAL_ACTION__ARGUMENT : + return getArguments(); + case UMLPackage.SEND_SIGNAL_ACTION__ON_PORT : + if (resolve) + return getOnPort(); + return basicGetOnPort(); + case UMLPackage.SEND_SIGNAL_ACTION__TARGET : + return getTarget(); + case UMLPackage.SEND_SIGNAL_ACTION__SIGNAL : + if (resolve) + return getSignal(); + return basicGetSignal(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.SEND_SIGNAL_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__ARGUMENT : + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__ON_PORT : + setOnPort((Port) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__TARGET : + setTarget((InputPin) newValue); + return; + case UMLPackage.SEND_SIGNAL_ACTION__SIGNAL : + setSignal((Signal) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SEND_SIGNAL_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.SEND_SIGNAL_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.SEND_SIGNAL_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__ARGUMENT : + getArguments().clear(); + return; + case UMLPackage.SEND_SIGNAL_ACTION__ON_PORT : + setOnPort((Port) null); + return; + case UMLPackage.SEND_SIGNAL_ACTION__TARGET : + setTarget((InputPin) null); + return; + case UMLPackage.SEND_SIGNAL_ACTION__SIGNAL : + setSignal((Signal) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SEND_SIGNAL_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.SEND_SIGNAL_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.SEND_SIGNAL_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SEND_SIGNAL_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.SEND_SIGNAL_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SEND_SIGNAL_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.SEND_SIGNAL_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.SEND_SIGNAL_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.SEND_SIGNAL_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.SEND_SIGNAL_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.SEND_SIGNAL_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.SEND_SIGNAL_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__ARGUMENT : + List argument = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__ARGUMENT); + return argument != null && !argument.isEmpty(); + case UMLPackage.SEND_SIGNAL_ACTION__ON_PORT : + return eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__ON_PORT) != null; + case UMLPackage.SEND_SIGNAL_ACTION__TARGET : + return eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__TARGET) != null; + case UMLPackage.SEND_SIGNAL_ACTION__SIGNAL : + return eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__SIGNAL) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getSendSignalAction_Target()); + } + +} //SendSignalActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalEventImpl.java new file mode 100644 index 00000000..77a9e1b7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalEventImpl.java @@ -0,0 +1,286 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendSignalEventImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.SendSignalEvent; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Send Signal Event'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SendSignalEventImpl#getSignal Signal}
  • + *
+ *

+ * + * @generated + */ +public class SendSignalEventImpl + extends MessageEventImpl + implements SendSignalEvent { + + /** + * + * + * @generated + */ + protected SendSignalEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSendSignalEvent(); + } + + /** + * + * + * @generated + */ + public Signal getSignal() { + Signal signal = (Signal) eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__SIGNAL); + if (signal != null && signal.eIsProxy()) { + Signal oldSignal = signal; + signal = (Signal) eResolveProxy((InternalEObject) signal); + if (signal != oldSignal) { + eVirtualSet(UMLPackage.SEND_SIGNAL_EVENT__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.SEND_SIGNAL_EVENT__SIGNAL, oldSignal, signal)); + } + } + return signal; + } + + /** + * + * + * @generated + */ + public Signal basicGetSignal() { + return (Signal) eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__SIGNAL); + } + + /** + * + * + * @generated + */ + public void setSignal(Signal newSignal) { + Signal signal = newSignal; + Object oldSignal = eVirtualSet(UMLPackage.SEND_SIGNAL_EVENT__SIGNAL, + signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SEND_SIGNAL_EVENT__SIGNAL, + oldSignal == EVIRTUAL_NO_VALUE + ? null + : oldSignal, signal)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_EVENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SEND_SIGNAL_EVENT__NAME : + return getName(); + case UMLPackage.SEND_SIGNAL_EVENT__VISIBILITY : + return getVisibility(); + case UMLPackage.SEND_SIGNAL_EVENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SEND_SIGNAL_EVENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SEND_SIGNAL_EVENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SEND_SIGNAL_EVENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SEND_SIGNAL_EVENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.SEND_SIGNAL_EVENT__SIGNAL : + if (resolve) + return getSignal(); + return basicGetSignal(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__NAME : + setName((String) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SEND_SIGNAL_EVENT__SIGNAL : + setSignal((Signal) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SEND_SIGNAL_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SEND_SIGNAL_EVENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SEND_SIGNAL_EVENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SEND_SIGNAL_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SEND_SIGNAL_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SEND_SIGNAL_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SEND_SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SEND_SIGNAL_EVENT__SIGNAL : + setSignal((Signal) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEND_SIGNAL_EVENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNER : + return isSetOwner(); + case UMLPackage.SEND_SIGNAL_EVENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SEND_SIGNAL_EVENT__NAME : + String name = eVirtualIsSet(UMLPackage.SEND_SIGNAL_EVENT__NAME) + ? (String) eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SEND_SIGNAL_EVENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.SEND_SIGNAL_EVENT__VISIBILITY) + && eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SEND_SIGNAL_EVENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SEND_SIGNAL_EVENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SEND_SIGNAL_EVENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SEND_SIGNAL_EVENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__NAME_EXPRESSION) != null; + case UMLPackage.SEND_SIGNAL_EVENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.SEND_SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.SEND_SIGNAL_EVENT__SIGNAL : + return eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__SIGNAL) != null; + } + return eDynamicIsSet(eFeature); + } + +} //SendSignalEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java new file mode 100644 index 00000000..3f62711e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java @@ -0,0 +1,648 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SequenceNodeImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.SequenceNode; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Sequence Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SequenceNodeImpl#getExecutableNodes Executable Node}
  • + *
+ *

+ * + * @generated + */ +public class SequenceNodeImpl + extends StructuredActivityNodeImpl + implements SequenceNode { + + /** + * + * + * @generated + */ + protected SequenceNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSequenceNode(); + } + + /** + * + * + * @generated + */ + public List getExecutableNodes() { + List executableNode = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE); + if (executableNode == null) { + eVirtualSet(UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE, + executableNode = new EObjectContainmentEList( + ExecutableNode.class, this, + UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE)); + } + return executableNode; + } + + /** + * + * + * @generated + */ + public ExecutableNode createExecutableNode(EClass eClass) { + ExecutableNode newExecutableNode = (ExecutableNode) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getExecutableNodes().add(newExecutableNode); + return newExecutableNode; + } + + /** + * + * + * @generated + */ + public ExecutableNode getExecutableNode(String name) { + for (Iterator i = getExecutableNodes().iterator(); i.hasNext();) { + ExecutableNode executableNode = (ExecutableNode) i.next(); + if (name.equals(executableNode.getName())) { + return executableNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetExecutableNodes() { + List executableNode = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE); + return executableNode != null && !executableNode.isEmpty(); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SEQUENCE_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.SEQUENCE_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE, msgs); + case UMLPackage.SEQUENCE_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.SEQUENCE_NODE__ACTIVITY, msgs); + case UMLPackage.SEQUENCE_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.SEQUENCE_NODE__IN_ACTIVITY, msgs); + case UMLPackage.SEQUENCE_NODE__VARIABLE : + return ((InternalEList) getVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.SEQUENCE_NODE__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.SEQUENCE_NODE__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + case UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE : + return ((InternalEList) getExecutableNodes()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEQUENCE_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SEQUENCE_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SEQUENCE_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SEQUENCE_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SEQUENCE_NODE__NAME : + return getName(); + case UMLPackage.SEQUENCE_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.SEQUENCE_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SEQUENCE_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SEQUENCE_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SEQUENCE_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.SEQUENCE_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.SEQUENCE_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.SEQUENCE_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.SEQUENCE_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.SEQUENCE_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.SEQUENCE_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.SEQUENCE_NODE__INCOMING : + return getIncomings(); + case UMLPackage.SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.SEQUENCE_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.SEQUENCE_NODE__HANDLER : + return getHandlers(); + case UMLPackage.SEQUENCE_NODE__OUTPUT : + return getOutputs(); + case UMLPackage.SEQUENCE_NODE__INPUT : + return getInputs(); + case UMLPackage.SEQUENCE_NODE__CONTEXT : + return getContext(); + case UMLPackage.SEQUENCE_NODE__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.SEQUENCE_NODE__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.SEQUENCE_NODE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.SEQUENCE_NODE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.SEQUENCE_NODE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.SEQUENCE_NODE__MEMBER : + return getMembers(); + case UMLPackage.SEQUENCE_NODE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.SEQUENCE_NODE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.SEQUENCE_NODE__SUBGROUP : + return getSubgroups(); + case UMLPackage.SEQUENCE_NODE__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.SEQUENCE_NODE__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.SEQUENCE_NODE__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.SEQUENCE_NODE__VARIABLE : + return getVariables(); + case UMLPackage.SEQUENCE_NODE__NODE : + return getNodes(); + case UMLPackage.SEQUENCE_NODE__MUST_ISOLATE : + return isMustIsolate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.SEQUENCE_NODE__EDGE : + return getEdges(); + case UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE : + return getExecutableNodes(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEQUENCE_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.SEQUENCE_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SEQUENCE_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SEQUENCE_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.SEQUENCE_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.SEQUENCE_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.SEQUENCE_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.SEQUENCE_NODE__VARIABLE : + getVariables().clear(); + getVariables().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__MUST_ISOLATE : + setMustIsolate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.SEQUENCE_NODE__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + case UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE : + getExecutableNodes().clear(); + getExecutableNodes().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEQUENCE_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SEQUENCE_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SEQUENCE_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SEQUENCE_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SEQUENCE_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SEQUENCE_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.SEQUENCE_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.SEQUENCE_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.SEQUENCE_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.SEQUENCE_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.SEQUENCE_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.SEQUENCE_NODE__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.SEQUENCE_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.SEQUENCE_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.SEQUENCE_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.SEQUENCE_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.SEQUENCE_NODE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.SEQUENCE_NODE__VARIABLE : + getVariables().clear(); + return; + case UMLPackage.SEQUENCE_NODE__NODE : + getNodes().clear(); + return; + case UMLPackage.SEQUENCE_NODE__MUST_ISOLATE : + setMustIsolate(MUST_ISOLATE_EDEFAULT); + return; + case UMLPackage.SEQUENCE_NODE__EDGE : + getEdges().clear(); + return; + case UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE : + getExecutableNodes().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SEQUENCE_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SEQUENCE_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SEQUENCE_NODE__OWNER : + return isSetOwner(); + case UMLPackage.SEQUENCE_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SEQUENCE_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.SEQUENCE_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.SEQUENCE_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SEQUENCE_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.SEQUENCE_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.SEQUENCE_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SEQUENCE_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SEQUENCE_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SEQUENCE_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SEQUENCE_NODE__NAME_EXPRESSION) != null; + case UMLPackage.SEQUENCE_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.SEQUENCE_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.SEQUENCE_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.SEQUENCE_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.SEQUENCE_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.SEQUENCE_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.SEQUENCE_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.SEQUENCE_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.SEQUENCE_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.SEQUENCE_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.SEQUENCE_NODE__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.SEQUENCE_NODE__OUTPUT : + return isSetOutputs(); + case UMLPackage.SEQUENCE_NODE__INPUT : + return isSetInputs(); + case UMLPackage.SEQUENCE_NODE__CONTEXT : + return getContext() != null; + case UMLPackage.SEQUENCE_NODE__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.SEQUENCE_NODE__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.SEQUENCE_NODE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.SEQUENCE_NODE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.SEQUENCE_NODE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.SEQUENCE_NODE__MEMBER : + return isSetMembers(); + case UMLPackage.SEQUENCE_NODE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.SEQUENCE_NODE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.SEQUENCE_NODE__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.SEQUENCE_NODE__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.SEQUENCE_NODE__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.SEQUENCE_NODE__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.SEQUENCE_NODE__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.SEQUENCE_NODE__VARIABLE : + List variable = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__VARIABLE); + return variable != null && !variable.isEmpty(); + case UMLPackage.SEQUENCE_NODE__NODE : + List node = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.SEQUENCE_NODE__MUST_ISOLATE : + return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT; + case UMLPackage.SEQUENCE_NODE__EDGE : + List edge = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__EDGE); + return edge != null && !edge.isEmpty(); + case UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE : + return isSetExecutableNodes(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public List getNodes() { + return getExecutableNodes(); + } + + /** + * + * + * @generated + */ + public boolean isSetNodes() { + return false; + } + +} //SequenceNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalEventImpl.java new file mode 100644 index 00000000..9bfb5bc9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalEventImpl.java @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SignalEventImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.SignalEvent; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Signal Event'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SignalEventImpl#getSignal Signal}
  • + *
+ *

+ * + * @generated + */ +public class SignalEventImpl + extends MessageEventImpl + implements SignalEvent { + + /** + * + * + * @generated + */ + protected SignalEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSignalEvent(); + } + + /** + * + * + * @generated + */ + public Signal getSignal() { + Signal signal = (Signal) eVirtualGet(UMLPackage.SIGNAL_EVENT__SIGNAL); + if (signal != null && signal.eIsProxy()) { + Signal oldSignal = signal; + signal = (Signal) eResolveProxy((InternalEObject) signal); + if (signal != oldSignal) { + eVirtualSet(UMLPackage.SIGNAL_EVENT__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.SIGNAL_EVENT__SIGNAL, oldSignal, signal)); + } + } + return signal; + } + + /** + * + * + * @generated + */ + public Signal basicGetSignal() { + return (Signal) eVirtualGet(UMLPackage.SIGNAL_EVENT__SIGNAL); + } + + /** + * + * + * @generated + */ + public void setSignal(Signal newSignal) { + Signal signal = newSignal; + Object oldSignal = eVirtualSet(UMLPackage.SIGNAL_EVENT__SIGNAL, signal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SIGNAL_EVENT__SIGNAL, oldSignal == EVIRTUAL_NO_VALUE + ? null + : oldSignal, signal)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL_EVENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SIGNAL_EVENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SIGNAL_EVENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SIGNAL_EVENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SIGNAL_EVENT__NAME : + return getName(); + case UMLPackage.SIGNAL_EVENT__VISIBILITY : + return getVisibility(); + case UMLPackage.SIGNAL_EVENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SIGNAL_EVENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SIGNAL_EVENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SIGNAL_EVENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SIGNAL_EVENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.SIGNAL_EVENT__SIGNAL : + if (resolve) + return getSignal(); + return basicGetSignal(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL_EVENT__NAME : + setName((String) newValue); + return; + case UMLPackage.SIGNAL_EVENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SIGNAL_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SIGNAL_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SIGNAL_EVENT__SIGNAL : + setSignal((Signal) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SIGNAL_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SIGNAL_EVENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SIGNAL_EVENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SIGNAL_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SIGNAL_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SIGNAL_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SIGNAL_EVENT__SIGNAL : + setSignal((Signal) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL_EVENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SIGNAL_EVENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SIGNAL_EVENT__OWNER : + return isSetOwner(); + case UMLPackage.SIGNAL_EVENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SIGNAL_EVENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SIGNAL_EVENT__NAME : + String name = eVirtualIsSet(UMLPackage.SIGNAL_EVENT__NAME) + ? (String) eVirtualGet(UMLPackage.SIGNAL_EVENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SIGNAL_EVENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.SIGNAL_EVENT__VISIBILITY) + && eVirtualGet(UMLPackage.SIGNAL_EVENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SIGNAL_EVENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SIGNAL_EVENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SIGNAL_EVENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SIGNAL_EVENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SIGNAL_EVENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SIGNAL_EVENT__NAME_EXPRESSION) != null; + case UMLPackage.SIGNAL_EVENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.SIGNAL_EVENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.SIGNAL_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.SIGNAL_EVENT__SIGNAL : + return eVirtualGet(UMLPackage.SIGNAL_EVENT__SIGNAL) != null; + } + return eDynamicIsSet(eFeature); + } + +} //SignalEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java new file mode 100644 index 00000000..b74a047c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java @@ -0,0 +1,676 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SignalImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Signal'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getOwnedAttributes Owned Attribute}
  • + *
+ *

+ * + * @generated + */ +public class SignalImpl + extends ClassifierImpl + implements Signal { + + /** + * + * + * @generated + */ + protected SignalImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSignal(); + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.SIGNAL__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.SIGNAL__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.SIGNAL__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getSignal_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.SIGNAL__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.SIGNAL__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.SIGNAL__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE.getSignal_OwnedAttribute()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.SIGNAL__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.SIGNAL__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentEList(Property.class, + this, UMLPackage.SIGNAL__OWNED_ATTRIBUTE)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SIGNAL__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SIGNAL__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.SIGNAL__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.SIGNAL__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.SIGNAL__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.SIGNAL__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.SIGNAL__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.SIGNAL__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SIGNAL__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.SIGNAL__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SIGNAL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SIGNAL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SIGNAL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SIGNAL__NAME : + return getName(); + case UMLPackage.SIGNAL__VISIBILITY : + return getVisibility(); + case UMLPackage.SIGNAL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SIGNAL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SIGNAL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SIGNAL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SIGNAL__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.SIGNAL__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.SIGNAL__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.SIGNAL__MEMBER : + return getMembers(); + case UMLPackage.SIGNAL__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.SIGNAL__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.SIGNAL__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.SIGNAL__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.SIGNAL__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.SIGNAL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.SIGNAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.SIGNAL__PACKAGE : + return getPackage(); + case UMLPackage.SIGNAL__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.SIGNAL__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.SIGNAL__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.SIGNAL__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.SIGNAL__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.SIGNAL__FEATURE : + return getFeatures(); + case UMLPackage.SIGNAL__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.SIGNAL__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.SIGNAL__GENERAL : + return getGenerals(); + case UMLPackage.SIGNAL__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.SIGNAL__USE_CASE : + return getUseCases(); + case UMLPackage.SIGNAL__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.SIGNAL__ATTRIBUTE : + return getAttributes(); + case UMLPackage.SIGNAL__REPRESENTATION : + return getRepresentation(); + case UMLPackage.SIGNAL__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.SIGNAL__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.SIGNAL__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__NAME : + setName((String) newValue); + return; + case UMLPackage.SIGNAL__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SIGNAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SIGNAL__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.SIGNAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SIGNAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SIGNAL__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.SIGNAL__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.SIGNAL__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.SIGNAL__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.SIGNAL__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.SIGNAL__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.SIGNAL__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SIGNAL__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SIGNAL__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SIGNAL__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SIGNAL__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SIGNAL__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SIGNAL__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.SIGNAL__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.SIGNAL__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.SIGNAL__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.SIGNAL__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SIGNAL__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SIGNAL__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.SIGNAL__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.SIGNAL__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.SIGNAL__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.SIGNAL__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.SIGNAL__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.SIGNAL__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.SIGNAL__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.SIGNAL__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.SIGNAL__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.SIGNAL__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.SIGNAL__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.SIGNAL__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.SIGNAL__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.SIGNAL__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.SIGNAL__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SIGNAL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SIGNAL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SIGNAL__OWNER : + return isSetOwner(); + case UMLPackage.SIGNAL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SIGNAL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SIGNAL__NAME : + String name = eVirtualIsSet(UMLPackage.SIGNAL__NAME) + ? (String) eVirtualGet(UMLPackage.SIGNAL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SIGNAL__VISIBILITY : + return eVirtualIsSet(UMLPackage.SIGNAL__VISIBILITY) + && eVirtualGet(UMLPackage.SIGNAL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SIGNAL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SIGNAL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SIGNAL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SIGNAL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SIGNAL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SIGNAL__NAME_EXPRESSION) != null; + case UMLPackage.SIGNAL__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.SIGNAL__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.SIGNAL__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.SIGNAL__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.SIGNAL__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.SIGNAL__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.SIGNAL__MEMBER : + return isSetMembers(); + case UMLPackage.SIGNAL__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.SIGNAL__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.SIGNAL__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.SIGNAL__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.SIGNAL__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.SIGNAL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.SIGNAL__TEMPLATE_PARAMETER) != null; + case UMLPackage.SIGNAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.SIGNAL__PACKAGE : + return getPackage() != null; + case UMLPackage.SIGNAL__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.SIGNAL__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.SIGNAL__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.SIGNAL__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.SIGNAL__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.SIGNAL__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.SIGNAL__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.SIGNAL__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.SIGNAL__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.SIGNAL__FEATURE : + return isSetFeatures(); + case UMLPackage.SIGNAL__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.SIGNAL__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.SIGNAL__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.SIGNAL__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.SIGNAL__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.SIGNAL__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.SIGNAL__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.SIGNAL__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.SIGNAL__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.SIGNAL__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.SIGNAL__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.SIGNAL__REPRESENTATION : + return eVirtualGet(UMLPackage.SIGNAL__REPRESENTATION) != null; + case UMLPackage.SIGNAL__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.SIGNAL__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.SIGNAL__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.SIGNAL__OWNED_SIGNATURE) != null; + case UMLPackage.SIGNAL__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.SIGNAL__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() + || eIsSet(UMLPackage.eINSTANCE.getSignal_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getSignal_OwnedAttribute()); + } + +} //SignalImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SlotImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SlotImpl.java new file mode 100644 index 00000000..42f29abd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SlotImpl.java @@ -0,0 +1,448 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SlotImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.Slot; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * An implementation of the model object 'Slot'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getOwningInstance Owning Instance}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getDefiningFeature Defining Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getValues Value}
  • + *
+ *

+ * + * @generated + */ +public class SlotImpl + extends ElementImpl + implements Slot { + + /** + * + * + * @generated + */ + protected SlotImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSlot(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.SLOT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.SLOT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.SLOT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getSlot_Value()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public InstanceSpecification getOwningInstance() { + if (eContainerFeatureID != UMLPackage.SLOT__OWNING_INSTANCE) + return null; + return (InstanceSpecification) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningInstance(InstanceSpecification newOwningInstance) { + if (newOwningInstance != eContainer + || (eContainerFeatureID != UMLPackage.SLOT__OWNING_INSTANCE && newOwningInstance != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newOwningInstance)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningInstance != null) + msgs = ((InternalEObject) newOwningInstance).eInverseAdd(this, + UMLPackage.INSTANCE_SPECIFICATION__SLOT, + InstanceSpecification.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newOwningInstance, + UMLPackage.SLOT__OWNING_INSTANCE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SLOT__OWNING_INSTANCE, newOwningInstance, + newOwningInstance)); + + } + + /** + * + * + * @generated + */ + public StructuralFeature getDefiningFeature() { + StructuralFeature definingFeature = (StructuralFeature) eVirtualGet(UMLPackage.SLOT__DEFINING_FEATURE); + if (definingFeature != null && definingFeature.eIsProxy()) { + StructuralFeature oldDefiningFeature = definingFeature; + definingFeature = (StructuralFeature) eResolveProxy((InternalEObject) definingFeature); + if (definingFeature != oldDefiningFeature) { + eVirtualSet(UMLPackage.SLOT__DEFINING_FEATURE, definingFeature); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.SLOT__DEFINING_FEATURE, oldDefiningFeature, + definingFeature)); + } + } + return definingFeature; + } + + /** + * + * + * @generated + */ + public StructuralFeature basicGetDefiningFeature() { + return (StructuralFeature) eVirtualGet(UMLPackage.SLOT__DEFINING_FEATURE); + } + + /** + * + * + * @generated + */ + public void setDefiningFeature(StructuralFeature newDefiningFeature) { + StructuralFeature definingFeature = newDefiningFeature; + Object oldDefiningFeature = eVirtualSet( + UMLPackage.SLOT__DEFINING_FEATURE, definingFeature); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SLOT__DEFINING_FEATURE, + oldDefiningFeature == EVIRTUAL_NO_VALUE + ? null + : oldDefiningFeature, definingFeature)); + + } + + /** + * + * + * @generated + */ + public List getValues() { + List value = (List) eVirtualGet(UMLPackage.SLOT__VALUE); + if (value == null) { + eVirtualSet(UMLPackage.SLOT__VALUE, + value = new EObjectContainmentEList(ValueSpecification.class, + this, UMLPackage.SLOT__VALUE)); + } + return value; + } + + /** + * + * + * @generated + */ + public ValueSpecification createValue(EClass eClass) { + ValueSpecification newValue = (ValueSpecification) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getValues().add(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public ValueSpecification getValue(String name) { + for (Iterator i = getValues().iterator(); i.hasNext();) { + ValueSpecification value = (ValueSpecification) i.next(); + if (name.equals(value.getName())) { + return value; + } + } + return null; + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SLOT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.SLOT__OWNING_INSTANCE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.SLOT__OWNING_INSTANCE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SLOT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SLOT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SLOT__OWNING_INSTANCE : + return eBasicSetContainer(null, + UMLPackage.SLOT__OWNING_INSTANCE, msgs); + case UMLPackage.SLOT__VALUE : + return ((InternalEList) getValues()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.SLOT__OWNING_INSTANCE : + return eContainer.eInverseRemove(this, + UMLPackage.INSTANCE_SPECIFICATION__SLOT, + InstanceSpecification.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SLOT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SLOT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SLOT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SLOT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SLOT__OWNING_INSTANCE : + return getOwningInstance(); + case UMLPackage.SLOT__DEFINING_FEATURE : + if (resolve) + return getDefiningFeature(); + return basicGetDefiningFeature(); + case UMLPackage.SLOT__VALUE : + return getValues(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SLOT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SLOT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SLOT__OWNING_INSTANCE : + setOwningInstance((InstanceSpecification) newValue); + return; + case UMLPackage.SLOT__DEFINING_FEATURE : + setDefiningFeature((StructuralFeature) newValue); + return; + case UMLPackage.SLOT__VALUE : + getValues().clear(); + getValues().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SLOT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SLOT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SLOT__OWNING_INSTANCE : + setOwningInstance((InstanceSpecification) null); + return; + case UMLPackage.SLOT__DEFINING_FEATURE : + setDefiningFeature((StructuralFeature) null); + return; + case UMLPackage.SLOT__VALUE : + getValues().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SLOT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SLOT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SLOT__OWNER : + return isSetOwner(); + case UMLPackage.SLOT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SLOT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SLOT__OWNING_INSTANCE : + return getOwningInstance() != null; + case UMLPackage.SLOT__DEFINING_FEATURE : + return eVirtualGet(UMLPackage.SLOT__DEFINING_FEATURE) != null; + case UMLPackage.SLOT__VALUE : + List value = (List) eVirtualGet(UMLPackage.SLOT__VALUE); + return value != null && !value.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + InstanceSpecification owningInstance = getOwningInstance(); + if (owningInstance != null) { + return owningInstance; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getSlot_OwningInstance()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getSlot_Value()); + } + +} //SlotImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java new file mode 100644 index 00000000..5bb5d4f9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java @@ -0,0 +1,579 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StartClassifierBehaviorActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StartClassifierBehaviorAction; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StartClassifierBehaviorActionOperations; + +/** + * + * An implementation of the model object 'Start Classifier Behavior Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StartClassifierBehaviorActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StartClassifierBehaviorActionImpl#getObject Object}
  • + *
+ *

+ * + * @generated + */ +public class StartClassifierBehaviorActionImpl + extends ActionImpl + implements StartClassifierBehaviorAction { + + /** + * + * + * @generated + */ + protected StartClassifierBehaviorActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStartClassifierBehaviorAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStartClassifierBehaviorAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT, + null, msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT, + null, msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT, newObject, + newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return StartClassifierBehaviorActionOperations.validateMultiplicity( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeHasClassifier(DiagnosticChain diagnostics, + Map context) { + return StartClassifierBehaviorActionOperations + .validateTypeHasClassifier(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY, + msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT : + return basicSetObject(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME : + return getName(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INPUT : + return getInputs(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CONTEXT : + return getContext(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT : + return getObject(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT : + setObject((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT : + return eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getStartClassifierBehaviorAction_Object()); + } + +} //StartClassifierBehaviorActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java new file mode 100644 index 00000000..d7318948 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java @@ -0,0 +1,1894 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ConnectionPointReference; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.RedefinableElementOperations; +import org.eclipse.uml2.uml.internal.operations.StateOperations; + +/** + * + * An implementation of the model object 'State'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#isLeaf Is Leaf}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getOutgoings Outgoing}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getIncomings Incoming}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getContainer Container}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#isComposite Is Composite}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#isOrthogonal Is Orthogonal}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#isSimple Is Simple}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#isSubmachineState Is Submachine State}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getSubmachine Submachine}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getConnections Connection}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getConnectionPoints Connection Point}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRedefinedState Redefined State}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getStateInvariant State Invariant}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getEntry Entry}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getExit Exit}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getDoActivity Do Activity}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getDeferrableTriggers Deferrable Trigger}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRegions Region}
  • + *
+ *

+ * + * @generated + */ +public class StateImpl + extends NamespaceImpl + implements State { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final boolean IS_LEAF_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isLeaf() Is Leaf}' attribute. + * + * + * @see #isLeaf() + * @generated + * @ordered + */ + protected static final int IS_LEAF_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isComposite() Is Composite}' attribute. + * + * + * @see #isComposite() + * @generated + * @ordered + */ + protected static final boolean IS_COMPOSITE_EDEFAULT = false; + + /** + * The default value of the '{@link #isOrthogonal() Is Orthogonal}' attribute. + * + * + * @see #isOrthogonal() + * @generated + * @ordered + */ + protected static final boolean IS_ORTHOGONAL_EDEFAULT = false; + + /** + * The default value of the '{@link #isSimple() Is Simple}' attribute. + * + * + * @see #isSimple() + * @generated + * @ordered + */ + protected static final boolean IS_SIMPLE_EDEFAULT = false; + + /** + * The default value of the '{@link #isSubmachineState() Is Submachine State}' attribute. + * + * + * @see #isSubmachineState() + * @generated + * @ordered + */ + protected static final boolean IS_SUBMACHINE_STATE_EDEFAULT = false; + + /** + * + * + * @generated + */ + protected StateImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getState(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.STATE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.STATE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.STATE__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getState_RedefinedState()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public RedefinableElement getRedefinedElement(String name) { + for (Iterator i = getRedefinedElements().iterator(); i.hasNext();) { + RedefinableElement redefinedElement = (RedefinableElement) i.next(); + if (name.equals(redefinedElement.getName())) { + return redefinedElement; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + // TODO: implement this method to return the 'Redefinition Context' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Classifier getRedefinitionContext(String name) { + for (Iterator i = getRedefinitionContexts().iterator(); i.hasNext();) { + Classifier redefinitionContext = (Classifier) i.next(); + if (name.equals(redefinitionContext.getName())) { + return redefinitionContext; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return !getRedefinitionContexts().isEmpty(); + } + + /** + * + * + * @generated + */ + public boolean isLeaf() { + return (eFlags & IS_LEAF_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsLeaf(boolean newIsLeaf) { + boolean oldIsLeaf = (eFlags & IS_LEAF_EFLAG) != 0; + if (newIsLeaf) + eFlags |= IS_LEAF_EFLAG; + else + eFlags &= ~IS_LEAF_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__IS_LEAF, oldIsLeaf, newIsLeaf)); + + } + + /** + * + * + * @generated + */ + public List getOutgoings() { + List outgoing = (List) eVirtualGet(UMLPackage.STATE__OUTGOING); + if (outgoing == null) { + eVirtualSet(UMLPackage.STATE__OUTGOING, + outgoing = new EObjectWithInverseResolvingEList( + Transition.class, this, UMLPackage.STATE__OUTGOING, + UMLPackage.TRANSITION__SOURCE)); + } + return outgoing; + } + + /** + * + * + * @generated + */ + public Transition getOutgoing(String name) { + for (Iterator i = getOutgoings().iterator(); i.hasNext();) { + Transition outgoing = (Transition) i.next(); + if (name.equals(outgoing.getName())) { + return outgoing; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getIncomings() { + List incoming = (List) eVirtualGet(UMLPackage.STATE__INCOMING); + if (incoming == null) { + eVirtualSet(UMLPackage.STATE__INCOMING, + incoming = new EObjectWithInverseResolvingEList( + Transition.class, this, UMLPackage.STATE__INCOMING, + UMLPackage.TRANSITION__TARGET)); + } + return incoming; + } + + /** + * + * + * @generated + */ + public Transition getIncoming(String name) { + for (Iterator i = getIncomings().iterator(); i.hasNext();) { + Transition incoming = (Transition) i.next(); + if (name.equals(incoming.getName())) { + return incoming; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Region getContainer() { + if (eContainerFeatureID != UMLPackage.STATE__CONTAINER) + return null; + return (Region) eContainer; + } + + /** + * + * + * @generated + */ + public void setContainer(Region newContainer) { + if (newContainer != eContainer + || (eContainerFeatureID != UMLPackage.STATE__CONTAINER && newContainer != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newContainer)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newContainer != null) + msgs = ((InternalEObject) newContainer).eInverseAdd(this, + UMLPackage.REGION__SUBVERTEX, Region.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newContainer, + UMLPackage.STATE__CONTAINER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__CONTAINER, newContainer, newContainer)); + + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.STATE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.STATE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.STATE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getState_Connection(), + UMLPackage.eINSTANCE.getState_Region()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.STATE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.STATE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.STATE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getState_ConnectionPoint(), + UMLPackage.eINSTANCE.getState_StateInvariant(), + UMLPackage.eINSTANCE.getState_Entry(), + UMLPackage.eINSTANCE.getState_Exit(), + UMLPackage.eINSTANCE.getState_DoActivity()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isComposite() { + // TODO: implement this method to return the 'Is Composite' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean isOrthogonal() { + // TODO: implement this method to return the 'Is Orthogonal' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean isSimple() { + // TODO: implement this method to return the 'Is Simple' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean isSubmachineState() { + // TODO: implement this method to return the 'Is Submachine State' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public StateMachine getSubmachine() { + StateMachine submachine = (StateMachine) eVirtualGet(UMLPackage.STATE__SUBMACHINE); + if (submachine != null && submachine.eIsProxy()) { + StateMachine oldSubmachine = submachine; + submachine = (StateMachine) eResolveProxy((InternalEObject) submachine); + if (submachine != oldSubmachine) { + eVirtualSet(UMLPackage.STATE__SUBMACHINE, submachine); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.STATE__SUBMACHINE, oldSubmachine, submachine)); + } + } + return submachine; + } + + /** + * + * + * @generated + */ + public StateMachine basicGetSubmachine() { + return (StateMachine) eVirtualGet(UMLPackage.STATE__SUBMACHINE); + } + + /** + * + * + * @generated + */ + public void setSubmachine(StateMachine newSubmachine) { + StateMachine submachine = newSubmachine; + Object oldSubmachine = eVirtualSet(UMLPackage.STATE__SUBMACHINE, + submachine); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__SUBMACHINE, + oldSubmachine == EVIRTUAL_NO_VALUE + ? null + : oldSubmachine, submachine)); + + } + + /** + * + * + * @generated + */ + public List getConnections() { + List connection = (List) eVirtualGet(UMLPackage.STATE__CONNECTION); + if (connection == null) { + eVirtualSet(UMLPackage.STATE__CONNECTION, + connection = new EObjectContainmentWithInverseEList( + ConnectionPointReference.class, this, + UMLPackage.STATE__CONNECTION, + UMLPackage.CONNECTION_POINT_REFERENCE__STATE)); + } + return connection; + } + + /** + * + * + * @generated + */ + public ConnectionPointReference createConnection() { + ConnectionPointReference newConnection = UMLFactory.eINSTANCE + .createConnectionPointReference(); + getConnections().add(newConnection); + return newConnection; + } + + /** + * + * + * @generated + */ + public ConnectionPointReference getConnection(String name) { + for (Iterator i = getConnections().iterator(); i.hasNext();) { + ConnectionPointReference connection = (ConnectionPointReference) i + .next(); + if (name.equals(connection.getName())) { + return connection; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getConnectionPoints() { + List connectionPoint = (List) eVirtualGet(UMLPackage.STATE__CONNECTION_POINT); + if (connectionPoint == null) { + eVirtualSet(UMLPackage.STATE__CONNECTION_POINT, + connectionPoint = new EObjectContainmentWithInverseEList( + Pseudostate.class, this, + UMLPackage.STATE__CONNECTION_POINT, + UMLPackage.PSEUDOSTATE__STATE)); + } + return connectionPoint; + } + + /** + * + * + * @generated + */ + public Pseudostate createConnectionPoint() { + Pseudostate newConnectionPoint = UMLFactory.eINSTANCE + .createPseudostate(); + getConnectionPoints().add(newConnectionPoint); + return newConnectionPoint; + } + + /** + * + * + * @generated + */ + public Pseudostate getConnectionPoint(String name) { + for (Iterator i = getConnectionPoints().iterator(); i.hasNext();) { + Pseudostate connectionPoint = (Pseudostate) i.next(); + if (name.equals(connectionPoint.getName())) { + return connectionPoint; + } + } + return null; + } + + /** + * + * + * @generated + */ + public State getRedefinedState() { + State redefinedState = (State) eVirtualGet(UMLPackage.STATE__REDEFINED_STATE); + if (redefinedState != null && redefinedState.eIsProxy()) { + State oldRedefinedState = redefinedState; + redefinedState = (State) eResolveProxy((InternalEObject) redefinedState); + if (redefinedState != oldRedefinedState) { + eVirtualSet(UMLPackage.STATE__REDEFINED_STATE, redefinedState); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.STATE__REDEFINED_STATE, oldRedefinedState, + redefinedState)); + } + } + return redefinedState; + } + + /** + * + * + * @generated + */ + public State basicGetRedefinedState() { + return (State) eVirtualGet(UMLPackage.STATE__REDEFINED_STATE); + } + + /** + * + * + * @generated + */ + public void setRedefinedState(State newRedefinedState) { + State redefinedState = newRedefinedState; + Object oldRedefinedState = eVirtualSet( + UMLPackage.STATE__REDEFINED_STATE, redefinedState); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__REDEFINED_STATE, + oldRedefinedState == EVIRTUAL_NO_VALUE + ? null + : oldRedefinedState, redefinedState)); + + } + + /** + * + * + * @generated + */ + public Constraint getStateInvariant() { + Constraint stateInvariant = (Constraint) eVirtualGet(UMLPackage.STATE__STATE_INVARIANT); + return stateInvariant; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetStateInvariant( + Constraint newStateInvariant, NotificationChain msgs) { + Object oldStateInvariant = eVirtualSet( + UMLPackage.STATE__STATE_INVARIANT, newStateInvariant); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STATE__STATE_INVARIANT, + oldStateInvariant == EVIRTUAL_NO_VALUE + ? null + : oldStateInvariant, newStateInvariant); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setStateInvariant(Constraint newStateInvariant) { + Constraint stateInvariant = (Constraint) eVirtualGet(UMLPackage.STATE__STATE_INVARIANT); + if (newStateInvariant != stateInvariant) { + NotificationChain msgs = null; + if (stateInvariant != null) + msgs = ((InternalEObject) stateInvariant).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.STATE__STATE_INVARIANT, + null, msgs); + if (newStateInvariant != null) + msgs = ((InternalEObject) newStateInvariant).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.STATE__STATE_INVARIANT, + null, msgs); + msgs = basicSetStateInvariant(newStateInvariant, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__STATE_INVARIANT, newStateInvariant, + newStateInvariant)); + + } + + /** + * + * + * @generated + */ + public Constraint createStateInvariant(EClass eClass) { + Constraint newStateInvariant = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setStateInvariant(newStateInvariant); + return newStateInvariant; + } + + /** + * + * + * @generated + */ + public Constraint createStateInvariant() { + Constraint newStateInvariant = UMLFactory.eINSTANCE.createConstraint(); + setStateInvariant(newStateInvariant); + return newStateInvariant; + } + + /** + * + * + * @generated + */ + public Behavior getEntry() { + Behavior entry = (Behavior) eVirtualGet(UMLPackage.STATE__ENTRY); + return entry; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetEntry(Behavior newEntry, + NotificationChain msgs) { + Object oldEntry = eVirtualSet(UMLPackage.STATE__ENTRY, newEntry); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STATE__ENTRY, + oldEntry == EVIRTUAL_NO_VALUE + ? null + : oldEntry, newEntry); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setEntry(Behavior newEntry) { + Behavior entry = (Behavior) eVirtualGet(UMLPackage.STATE__ENTRY); + if (newEntry != entry) { + NotificationChain msgs = null; + if (entry != null) + msgs = ((InternalEObject) entry).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.STATE__ENTRY, null, + msgs); + if (newEntry != null) + msgs = ((InternalEObject) newEntry).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.STATE__ENTRY, null, + msgs); + msgs = basicSetEntry(newEntry, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__ENTRY, newEntry, newEntry)); + + } + + /** + * + * + * @generated + */ + public Behavior createEntry(EClass eClass) { + Behavior newEntry = (Behavior) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setEntry(newEntry); + return newEntry; + } + + /** + * + * + * @generated + */ + public Behavior createEntry() { + Behavior newEntry = UMLFactory.eINSTANCE.createBehavior(); + setEntry(newEntry); + return newEntry; + } + + /** + * + * + * @generated + */ + public Behavior getExit() { + Behavior exit = (Behavior) eVirtualGet(UMLPackage.STATE__EXIT); + return exit; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExit(Behavior newExit, + NotificationChain msgs) { + Object oldExit = eVirtualSet(UMLPackage.STATE__EXIT, newExit); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STATE__EXIT, + oldExit == EVIRTUAL_NO_VALUE + ? null + : oldExit, newExit); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setExit(Behavior newExit) { + Behavior exit = (Behavior) eVirtualGet(UMLPackage.STATE__EXIT); + if (newExit != exit) { + NotificationChain msgs = null; + if (exit != null) + msgs = ((InternalEObject) exit) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.STATE__EXIT, null, msgs); + if (newExit != null) + msgs = ((InternalEObject) newExit) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.STATE__EXIT, null, msgs); + msgs = basicSetExit(newExit, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__EXIT, newExit, newExit)); + + } + + /** + * + * + * @generated + */ + public Behavior createExit(EClass eClass) { + Behavior newExit = (Behavior) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setExit(newExit); + return newExit; + } + + /** + * + * + * @generated + */ + public Behavior createExit() { + Behavior newExit = UMLFactory.eINSTANCE.createBehavior(); + setExit(newExit); + return newExit; + } + + /** + * + * + * @generated + */ + public Behavior getDoActivity() { + Behavior doActivity = (Behavior) eVirtualGet(UMLPackage.STATE__DO_ACTIVITY); + return doActivity; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetDoActivity(Behavior newDoActivity, + NotificationChain msgs) { + Object oldDoActivity = eVirtualSet(UMLPackage.STATE__DO_ACTIVITY, + newDoActivity); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STATE__DO_ACTIVITY, + oldDoActivity == EVIRTUAL_NO_VALUE + ? null + : oldDoActivity, newDoActivity); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setDoActivity(Behavior newDoActivity) { + Behavior doActivity = (Behavior) eVirtualGet(UMLPackage.STATE__DO_ACTIVITY); + if (newDoActivity != doActivity) { + NotificationChain msgs = null; + if (doActivity != null) + msgs = ((InternalEObject) doActivity).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.STATE__DO_ACTIVITY, + null, msgs); + if (newDoActivity != null) + msgs = ((InternalEObject) newDoActivity).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.STATE__DO_ACTIVITY, + null, msgs); + msgs = basicSetDoActivity(newDoActivity, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE__DO_ACTIVITY, newDoActivity, newDoActivity)); + + } + + /** + * + * + * @generated + */ + public Behavior createDoActivity(EClass eClass) { + Behavior newDoActivity = (Behavior) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setDoActivity(newDoActivity); + return newDoActivity; + } + + /** + * + * + * @generated + */ + public Behavior createDoActivity() { + Behavior newDoActivity = UMLFactory.eINSTANCE.createBehavior(); + setDoActivity(newDoActivity); + return newDoActivity; + } + + /** + * + * + * @generated + */ + public List getDeferrableTriggers() { + List deferrableTrigger = (List) eVirtualGet(UMLPackage.STATE__DEFERRABLE_TRIGGER); + if (deferrableTrigger == null) { + eVirtualSet(UMLPackage.STATE__DEFERRABLE_TRIGGER, + deferrableTrigger = new EObjectContainmentEList(Trigger.class, + this, UMLPackage.STATE__DEFERRABLE_TRIGGER)); + } + return deferrableTrigger; + } + + /** + * + * + * @generated + */ + public Trigger createDeferrableTrigger() { + Trigger newDeferrableTrigger = UMLFactory.eINSTANCE.createTrigger(); + getDeferrableTriggers().add(newDeferrableTrigger); + return newDeferrableTrigger; + } + + /** + * + * + * @generated + */ + public Trigger getDeferrableTrigger(String name) { + for (Iterator i = getDeferrableTriggers().iterator(); i.hasNext();) { + Trigger deferrableTrigger = (Trigger) i.next(); + if (name.equals(deferrableTrigger.getName())) { + return deferrableTrigger; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getRegions() { + List region = (List) eVirtualGet(UMLPackage.STATE__REGION); + if (region == null) { + eVirtualSet(UMLPackage.STATE__REGION, + region = new EObjectContainmentWithInverseEList(Region.class, + this, UMLPackage.STATE__REGION, UMLPackage.REGION__STATE)); + } + return region; + } + + /** + * + * + * @generated + */ + public Region createRegion() { + Region newRegion = UMLFactory.eINSTANCE.createRegion(); + getRegions().add(newRegion); + return newRegion; + } + + /** + * + * + * @generated + */ + public Region getRegion(String name) { + for (Iterator i = getRegions().iterator(); i.hasNext();) { + Region region = (Region) i.next(); + if (name.equals(region.getName())) { + return region; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionContextValid( + DiagnosticChain diagnostics, Map context) { + return RedefinableElementOperations.validateRedefinitionContextValid( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics, + Map context) { + return RedefinableElementOperations.validateRedefinitionConsistent( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid(RedefinableElement redefinable) { + return RedefinableElementOperations.isRedefinitionContextValid(this, + redefinable); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return StateOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid() { + return StateOperations.isRedefinitionContextValid(this); + } + + /** + * + * + * @generated + */ + public boolean validateRegions(DiagnosticChain diagnostics, Map context) { + return StateOperations.validateRegions(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSubmachineStates(DiagnosticChain diagnostics, + Map context) { + return StateOperations.validateSubmachineStates(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateDestinationsOrSourcesOfTransitions( + DiagnosticChain diagnostics, Map context) { + return StateOperations.validateDestinationsOrSourcesOfTransitions(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSubmachineOrRegions(DiagnosticChain diagnostics, + Map context) { + return StateOperations.validateSubmachineOrRegions(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateCompositeStates(DiagnosticChain diagnostics, + Map context) { + return StateOperations.validateCompositeStates(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEntryOrExit(DiagnosticChain diagnostics, Map context) { + return StateOperations.validateEntryOrExit(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Classifier redefinitionContext() { + return StateOperations.redefinitionContext(this); + } + + /** + * + * + * @generated + */ + public StateMachine containingStateMachine() { + return StateOperations.containingStateMachine(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STATE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.STATE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.STATE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.STATE__CONTAINER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.STATE__CONTAINER, msgs); + case UMLPackage.STATE__CONNECTION : + return ((InternalEList) getConnections()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE__CONNECTION_POINT : + return ((InternalEList) getConnectionPoints()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE__REGION : + return ((InternalEList) getRegions()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STATE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STATE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__CONTAINER : + return eBasicSetContainer(null, + UMLPackage.STATE__CONTAINER, msgs); + case UMLPackage.STATE__CONNECTION : + return ((InternalEList) getConnections()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__CONNECTION_POINT : + return ((InternalEList) getConnectionPoints()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE__STATE_INVARIANT : + return basicSetStateInvariant(null, msgs); + case UMLPackage.STATE__ENTRY : + return basicSetEntry(null, msgs); + case UMLPackage.STATE__EXIT : + return basicSetExit(null, msgs); + case UMLPackage.STATE__DO_ACTIVITY : + return basicSetDoActivity(null, msgs); + case UMLPackage.STATE__DEFERRABLE_TRIGGER : + return ((InternalEList) getDeferrableTriggers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE__REGION : + return ((InternalEList) getRegions()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.STATE__CONTAINER : + return eContainer.eInverseRemove(this, + UMLPackage.REGION__SUBVERTEX, Region.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STATE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STATE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STATE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STATE__NAME : + return getName(); + case UMLPackage.STATE__VISIBILITY : + return getVisibility(); + case UMLPackage.STATE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STATE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STATE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STATE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STATE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.STATE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.STATE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.STATE__MEMBER : + return getMembers(); + case UMLPackage.STATE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.STATE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.STATE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STATE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STATE__OUTGOING : + return getOutgoings(); + case UMLPackage.STATE__INCOMING : + return getIncomings(); + case UMLPackage.STATE__CONTAINER : + return getContainer(); + case UMLPackage.STATE__IS_COMPOSITE : + return isComposite() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE__IS_ORTHOGONAL : + return isOrthogonal() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE__IS_SIMPLE : + return isSimple() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE__IS_SUBMACHINE_STATE : + return isSubmachineState() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE__SUBMACHINE : + if (resolve) + return getSubmachine(); + return basicGetSubmachine(); + case UMLPackage.STATE__CONNECTION : + return getConnections(); + case UMLPackage.STATE__CONNECTION_POINT : + return getConnectionPoints(); + case UMLPackage.STATE__REDEFINED_STATE : + if (resolve) + return getRedefinedState(); + return basicGetRedefinedState(); + case UMLPackage.STATE__STATE_INVARIANT : + return getStateInvariant(); + case UMLPackage.STATE__ENTRY : + return getEntry(); + case UMLPackage.STATE__EXIT : + return getExit(); + case UMLPackage.STATE__DO_ACTIVITY : + return getDoActivity(); + case UMLPackage.STATE__DEFERRABLE_TRIGGER : + return getDeferrableTriggers(); + case UMLPackage.STATE__REGION : + return getRegions(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STATE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STATE__NAME : + setName((String) newValue); + return; + case UMLPackage.STATE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STATE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STATE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STATE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.STATE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.STATE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.STATE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STATE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.STATE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.STATE__CONTAINER : + setContainer((Region) newValue); + return; + case UMLPackage.STATE__SUBMACHINE : + setSubmachine((StateMachine) newValue); + return; + case UMLPackage.STATE__CONNECTION : + getConnections().clear(); + getConnections().addAll((Collection) newValue); + return; + case UMLPackage.STATE__CONNECTION_POINT : + getConnectionPoints().clear(); + getConnectionPoints().addAll((Collection) newValue); + return; + case UMLPackage.STATE__REDEFINED_STATE : + setRedefinedState((State) newValue); + return; + case UMLPackage.STATE__STATE_INVARIANT : + setStateInvariant((Constraint) newValue); + return; + case UMLPackage.STATE__ENTRY : + setEntry((Behavior) newValue); + return; + case UMLPackage.STATE__EXIT : + setExit((Behavior) newValue); + return; + case UMLPackage.STATE__DO_ACTIVITY : + setDoActivity((Behavior) newValue); + return; + case UMLPackage.STATE__DEFERRABLE_TRIGGER : + getDeferrableTriggers().clear(); + getDeferrableTriggers().addAll((Collection) newValue); + return; + case UMLPackage.STATE__REGION : + getRegions().clear(); + getRegions().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STATE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STATE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STATE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STATE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STATE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STATE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.STATE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.STATE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.STATE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STATE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.STATE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.STATE__CONTAINER : + setContainer((Region) null); + return; + case UMLPackage.STATE__SUBMACHINE : + setSubmachine((StateMachine) null); + return; + case UMLPackage.STATE__CONNECTION : + getConnections().clear(); + return; + case UMLPackage.STATE__CONNECTION_POINT : + getConnectionPoints().clear(); + return; + case UMLPackage.STATE__REDEFINED_STATE : + setRedefinedState((State) null); + return; + case UMLPackage.STATE__STATE_INVARIANT : + setStateInvariant((Constraint) null); + return; + case UMLPackage.STATE__ENTRY : + setEntry((Behavior) null); + return; + case UMLPackage.STATE__EXIT : + setExit((Behavior) null); + return; + case UMLPackage.STATE__DO_ACTIVITY : + setDoActivity((Behavior) null); + return; + case UMLPackage.STATE__DEFERRABLE_TRIGGER : + getDeferrableTriggers().clear(); + return; + case UMLPackage.STATE__REGION : + getRegions().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STATE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STATE__OWNER : + return isSetOwner(); + case UMLPackage.STATE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STATE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STATE__NAME : + String name = eVirtualIsSet(UMLPackage.STATE__NAME) + ? (String) eVirtualGet(UMLPackage.STATE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STATE__VISIBILITY : + return eVirtualIsSet(UMLPackage.STATE__VISIBILITY) + && eVirtualGet(UMLPackage.STATE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STATE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STATE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STATE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STATE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STATE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STATE__NAME_EXPRESSION) != null; + case UMLPackage.STATE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.STATE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.STATE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.STATE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.STATE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.STATE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.STATE__MEMBER : + return isSetMembers(); + case UMLPackage.STATE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.STATE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.STATE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STATE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STATE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STATE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.STATE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.STATE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.STATE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.STATE__CONTAINER : + return getContainer() != null; + case UMLPackage.STATE__IS_COMPOSITE : + return isComposite() != IS_COMPOSITE_EDEFAULT; + case UMLPackage.STATE__IS_ORTHOGONAL : + return isOrthogonal() != IS_ORTHOGONAL_EDEFAULT; + case UMLPackage.STATE__IS_SIMPLE : + return isSimple() != IS_SIMPLE_EDEFAULT; + case UMLPackage.STATE__IS_SUBMACHINE_STATE : + return isSubmachineState() != IS_SUBMACHINE_STATE_EDEFAULT; + case UMLPackage.STATE__SUBMACHINE : + return eVirtualGet(UMLPackage.STATE__SUBMACHINE) != null; + case UMLPackage.STATE__CONNECTION : + List connection = (List) eVirtualGet(UMLPackage.STATE__CONNECTION); + return connection != null && !connection.isEmpty(); + case UMLPackage.STATE__CONNECTION_POINT : + List connectionPoint = (List) eVirtualGet(UMLPackage.STATE__CONNECTION_POINT); + return connectionPoint != null && !connectionPoint.isEmpty(); + case UMLPackage.STATE__REDEFINED_STATE : + return eVirtualGet(UMLPackage.STATE__REDEFINED_STATE) != null; + case UMLPackage.STATE__STATE_INVARIANT : + return eVirtualGet(UMLPackage.STATE__STATE_INVARIANT) != null; + case UMLPackage.STATE__ENTRY : + return eVirtualGet(UMLPackage.STATE__ENTRY) != null; + case UMLPackage.STATE__EXIT : + return eVirtualGet(UMLPackage.STATE__EXIT) != null; + case UMLPackage.STATE__DO_ACTIVITY : + return eVirtualGet(UMLPackage.STATE__DO_ACTIVITY) != null; + case UMLPackage.STATE__DEFERRABLE_TRIGGER : + List deferrableTrigger = (List) eVirtualGet(UMLPackage.STATE__DEFERRABLE_TRIGGER); + return deferrableTrigger != null + && !deferrableTrigger.isEmpty(); + case UMLPackage.STATE__REGION : + List region = (List) eVirtualGet(UMLPackage.STATE__REGION); + return region != null && !region.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.STATE__IS_LEAF : + return UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF; + case UMLPackage.STATE__REDEFINED_ELEMENT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT; + case UMLPackage.STATE__REDEFINITION_CONTEXT : + return UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT; + default : + return -1; + } + } + if (baseClass == Vertex.class) { + switch (derivedFeatureID) { + case UMLPackage.STATE__OUTGOING : + return UMLPackage.VERTEX__OUTGOING; + case UMLPackage.STATE__INCOMING : + return UMLPackage.VERTEX__INCOMING; + case UMLPackage.STATE__CONTAINER : + return UMLPackage.VERTEX__CONTAINER; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == RedefinableElement.class) { + switch (baseFeatureID) { + case UMLPackage.REDEFINABLE_ELEMENT__IS_LEAF : + return UMLPackage.STATE__IS_LEAF; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT : + return UMLPackage.STATE__REDEFINED_ELEMENT; + case UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT : + return UMLPackage.STATE__REDEFINITION_CONTEXT; + default : + return -1; + } + } + if (baseClass == Vertex.class) { + switch (baseFeatureID) { + case UMLPackage.VERTEX__OUTGOING : + return UMLPackage.STATE__OUTGOING; + case UMLPackage.VERTEX__INCOMING : + return UMLPackage.STATE__INCOMING; + case UMLPackage.VERTEX__CONTAINER : + return UMLPackage.STATE__CONTAINER; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isLeaf: "); //$NON-NLS-1$ + result.append((eFlags & IS_LEAF_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return eIsSet(UMLPackage.eINSTANCE.getState_RedefinedState()); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Region container = getContainer(); + if (container != null) { + return container; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getVertex_Container()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getState_Connection()) + || eIsSet(UMLPackage.eINSTANCE.getState_Region()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getState_ConnectionPoint()) + || eIsSet(UMLPackage.eINSTANCE.getState_StateInvariant()) + || eIsSet(UMLPackage.eINSTANCE.getState_Entry()) + || eIsSet(UMLPackage.eINSTANCE.getState_Exit()) + || eIsSet(UMLPackage.eINSTANCE.getState_DoActivity()); + } + + /** + * + * + * @generated + */ + public StateMachine containingStatemachine() { + return containingStateMachine(); + } + +} //StateImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateInvariantImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateInvariantImpl.java new file mode 100644 index 00000000..1e404672 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateInvariantImpl.java @@ -0,0 +1,469 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateInvariantImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.StateInvariant; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'State Invariant'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl#getInvariant Invariant}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl#getCovereds Covered}
  • + *
+ *

+ * + * @generated + */ +public class StateInvariantImpl + extends InteractionFragmentImpl + implements StateInvariant { + + /** + * + * + * @generated + */ + protected StateInvariantImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStateInvariant(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.STATE_INVARIANT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.STATE_INVARIANT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getInteractionFragment_GeneralOrdering(), + UMLPackage.eINSTANCE.getStateInvariant_Invariant()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public Constraint getInvariant() { + Constraint invariant = (Constraint) eVirtualGet(UMLPackage.STATE_INVARIANT__INVARIANT); + return invariant; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInvariant(Constraint newInvariant, + NotificationChain msgs) { + Object oldInvariant = eVirtualSet( + UMLPackage.STATE_INVARIANT__INVARIANT, newInvariant); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STATE_INVARIANT__INVARIANT, + oldInvariant == EVIRTUAL_NO_VALUE + ? null + : oldInvariant, newInvariant); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setInvariant(Constraint newInvariant) { + Constraint invariant = (Constraint) eVirtualGet(UMLPackage.STATE_INVARIANT__INVARIANT); + if (newInvariant != invariant) { + NotificationChain msgs = null; + if (invariant != null) + msgs = ((InternalEObject) invariant).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STATE_INVARIANT__INVARIANT, null, msgs); + if (newInvariant != null) + msgs = ((InternalEObject) newInvariant).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STATE_INVARIANT__INVARIANT, null, msgs); + msgs = basicSetInvariant(newInvariant, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE_INVARIANT__INVARIANT, newInvariant, + newInvariant)); + + } + + /** + * + * + * @generated + */ + public Constraint createInvariant(EClass eClass) { + Constraint newInvariant = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setInvariant(newInvariant); + return newInvariant; + } + + /** + * + * + * @generated + */ + public Constraint createInvariant() { + Constraint newInvariant = UMLFactory.eINSTANCE.createConstraint(); + setInvariant(newInvariant); + return newInvariant; + } + + /** + * + * + * @generated + */ + public List getCovereds() { + List covered = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__COVERED); + if (covered == null) { + eVirtualSet(UMLPackage.STATE_INVARIANT__COVERED, + covered = new EObjectResolvingEList(Lifeline.class, this, + UMLPackage.STATE_INVARIANT__COVERED)); + } + return covered; + } + + /** + * + * + * @generated + */ + public Lifeline getCovered(String name) { + for (Iterator i = getCovereds().iterator(); i.hasNext();) { + Lifeline covered = (Lifeline) i.next(); + if (name.equals(covered.getName())) { + return covered; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetCovereds() { + List covered = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__COVERED); + return covered != null && !covered.isEmpty(); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STATE_INVARIANT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_INVARIANT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_INVARIANT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE_INVARIANT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STATE_INVARIANT__COVERED : + return ((InternalEList) getCovereds()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_INVARIANT__GENERAL_ORDERING : + return ((InternalEList) getGeneralOrderings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_INVARIANT__ENCLOSING_INTERACTION : + return eBasicSetContainer(null, + UMLPackage.STATE_INVARIANT__ENCLOSING_INTERACTION, msgs); + case UMLPackage.STATE_INVARIANT__ENCLOSING_OPERAND : + return eBasicSetContainer(null, + UMLPackage.STATE_INVARIANT__ENCLOSING_OPERAND, msgs); + case UMLPackage.STATE_INVARIANT__INVARIANT : + return basicSetInvariant(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_INVARIANT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STATE_INVARIANT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STATE_INVARIANT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STATE_INVARIANT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STATE_INVARIANT__NAME : + return getName(); + case UMLPackage.STATE_INVARIANT__VISIBILITY : + return getVisibility(); + case UMLPackage.STATE_INVARIANT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STATE_INVARIANT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STATE_INVARIANT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STATE_INVARIANT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STATE_INVARIANT__COVERED : + return getCovereds(); + case UMLPackage.STATE_INVARIANT__GENERAL_ORDERING : + return getGeneralOrderings(); + case UMLPackage.STATE_INVARIANT__ENCLOSING_INTERACTION : + return getEnclosingInteraction(); + case UMLPackage.STATE_INVARIANT__ENCLOSING_OPERAND : + return getEnclosingOperand(); + case UMLPackage.STATE_INVARIANT__INVARIANT : + return getInvariant(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_INVARIANT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STATE_INVARIANT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STATE_INVARIANT__NAME : + setName((String) newValue); + return; + case UMLPackage.STATE_INVARIANT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STATE_INVARIANT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STATE_INVARIANT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STATE_INVARIANT__COVERED : + getCovereds().clear(); + getCovereds().addAll((Collection) newValue); + return; + case UMLPackage.STATE_INVARIANT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + getGeneralOrderings().addAll((Collection) newValue); + return; + case UMLPackage.STATE_INVARIANT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) newValue); + return; + case UMLPackage.STATE_INVARIANT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) newValue); + return; + case UMLPackage.STATE_INVARIANT__INVARIANT : + setInvariant((Constraint) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_INVARIANT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STATE_INVARIANT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STATE_INVARIANT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STATE_INVARIANT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STATE_INVARIANT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STATE_INVARIANT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STATE_INVARIANT__COVERED : + getCovereds().clear(); + return; + case UMLPackage.STATE_INVARIANT__GENERAL_ORDERING : + getGeneralOrderings().clear(); + return; + case UMLPackage.STATE_INVARIANT__ENCLOSING_INTERACTION : + setEnclosingInteraction((Interaction) null); + return; + case UMLPackage.STATE_INVARIANT__ENCLOSING_OPERAND : + setEnclosingOperand((InteractionOperand) null); + return; + case UMLPackage.STATE_INVARIANT__INVARIANT : + setInvariant((Constraint) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_INVARIANT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STATE_INVARIANT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STATE_INVARIANT__OWNER : + return isSetOwner(); + case UMLPackage.STATE_INVARIANT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STATE_INVARIANT__NAME : + String name = eVirtualIsSet(UMLPackage.STATE_INVARIANT__NAME) + ? (String) eVirtualGet(UMLPackage.STATE_INVARIANT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STATE_INVARIANT__VISIBILITY : + return eVirtualIsSet(UMLPackage.STATE_INVARIANT__VISIBILITY) + && eVirtualGet(UMLPackage.STATE_INVARIANT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STATE_INVARIANT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STATE_INVARIANT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STATE_INVARIANT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STATE_INVARIANT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STATE_INVARIANT__NAME_EXPRESSION) != null; + case UMLPackage.STATE_INVARIANT__COVERED : + List covered = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__COVERED); + return covered != null && !covered.isEmpty(); + case UMLPackage.STATE_INVARIANT__GENERAL_ORDERING : + List generalOrdering = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__GENERAL_ORDERING); + return generalOrdering != null && !generalOrdering.isEmpty(); + case UMLPackage.STATE_INVARIANT__ENCLOSING_INTERACTION : + return getEnclosingInteraction() != null; + case UMLPackage.STATE_INVARIANT__ENCLOSING_OPERAND : + return getEnclosingOperand() != null; + case UMLPackage.STATE_INVARIANT__INVARIANT : + return eVirtualGet(UMLPackage.STATE_INVARIANT__INVARIANT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getStateInvariant_Invariant()); + } + +} //StateInvariantImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java new file mode 100644 index 00000000..bbe5380c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java @@ -0,0 +1,1271 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateMachineImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StateMachineOperations; + +/** + * + * An implementation of the model object 'State Machine'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getRegions Region}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getConnectionPoints Connection Point}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getExtendedStateMachine Extended State Machine}
  • + *
+ *

+ * + * @generated + */ +public class StateMachineImpl + extends BehaviorImpl + implements StateMachine { + + /** + * + * + * @generated + */ + protected StateMachineImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStateMachine(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet( + UMLPackage.STATE_MACHINE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.STATE_MACHINE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getClass_OwnedOperation(), + UMLPackage.eINSTANCE.getClass_NestedClassifier(), + UMLPackage.eINSTANCE.getClass_OwnedReception(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameter(), + UMLPackage.eINSTANCE.getBehavior_OwnedParameterSet(), + UMLPackage.eINSTANCE.getStateMachine_Region(), + UMLPackage.eINSTANCE.getStateMachine_ConnectionPoint()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.STATE_MACHINE__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.STATE_MACHINE__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.STATE_MACHINE__REDEFINED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getClassifier_RedefinedClassifier(), + UMLPackage.eINSTANCE.getBehavior_RedefinedBehavior(), + UMLPackage.eINSTANCE + .getStateMachine_ExtendedStateMachine()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getRegions() { + List region = (List) eVirtualGet(UMLPackage.STATE_MACHINE__REGION); + if (region == null) { + eVirtualSet(UMLPackage.STATE_MACHINE__REGION, + region = new EObjectContainmentWithInverseEList(Region.class, + this, UMLPackage.STATE_MACHINE__REGION, + UMLPackage.REGION__STATE_MACHINE)); + } + return region; + } + + /** + * + * + * @generated + */ + public Region createRegion() { + Region newRegion = UMLFactory.eINSTANCE.createRegion(); + getRegions().add(newRegion); + return newRegion; + } + + /** + * + * + * @generated + */ + public Region getRegion(String name) { + for (Iterator i = getRegions().iterator(); i.hasNext();) { + Region region = (Region) i.next(); + if (name.equals(region.getName())) { + return region; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getConnectionPoints() { + List connectionPoint = (List) eVirtualGet(UMLPackage.STATE_MACHINE__CONNECTION_POINT); + if (connectionPoint == null) { + eVirtualSet(UMLPackage.STATE_MACHINE__CONNECTION_POINT, + connectionPoint = new EObjectContainmentWithInverseEList( + Pseudostate.class, this, + UMLPackage.STATE_MACHINE__CONNECTION_POINT, + UMLPackage.PSEUDOSTATE__STATE_MACHINE)); + } + return connectionPoint; + } + + /** + * + * + * @generated + */ + public Pseudostate createConnectionPoint() { + Pseudostate newConnectionPoint = UMLFactory.eINSTANCE + .createPseudostate(); + getConnectionPoints().add(newConnectionPoint); + return newConnectionPoint; + } + + /** + * + * + * @generated + */ + public Pseudostate getConnectionPoint(String name) { + for (Iterator i = getConnectionPoints().iterator(); i.hasNext();) { + Pseudostate connectionPoint = (Pseudostate) i.next(); + if (name.equals(connectionPoint.getName())) { + return connectionPoint; + } + } + return null; + } + + /** + * + * + * @generated + */ + public StateMachine getExtendedStateMachine() { + StateMachine extendedStateMachine = (StateMachine) eVirtualGet(UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE); + if (extendedStateMachine != null && extendedStateMachine.eIsProxy()) { + StateMachine oldExtendedStateMachine = extendedStateMachine; + extendedStateMachine = (StateMachine) eResolveProxy((InternalEObject) extendedStateMachine); + if (extendedStateMachine != oldExtendedStateMachine) { + eVirtualSet(UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE, + extendedStateMachine); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE, + oldExtendedStateMachine, extendedStateMachine)); + } + } + return extendedStateMachine; + } + + /** + * + * + * @generated + */ + public StateMachine basicGetExtendedStateMachine() { + return (StateMachine) eVirtualGet(UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE); + } + + /** + * + * + * @generated + */ + public void setExtendedStateMachine(StateMachine newExtendedStateMachine) { + StateMachine extendedStateMachine = newExtendedStateMachine; + Object oldExtendedStateMachine = eVirtualSet( + UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE, + extendedStateMachine); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE, + oldExtendedStateMachine == EVIRTUAL_NO_VALUE + ? null + : oldExtendedStateMachine, extendedStateMachine)); + + } + + /** + * + * + * @generated + */ + public boolean validateClassifierContext(DiagnosticChain diagnostics, + Map context) { + return StateMachineOperations.validateClassifierContext(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateContextClassifier(DiagnosticChain diagnostics, + Map context) { + return StateMachineOperations.validateContextClassifier(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateConnectionPoints(DiagnosticChain diagnostics, + Map context) { + return StateMachineOperations.validateConnectionPoints(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMethod(DiagnosticChain diagnostics, Map context) { + return StateMachineOperations + .validateMethod(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Namespace LCA(State s1, State s2) { + return StateMachineOperations.LCA(this, s1, s2); + } + + /** + * + * + * @generated + */ + public boolean ancestor(State s1, State s2) { + return StateMachineOperations.ancestor(this, s1, s2); + } + + /** + * + * + * @generated + */ + public boolean isRedefinitionContextValid() { + return StateMachineOperations.isRedefinitionContextValid(this); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return StateMachineOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STATE_MACHINE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.STATE_MACHINE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.STATE_MACHINE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.STATE_MACHINE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.STATE_MACHINE__OWNED_SIGNATURE, + null, msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicAdd( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__SPECIFICATION : + BehavioralFeature specification = (BehavioralFeature) eVirtualGet(UMLPackage.STATE_MACHINE__SPECIFICATION); + if (specification != null) + msgs = ((InternalEObject) specification) + .eInverseRemove(this, + UMLPackage.BEHAVIORAL_FEATURE__METHOD, + BehavioralFeature.class, msgs); + return basicSetSpecification((BehavioralFeature) otherEnd, + msgs); + case UMLPackage.STATE_MACHINE__REGION : + return ((InternalEList) getRegions()).basicAdd(otherEnd, + msgs); + case UMLPackage.STATE_MACHINE__CONNECTION_POINT : + return ((InternalEList) getConnectionPoints()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STATE_MACHINE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE_MACHINE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STATE_MACHINE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.STATE_MACHINE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.STATE_MACHINE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.STATE_MACHINE__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_OPERATION : + return ((InternalEList) getOwnedOperations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__NESTED_CLASSIFIER : + return ((InternalEList) getNestedClassifiers()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_RECEPTION : + return ((InternalEList) getOwnedReceptions()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STATE_MACHINE__SPECIFICATION : + return basicSetSpecification(null, msgs); + case UMLPackage.STATE_MACHINE__REGION : + return ((InternalEList) getRegions()).basicRemove(otherEnd, + msgs); + case UMLPackage.STATE_MACHINE__CONNECTION_POINT : + return ((InternalEList) getConnectionPoints()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_MACHINE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STATE_MACHINE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STATE_MACHINE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STATE_MACHINE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STATE_MACHINE__NAME : + return getName(); + case UMLPackage.STATE_MACHINE__VISIBILITY : + return getVisibility(); + case UMLPackage.STATE_MACHINE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STATE_MACHINE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STATE_MACHINE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STATE_MACHINE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.STATE_MACHINE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.STATE_MACHINE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.STATE_MACHINE__MEMBER : + return getMembers(); + case UMLPackage.STATE_MACHINE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.STATE_MACHINE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.STATE_MACHINE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE_MACHINE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STATE_MACHINE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.STATE_MACHINE__PACKAGE : + return getPackage(); + case UMLPackage.STATE_MACHINE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.STATE_MACHINE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE_MACHINE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.STATE_MACHINE__FEATURE : + return getFeatures(); + case UMLPackage.STATE_MACHINE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.STATE_MACHINE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.STATE_MACHINE__GENERAL : + return getGenerals(); + case UMLPackage.STATE_MACHINE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.STATE_MACHINE__USE_CASE : + return getUseCases(); + case UMLPackage.STATE_MACHINE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.STATE_MACHINE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.STATE_MACHINE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.STATE_MACHINE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.STATE_MACHINE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.STATE_MACHINE__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.STATE_MACHINE__PART : + return getParts(); + case UMLPackage.STATE_MACHINE__ROLE : + return getRoles(); + case UMLPackage.STATE_MACHINE__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.STATE_MACHINE__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.STATE_MACHINE__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.STATE_MACHINE__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.STATE_MACHINE__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.STATE_MACHINE__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.STATE_MACHINE__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.STATE_MACHINE__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.STATE_MACHINE__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE_MACHINE__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.STATE_MACHINE__EXTENSION : + return getExtensions(); + case UMLPackage.STATE_MACHINE__IS_REENTRANT : + return isReentrant() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STATE_MACHINE__REDEFINED_BEHAVIOR : + return getRedefinedBehaviors(); + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.STATE_MACHINE__CONTEXT : + if (resolve) + return getContext(); + return basicGetContext(); + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.STATE_MACHINE__SPECIFICATION : + if (resolve) + return getSpecification(); + return basicGetSpecification(); + case UMLPackage.STATE_MACHINE__REGION : + return getRegions(); + case UMLPackage.STATE_MACHINE__CONNECTION_POINT : + return getConnectionPoints(); + case UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE : + if (resolve) + return getExtendedStateMachine(); + return basicGetExtendedStateMachine(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_MACHINE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__NAME : + setName((String) newValue); + return; + case UMLPackage.STATE_MACHINE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STATE_MACHINE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STATE_MACHINE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.STATE_MACHINE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.STATE_MACHINE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STATE_MACHINE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.STATE_MACHINE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STATE_MACHINE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__IS_REENTRANT : + setIsReentrant(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STATE_MACHINE__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + getRedefinedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__CONTEXT : + setContext((BehavioredClassifier) newValue); + return; + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__SPECIFICATION : + setSpecification((BehavioralFeature) newValue); + return; + case UMLPackage.STATE_MACHINE__REGION : + getRegions().clear(); + getRegions().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__CONNECTION_POINT : + getConnectionPoints().clear(); + getConnectionPoints().addAll((Collection) newValue); + return; + case UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE : + setExtendedStateMachine((StateMachine) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_MACHINE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STATE_MACHINE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STATE_MACHINE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STATE_MACHINE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STATE_MACHINE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.STATE_MACHINE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.STATE_MACHINE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STATE_MACHINE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.STATE_MACHINE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.STATE_MACHINE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.STATE_MACHINE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.STATE_MACHINE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.STATE_MACHINE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.STATE_MACHINE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.STATE_MACHINE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.STATE_MACHINE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.STATE_MACHINE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.STATE_MACHINE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.STATE_MACHINE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.STATE_MACHINE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.STATE_MACHINE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.STATE_MACHINE__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.STATE_MACHINE__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.STATE_MACHINE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.STATE_MACHINE__IS_REENTRANT : + setIsReentrant(IS_REENTRANT_EDEFAULT); + return; + case UMLPackage.STATE_MACHINE__REDEFINED_BEHAVIOR : + getRedefinedBehaviors().clear(); + return; + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.STATE_MACHINE__CONTEXT : + setContext((BehavioredClassifier) null); + return; + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.STATE_MACHINE__SPECIFICATION : + setSpecification((BehavioralFeature) null); + return; + case UMLPackage.STATE_MACHINE__REGION : + getRegions().clear(); + return; + case UMLPackage.STATE_MACHINE__CONNECTION_POINT : + getConnectionPoints().clear(); + return; + case UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE : + setExtendedStateMachine((StateMachine) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STATE_MACHINE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STATE_MACHINE__OWNER : + return isSetOwner(); + case UMLPackage.STATE_MACHINE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STATE_MACHINE__NAME : + String name = eVirtualIsSet(UMLPackage.STATE_MACHINE__NAME) + ? (String) eVirtualGet(UMLPackage.STATE_MACHINE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STATE_MACHINE__VISIBILITY : + return eVirtualIsSet(UMLPackage.STATE_MACHINE__VISIBILITY) + && eVirtualGet(UMLPackage.STATE_MACHINE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STATE_MACHINE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STATE_MACHINE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STATE_MACHINE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STATE_MACHINE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STATE_MACHINE__NAME_EXPRESSION) != null; + case UMLPackage.STATE_MACHINE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.STATE_MACHINE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.STATE_MACHINE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.STATE_MACHINE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.STATE_MACHINE__MEMBER : + return isSetMembers(); + case UMLPackage.STATE_MACHINE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.STATE_MACHINE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STATE_MACHINE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STATE_MACHINE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.STATE_MACHINE__TEMPLATE_PARAMETER) != null; + case UMLPackage.STATE_MACHINE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.STATE_MACHINE__PACKAGE : + return getPackage() != null; + case UMLPackage.STATE_MACHINE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.STATE_MACHINE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.STATE_MACHINE__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.STATE_MACHINE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.STATE_MACHINE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.STATE_MACHINE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.STATE_MACHINE__FEATURE : + return isSetFeatures(); + case UMLPackage.STATE_MACHINE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.STATE_MACHINE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.STATE_MACHINE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.STATE_MACHINE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.STATE_MACHINE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.STATE_MACHINE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.STATE_MACHINE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.STATE_MACHINE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.STATE_MACHINE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.STATE_MACHINE__REPRESENTATION : + return eVirtualGet(UMLPackage.STATE_MACHINE__REPRESENTATION) != null; + case UMLPackage.STATE_MACHINE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.STATE_MACHINE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_SIGNATURE) != null; + case UMLPackage.STATE_MACHINE__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.STATE_MACHINE__PART : + return !getParts().isEmpty(); + case UMLPackage.STATE_MACHINE__ROLE : + return isSetRoles(); + case UMLPackage.STATE_MACHINE__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.STATE_MACHINE__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.STATE_MACHINE__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.STATE_MACHINE__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.STATE_MACHINE__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.STATE_MACHINE__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.STATE_MACHINE__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.STATE_MACHINE__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.STATE_MACHINE__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.STATE_MACHINE__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.STATE_MACHINE__IS_REENTRANT : + return ((eFlags & IS_REENTRANT_EFLAG) != 0) != IS_REENTRANT_EDEFAULT; + case UMLPackage.STATE_MACHINE__REDEFINED_BEHAVIOR : + List redefinedBehavior = (List) eVirtualGet(UMLPackage.STATE_MACHINE__REDEFINED_BEHAVIOR); + return redefinedBehavior != null + && !redefinedBehavior.isEmpty(); + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.STATE_MACHINE__CONTEXT : + return basicGetContext() != null; + case UMLPackage.STATE_MACHINE__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.STATE_MACHINE__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.STATE_MACHINE__SPECIFICATION : + return eVirtualGet(UMLPackage.STATE_MACHINE__SPECIFICATION) != null; + case UMLPackage.STATE_MACHINE__REGION : + List region = (List) eVirtualGet(UMLPackage.STATE_MACHINE__REGION); + return region != null && !region.isEmpty(); + case UMLPackage.STATE_MACHINE__CONNECTION_POINT : + List connectionPoint = (List) eVirtualGet(UMLPackage.STATE_MACHINE__CONNECTION_POINT); + return connectionPoint != null && !connectionPoint.isEmpty(); + case UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE : + return eVirtualGet(UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getStateMachine_Region()) + || eIsSet(UMLPackage.eINSTANCE.getStateMachine_ConnectionPoint()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE + .getStateMachine_ExtendedStateMachine()); + } + +} //StateMachineImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java new file mode 100644 index 00000000..bb2845e1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java @@ -0,0 +1,681 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StereotypeImpl.java,v 1.1 2005/11/14 22:26:07 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Image; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StereotypeOperations; + +/** + * + * An implementation of the model object 'Stereotype'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StereotypeImpl#getIcons Icon}
  • + *
+ *

+ * + * @generated + */ +public class StereotypeImpl + extends ClassImpl + implements Stereotype { + + /** + * + * + * @generated + */ + protected StereotypeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStereotype(); + } + + /** + * + * + * @generated + */ + public List getIcons() { + List icon = (List) eVirtualGet(UMLPackage.STEREOTYPE__ICON); + if (icon == null) { + eVirtualSet(UMLPackage.STEREOTYPE__ICON, + icon = new EObjectResolvingEList(Image.class, this, + UMLPackage.STEREOTYPE__ICON)); + } + return icon; + } + + /** + * + * + * @generated + */ + public boolean validateNameNotClash(DiagnosticChain diagnostics, Map context) { + return StereotypeOperations.validateNameNotClash(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGeneralize(DiagnosticChain diagnostics, Map context) { + return StereotypeOperations.validateGeneralize(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STEREOTYPE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STEREOTYPE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STEREOTYPE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STEREOTYPE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STEREOTYPE__NAME : + return getName(); + case UMLPackage.STEREOTYPE__VISIBILITY : + return getVisibility(); + case UMLPackage.STEREOTYPE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STEREOTYPE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STEREOTYPE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STEREOTYPE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STEREOTYPE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.STEREOTYPE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.STEREOTYPE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.STEREOTYPE__MEMBER : + return getMembers(); + case UMLPackage.STEREOTYPE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.STEREOTYPE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.STEREOTYPE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STEREOTYPE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STEREOTYPE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STEREOTYPE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.STEREOTYPE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.STEREOTYPE__PACKAGE : + return getPackage(); + case UMLPackage.STEREOTYPE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.STEREOTYPE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.STEREOTYPE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STEREOTYPE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.STEREOTYPE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.STEREOTYPE__FEATURE : + return getFeatures(); + case UMLPackage.STEREOTYPE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.STEREOTYPE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.STEREOTYPE__GENERAL : + return getGenerals(); + case UMLPackage.STEREOTYPE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.STEREOTYPE__USE_CASE : + return getUseCases(); + case UMLPackage.STEREOTYPE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.STEREOTYPE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.STEREOTYPE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.STEREOTYPE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.STEREOTYPE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.STEREOTYPE__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.STEREOTYPE__PART : + return getParts(); + case UMLPackage.STEREOTYPE__ROLE : + return getRoles(); + case UMLPackage.STEREOTYPE__OWNED_CONNECTOR : + return getOwnedConnectors(); + case UMLPackage.STEREOTYPE__OWNED_PORT : + return getOwnedPorts(); + case UMLPackage.STEREOTYPE__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.STEREOTYPE__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.STEREOTYPE__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.STEREOTYPE__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.STEREOTYPE__OWNED_OPERATION : + return getOwnedOperations(); + case UMLPackage.STEREOTYPE__NESTED_CLASSIFIER : + return getNestedClassifiers(); + case UMLPackage.STEREOTYPE__SUPER_CLASS : + return getSuperClasses(); + case UMLPackage.STEREOTYPE__IS_ACTIVE : + return isActive() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STEREOTYPE__OWNED_RECEPTION : + return getOwnedReceptions(); + case UMLPackage.STEREOTYPE__EXTENSION : + return getExtensions(); + case UMLPackage.STEREOTYPE__ICON : + return getIcons(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STEREOTYPE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__NAME : + setName((String) newValue); + return; + case UMLPackage.STEREOTYPE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STEREOTYPE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STEREOTYPE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STEREOTYPE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STEREOTYPE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STEREOTYPE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.STEREOTYPE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.STEREOTYPE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STEREOTYPE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.STEREOTYPE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_PORT : + getOwnedPorts().clear(); + getOwnedPorts().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.STEREOTYPE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__OWNED_OPERATION : + getOwnedOperations().clear(); + getOwnedOperations().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + getNestedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__SUPER_CLASS : + getSuperClasses().clear(); + getSuperClasses().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__IS_ACTIVE : + setIsActive(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STEREOTYPE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + getOwnedReceptions().addAll((Collection) newValue); + return; + case UMLPackage.STEREOTYPE__ICON : + getIcons().clear(); + getIcons().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STEREOTYPE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STEREOTYPE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STEREOTYPE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STEREOTYPE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STEREOTYPE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STEREOTYPE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.STEREOTYPE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.STEREOTYPE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STEREOTYPE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STEREOTYPE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STEREOTYPE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.STEREOTYPE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.STEREOTYPE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.STEREOTYPE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.STEREOTYPE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.STEREOTYPE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.STEREOTYPE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.STEREOTYPE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.STEREOTYPE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.STEREOTYPE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.STEREOTYPE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.STEREOTYPE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.STEREOTYPE__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_PORT : + getOwnedPorts().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.STEREOTYPE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.STEREOTYPE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.STEREOTYPE__OWNED_OPERATION : + getOwnedOperations().clear(); + return; + case UMLPackage.STEREOTYPE__NESTED_CLASSIFIER : + getNestedClassifiers().clear(); + return; + case UMLPackage.STEREOTYPE__SUPER_CLASS : + getSuperClasses().clear(); + return; + case UMLPackage.STEREOTYPE__IS_ACTIVE : + setIsActive(IS_ACTIVE_EDEFAULT); + return; + case UMLPackage.STEREOTYPE__OWNED_RECEPTION : + getOwnedReceptions().clear(); + return; + case UMLPackage.STEREOTYPE__ICON : + getIcons().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STEREOTYPE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STEREOTYPE__OWNER : + return isSetOwner(); + case UMLPackage.STEREOTYPE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STEREOTYPE__NAME : + String name = eVirtualIsSet(UMLPackage.STEREOTYPE__NAME) + ? (String) eVirtualGet(UMLPackage.STEREOTYPE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STEREOTYPE__VISIBILITY : + return eVirtualIsSet(UMLPackage.STEREOTYPE__VISIBILITY) + && eVirtualGet(UMLPackage.STEREOTYPE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STEREOTYPE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STEREOTYPE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STEREOTYPE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STEREOTYPE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STEREOTYPE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STEREOTYPE__NAME_EXPRESSION) != null; + case UMLPackage.STEREOTYPE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.STEREOTYPE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.STEREOTYPE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.STEREOTYPE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.STEREOTYPE__MEMBER : + return isSetMembers(); + case UMLPackage.STEREOTYPE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.STEREOTYPE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STEREOTYPE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STEREOTYPE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STEREOTYPE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.STEREOTYPE__TEMPLATE_PARAMETER) != null; + case UMLPackage.STEREOTYPE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.STEREOTYPE__PACKAGE : + return getPackage() != null; + case UMLPackage.STEREOTYPE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.STEREOTYPE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.STEREOTYPE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.STEREOTYPE__IS_ABSTRACT : + return isAbstract() != IS_ABSTRACT_EDEFAULT; + case UMLPackage.STEREOTYPE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.STEREOTYPE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.STEREOTYPE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.STEREOTYPE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.STEREOTYPE__FEATURE : + return isSetFeatures(); + case UMLPackage.STEREOTYPE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.STEREOTYPE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.STEREOTYPE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.STEREOTYPE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.STEREOTYPE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.STEREOTYPE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.STEREOTYPE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.STEREOTYPE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.STEREOTYPE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.STEREOTYPE__REPRESENTATION : + return eVirtualGet(UMLPackage.STEREOTYPE__REPRESENTATION) != null; + case UMLPackage.STEREOTYPE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.STEREOTYPE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.STEREOTYPE__OWNED_SIGNATURE) != null; + case UMLPackage.STEREOTYPE__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.STEREOTYPE__PART : + return !getParts().isEmpty(); + case UMLPackage.STEREOTYPE__ROLE : + return isSetRoles(); + case UMLPackage.STEREOTYPE__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_PORT : + List ownedPort = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_PORT); + return ownedPort != null && !ownedPort.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.STEREOTYPE__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.STEREOTYPE__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.STEREOTYPE__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.STEREOTYPE__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.STEREOTYPE__OWNED_OPERATION : + List ownedOperation = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_OPERATION); + return ownedOperation != null && !ownedOperation.isEmpty(); + case UMLPackage.STEREOTYPE__NESTED_CLASSIFIER : + List nestedClassifier = (List) eVirtualGet(UMLPackage.STEREOTYPE__NESTED_CLASSIFIER); + return nestedClassifier != null && !nestedClassifier.isEmpty(); + case UMLPackage.STEREOTYPE__SUPER_CLASS : + return isSetSuperClasses(); + case UMLPackage.STEREOTYPE__IS_ACTIVE : + return ((eFlags & IS_ACTIVE_EFLAG) != 0) != IS_ACTIVE_EDEFAULT; + case UMLPackage.STEREOTYPE__OWNED_RECEPTION : + List ownedReception = (List) eVirtualGet(UMLPackage.STEREOTYPE__OWNED_RECEPTION); + return ownedReception != null && !ownedReception.isEmpty(); + case UMLPackage.STEREOTYPE__EXTENSION : + return !getExtensions().isEmpty(); + case UMLPackage.STEREOTYPE__ICON : + List icon = (List) eVirtualGet(UMLPackage.STEREOTYPE__ICON); + return icon != null && !icon.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //StereotypeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java new file mode 100644 index 00000000..5e16f14f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java @@ -0,0 +1,838 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StringExpressionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StringExpressionOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * + * An implementation of the model object 'String Expression'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getOwnedTemplateSignature Owned Template Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getSubExpressions Sub Expression}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getOwningExpression Owning Expression}
  • + *
+ *

+ * + * @generated + */ +public class StringExpressionImpl + extends ExpressionImpl + implements StringExpression { + + /** + * + * + * @generated + */ + protected StringExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStringExpression(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.STRING_EXPRESSION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.STRING_EXPRESSION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExpression_Operand(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature(), + UMLPackage.eINSTANCE + .getStringExpression_SubExpression()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * + * + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public List getSubExpressions() { + List subExpression = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION); + if (subExpression == null) { + eVirtualSet(UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION, + subExpression = new EObjectContainmentWithInverseEList( + StringExpression.class, this, + UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION, + UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION)); + } + return subExpression; + } + + /** + * + * + * @generated + */ + public StringExpression createSubExpression() { + StringExpression newSubExpression = UMLFactory.eINSTANCE + .createStringExpression(); + getSubExpressions().add(newSubExpression); + return newSubExpression; + } + + /** + * + * + * @generated + */ + public StringExpression getSubExpression(String name) { + for (Iterator i = getSubExpressions().iterator(); i.hasNext();) { + StringExpression subExpression = (StringExpression) i.next(); + if (name.equals(subExpression.getName())) { + return subExpression; + } + } + return null; + } + + /** + * + * + * @generated + */ + public StringExpression getOwningExpression() { + if (eContainerFeatureID != UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION) + return null; + return (StringExpression) eContainer; + } + + /** + * + * + * @generated + */ + public void setOwningExpression(StringExpression newOwningExpression) { + if (newOwningExpression != eContainer + || (eContainerFeatureID != UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION && newOwningExpression != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newOwningExpression)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningExpression != null) + msgs = ((InternalEObject) newOwningExpression).eInverseAdd( + this, UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION, + StringExpression.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newOwningExpression, + UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION, + newOwningExpression, newOwningExpression)); + + } + + /** + * + * + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * + * + * @generated + */ + public boolean isTemplate() { + return TemplateableElementOperations.isTemplate(this); + } + + /** + * + * + * @generated + */ + public boolean validateOperands(DiagnosticChain diagnostics, Map context) { + return StringExpressionOperations.validateOperands(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSubexpressions(DiagnosticChain diagnostics, + Map context) { + return StringExpressionOperations.validateSubexpressions(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public String stringValue() { + return StringExpressionOperations.stringValue(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRING_EXPRESSION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION : + return ((InternalEList) getSubExpressions()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRING_EXPRESSION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.STRING_EXPRESSION__OPERAND : + return ((InternalEList) getOperands()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION : + return ((InternalEList) getSubExpressions()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + return eBasicSetContainer(null, + UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + return eContainer.eInverseRemove(this, + UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION, + StringExpression.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRING_EXPRESSION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STRING_EXPRESSION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STRING_EXPRESSION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STRING_EXPRESSION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STRING_EXPRESSION__NAME : + return getName(); + case UMLPackage.STRING_EXPRESSION__VISIBILITY : + return getVisibility(); + case UMLPackage.STRING_EXPRESSION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STRING_EXPRESSION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STRING_EXPRESSION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.STRING_EXPRESSION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.STRING_EXPRESSION__SYMBOL : + return getSymbol(); + case UMLPackage.STRING_EXPRESSION__OPERAND : + return getOperands(); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION : + return getSubExpressions(); + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + return getOwningExpression(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRING_EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STRING_EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STRING_EXPRESSION__NAME : + setName((String) newValue); + return; + case UMLPackage.STRING_EXPRESSION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STRING_EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STRING_EXPRESSION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.STRING_EXPRESSION__SYMBOL : + setSymbol((String) newValue); + return; + case UMLPackage.STRING_EXPRESSION__OPERAND : + getOperands().clear(); + getOperands().addAll((Collection) newValue); + return; + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION : + getSubExpressions().clear(); + getSubExpressions().addAll((Collection) newValue); + return; + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + setOwningExpression((StringExpression) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRING_EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STRING_EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STRING_EXPRESSION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STRING_EXPRESSION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STRING_EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STRING_EXPRESSION__TYPE : + setType((Type) null); + return; + case UMLPackage.STRING_EXPRESSION__SYMBOL : + setSymbol(SYMBOL_EDEFAULT); + return; + case UMLPackage.STRING_EXPRESSION__OPERAND : + getOperands().clear(); + return; + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION : + getSubExpressions().clear(); + return; + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + setOwningExpression((StringExpression) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRING_EXPRESSION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STRING_EXPRESSION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STRING_EXPRESSION__OWNER : + return isSetOwner(); + case UMLPackage.STRING_EXPRESSION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STRING_EXPRESSION__NAME : + String name = eVirtualIsSet(UMLPackage.STRING_EXPRESSION__NAME) + ? (String) eVirtualGet(UMLPackage.STRING_EXPRESSION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STRING_EXPRESSION__VISIBILITY : + return eVirtualIsSet(UMLPackage.STRING_EXPRESSION__VISIBILITY) + && eVirtualGet(UMLPackage.STRING_EXPRESSION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STRING_EXPRESSION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STRING_EXPRESSION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STRING_EXPRESSION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STRING_EXPRESSION__NAME_EXPRESSION) != null; + case UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.STRING_EXPRESSION__TEMPLATE_PARAMETER) != null; + case UMLPackage.STRING_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.STRING_EXPRESSION__TYPE : + return eVirtualGet(UMLPackage.STRING_EXPRESSION__TYPE) != null; + case UMLPackage.STRING_EXPRESSION__SYMBOL : + String symbol = eVirtualIsSet(UMLPackage.STRING_EXPRESSION__SYMBOL) + ? (String) eVirtualGet(UMLPackage.STRING_EXPRESSION__SYMBOL) + : SYMBOL_EDEFAULT; + return SYMBOL_EDEFAULT == null + ? symbol != null + : !SYMBOL_EDEFAULT.equals(symbol); + case UMLPackage.STRING_EXPRESSION__OPERAND : + List operand = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__OPERAND); + return operand != null && !operand.isEmpty(); + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION : + List subExpression = (List) eVirtualGet(UMLPackage.STRING_EXPRESSION__SUB_EXPRESSION); + return subExpression != null && !subExpression.isEmpty(); + case UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION : + return getOwningExpression() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.STRING_EXPRESSION__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()) + || eIsSet(UMLPackage.eINSTANCE.getStringExpression_SubExpression()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + StringExpression owningExpression = getOwningExpression(); + if (owningExpression != null) { + return owningExpression; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getStringExpression_OwningExpression()); + } + +} //StringExpressionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java new file mode 100644 index 00000000..e1e507ec --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java @@ -0,0 +1,673 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuralFeatureActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuralFeatureAction; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StructuralFeatureActionOperations; + +/** + * + * An implementation of the model object 'Structural Feature Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl#getStructuralFeature Structural Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl#getObject Object}
  • + *
+ *

+ * + * @generated + */ +public abstract class StructuralFeatureActionImpl + extends ActionImpl + implements StructuralFeatureAction { + + /** + * + * + * @generated + */ + protected StructuralFeatureActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStructuralFeatureAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.STRUCTURAL_FEATURE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.STRUCTURAL_FEATURE_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuralFeatureAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public StructuralFeature getStructuralFeature() { + StructuralFeature structuralFeature = (StructuralFeature) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE); + if (structuralFeature != null && structuralFeature.eIsProxy()) { + StructuralFeature oldStructuralFeature = structuralFeature; + structuralFeature = (StructuralFeature) eResolveProxy((InternalEObject) structuralFeature); + if (structuralFeature != oldStructuralFeature) { + eVirtualSet( + UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE, + structuralFeature); + if (eNotificationRequired()) + eNotify(new ENotificationImpl( + this, + Notification.RESOLVE, + UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE, + oldStructuralFeature, structuralFeature)); + } + } + return structuralFeature; + } + + /** + * + * + * @generated + */ + public StructuralFeature basicGetStructuralFeature() { + return (StructuralFeature) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE); + } + + /** + * + * + * @generated + */ + public void setStructuralFeature(StructuralFeature newStructuralFeature) { + StructuralFeature structuralFeature = newStructuralFeature; + Object oldStructuralFeature = eVirtualSet( + UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE, + structuralFeature); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE, + oldStructuralFeature == EVIRTUAL_NO_VALUE + ? null + : oldStructuralFeature, structuralFeature)); + + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet( + UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT, newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT, null, + msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT, null, + msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT, newObject, + newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public boolean validateNotStatic(DiagnosticChain diagnostics, Map context) { + return StructuralFeatureActionOperations.validateNotStatic(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return StructuralFeatureActionOperations.validateSameType(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return StructuralFeatureActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateVisibility(DiagnosticChain diagnostics, Map context) { + return StructuralFeatureActionOperations.validateVisibility(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOneFeaturingClassifier(DiagnosticChain diagnostics, + Map context) { + return StructuralFeatureActionOperations + .validateOneFeaturingClassifier(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT : + return basicSetObject(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME : + return getName(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INPUT : + return getInputs(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT : + return getObject(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT : + setObject((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.STRUCTURAL_FEATURE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getStructuralFeatureAction_Object()); + } + +} //StructuralFeatureActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java new file mode 100644 index 00000000..af9a090b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java @@ -0,0 +1,1004 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuralFeatureImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.MultiplicityElementOperations; + +/** + * + * An implementation of the model object 'Structural Feature'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getType Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getUpperValue Upper Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getLowerValue Lower Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#isReadOnly Is Read Only}
  • + *
+ *

+ * + * @generated + */ +public abstract class StructuralFeatureImpl + extends FeatureImpl + implements StructuralFeature { + + /** + * The default value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_ORDERED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final int IS_ORDERED_EFLAG = 1 << 10; + + /** + * The default value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final boolean IS_UNIQUE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final int IS_UNIQUE_EFLAG = 1 << 11; + + /** + * The default value of the '{@link #getUpper() Upper}' attribute. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected static final int UPPER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getLower() Lower}' attribute. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected static final int LOWER_EDEFAULT = 1; + + /** + * The default value of the '{@link #isReadOnly() Is Read Only}' attribute. + * + * + * @see #isReadOnly() + * @generated + * @ordered + */ + protected static final boolean IS_READ_ONLY_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isReadOnly() Is Read Only}' attribute. + * + * + * @see #isReadOnly() + * @generated + * @ordered + */ + protected static final int IS_READ_ONLY_EFLAG = 1 << 12; + + /** + * + * + * @generated + */ + protected StructuralFeatureImpl() { + super(); + eFlags |= IS_UNIQUE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStructuralFeature(); + } + + /** + * + * + * @generated + */ + public Type getType() { + Type type = (Type) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__TYPE); + if (type != null && type.eIsProxy()) { + Type oldType = type; + type = (Type) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.STRUCTURAL_FEATURE__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.STRUCTURAL_FEATURE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Type basicGetType() { + return (Type) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Type newType) { + Type type = newType; + Object oldType = eVirtualSet(UMLPackage.STRUCTURAL_FEATURE__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE__TYPE, + oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.STRUCTURAL_FEATURE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.STRUCTURAL_FEATURE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getMultiplicityElement_UpperValue(), + UMLPackage.eINSTANCE + .getMultiplicityElement_LowerValue()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isOrdered() { + return (eFlags & IS_ORDERED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsOrdered(boolean newIsOrdered) { + boolean oldIsOrdered = (eFlags & IS_ORDERED_EFLAG) != 0; + if (newIsOrdered) + eFlags |= IS_ORDERED_EFLAG; + else + eFlags &= ~IS_ORDERED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED, oldIsOrdered, + newIsOrdered)); + + } + + /** + * + * + * @generated + */ + public boolean isUnique() { + return (eFlags & IS_UNIQUE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsUnique(boolean newIsUnique) { + boolean oldIsUnique = (eFlags & IS_UNIQUE_EFLAG) != 0; + if (newIsUnique) + eFlags |= IS_UNIQUE_EFLAG; + else + eFlags &= ~IS_UNIQUE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE, oldIsUnique, + newIsUnique)); + + } + + /** + * + * + * @generated + */ + public int getUpper() { + // TODO: implement this method to return the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setUpper(int newUpper) { + // TODO: implement this method to set the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getUpperValue() { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE); + return upperValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpperValue( + ValueSpecification newUpperValue, NotificationChain msgs) { + Object oldUpperValue = eVirtualSet( + UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE, newUpperValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE, + oldUpperValue == EVIRTUAL_NO_VALUE + ? null + : oldUpperValue, newUpperValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpperValue(ValueSpecification newUpperValue) { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE); + if (newUpperValue != upperValue) { + NotificationChain msgs = null; + if (upperValue != null) + msgs = ((InternalEObject) upperValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE, null, + msgs); + if (newUpperValue != null) + msgs = ((InternalEObject) newUpperValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE, null, + msgs); + msgs = basicSetUpperValue(newUpperValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE, newUpperValue, + newUpperValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createUpperValue(EClass eClass) { + ValueSpecification newUpperValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setUpperValue(newUpperValue); + return newUpperValue; + } + + /** + * + * + * @generated + */ + public ValueSpecification getLowerValue() { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE); + return lowerValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLowerValue( + ValueSpecification newLowerValue, NotificationChain msgs) { + Object oldLowerValue = eVirtualSet( + UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE, newLowerValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE, + oldLowerValue == EVIRTUAL_NO_VALUE + ? null + : oldLowerValue, newLowerValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setLowerValue(ValueSpecification newLowerValue) { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE); + if (newLowerValue != lowerValue) { + NotificationChain msgs = null; + if (lowerValue != null) + msgs = ((InternalEObject) lowerValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE, null, + msgs); + if (newLowerValue != null) + msgs = ((InternalEObject) newLowerValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE, null, + msgs); + msgs = basicSetLowerValue(newLowerValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE, newLowerValue, + newLowerValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createLowerValue(EClass eClass) { + ValueSpecification newLowerValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setLowerValue(newLowerValue); + return newLowerValue; + } + + /** + * + * + * @generated + */ + public boolean isReadOnly() { + return (eFlags & IS_READ_ONLY_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsReadOnly(boolean newIsReadOnly) { + boolean oldIsReadOnly = (eFlags & IS_READ_ONLY_EFLAG) != 0; + if (newIsReadOnly) + eFlags |= IS_READ_ONLY_EFLAG; + else + eFlags &= ~IS_READ_ONLY_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURAL_FEATURE__IS_READ_ONLY, oldIsReadOnly, + newIsReadOnly)); + + } + + /** + * + * + * @generated + */ + public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGt0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateLowerGe0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGeLower(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationNoSideEffects( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationNoSideEffects(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationConstant( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationConstant(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isMultivalued() { + return MultiplicityElementOperations.isMultivalued(this); + } + + /** + * + * + * @generated + */ + public boolean includesCardinality(int C) { + return MultiplicityElementOperations.includesCardinality(this, C); + } + + /** + * + * + * @generated + */ + public boolean includesMultiplicity(MultiplicityElement M) { + return MultiplicityElementOperations.includesMultiplicity(this, M); + } + + /** + * + * + * @generated + */ + public int lowerBound() { + return MultiplicityElementOperations.lowerBound(this); + } + + /** + * + * + * @generated + */ + public int upperBound() { + return MultiplicityElementOperations.upperBound(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRUCTURAL_FEATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURAL_FEATURE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE : + return basicSetUpperValue(null, msgs); + case UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE : + return basicSetLowerValue(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STRUCTURAL_FEATURE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STRUCTURAL_FEATURE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STRUCTURAL_FEATURE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STRUCTURAL_FEATURE__NAME : + return getName(); + case UMLPackage.STRUCTURAL_FEATURE__VISIBILITY : + return getVisibility(); + case UMLPackage.STRUCTURAL_FEATURE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STRUCTURAL_FEATURE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STRUCTURAL_FEATURE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STRUCTURAL_FEATURE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STRUCTURAL_FEATURE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURAL_FEATURE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STRUCTURAL_FEATURE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STRUCTURAL_FEATURE__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURAL_FEATURE__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.STRUCTURAL_FEATURE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURAL_FEATURE__UPPER : + return new Integer(getUpper()); + case UMLPackage.STRUCTURAL_FEATURE__LOWER : + return new Integer(getLower()); + case UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.STRUCTURAL_FEATURE__IS_READ_ONLY : + return isReadOnly() + ? Boolean.TRUE + : Boolean.FALSE; + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__NAME : + setName((String) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE__TYPE : + setType((Type) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_READ_ONLY : + setIsReadOnly(((Boolean) newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STRUCTURAL_FEATURE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__TYPE : + setType((Type) null); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + case UMLPackage.STRUCTURAL_FEATURE__IS_READ_ONLY : + setIsReadOnly(IS_READ_ONLY_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURAL_FEATURE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STRUCTURAL_FEATURE__OWNER : + return isSetOwner(); + case UMLPackage.STRUCTURAL_FEATURE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE__NAME : + String name = eVirtualIsSet(UMLPackage.STRUCTURAL_FEATURE__NAME) + ? (String) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STRUCTURAL_FEATURE__VISIBILITY : + return eVirtualIsSet(UMLPackage.STRUCTURAL_FEATURE__VISIBILITY) + && eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STRUCTURAL_FEATURE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STRUCTURAL_FEATURE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STRUCTURAL_FEATURE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__NAME_EXPRESSION) != null; + case UMLPackage.STRUCTURAL_FEATURE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STRUCTURAL_FEATURE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STRUCTURAL_FEATURE__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.STRUCTURAL_FEATURE__TYPE : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__TYPE) != null; + case UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE) != null; + case UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE : + return eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE) != null; + case UMLPackage.STRUCTURAL_FEATURE__IS_READ_ONLY : + return ((eFlags & IS_READ_ONLY_EFLAG) != 0) != IS_READ_ONLY_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == TypedElement.class) { + switch (derivedFeatureID) { + case UMLPackage.STRUCTURAL_FEATURE__TYPE : + return UMLPackage.TYPED_ELEMENT__TYPE; + default : + return -1; + } + } + if (baseClass == MultiplicityElement.class) { + switch (derivedFeatureID) { + case UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED : + return UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED; + case UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE : + return UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE; + case UMLPackage.STRUCTURAL_FEATURE__UPPER : + return UMLPackage.MULTIPLICITY_ELEMENT__UPPER; + case UMLPackage.STRUCTURAL_FEATURE__LOWER : + return UMLPackage.MULTIPLICITY_ELEMENT__LOWER; + case UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE : + return UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE; + case UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE : + return UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == TypedElement.class) { + switch (baseFeatureID) { + case UMLPackage.TYPED_ELEMENT__TYPE : + return UMLPackage.STRUCTURAL_FEATURE__TYPE; + default : + return -1; + } + } + if (baseClass == MultiplicityElement.class) { + switch (baseFeatureID) { + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + return UMLPackage.STRUCTURAL_FEATURE__IS_ORDERED; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + return UMLPackage.STRUCTURAL_FEATURE__IS_UNIQUE; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + return UMLPackage.STRUCTURAL_FEATURE__UPPER; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + return UMLPackage.STRUCTURAL_FEATURE__LOWER; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + return UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + return UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isOrdered: "); //$NON-NLS-1$ + result.append((eFlags & IS_ORDERED_EFLAG) != 0); + result.append(", isUnique: "); //$NON-NLS-1$ + result.append((eFlags & IS_UNIQUE_EFLAG) != 0); + result.append(", isReadOnly: "); //$NON-NLS-1$ + result.append((eFlags & IS_READ_ONLY_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue()) + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue()); + } + +} //StructuralFeatureImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java new file mode 100644 index 00000000..b5f5feff --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java @@ -0,0 +1,1595 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuredActivityNodeImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ActivityGroupOperations; +import org.eclipse.uml2.uml.internal.operations.NamespaceOperations; +import org.eclipse.uml2.uml.internal.operations.StructuredActivityNodeOperations; + +/** + * + * An implementation of the model object 'Structured Activity Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getElementImports Element Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getPackageImports Package Import}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedRules Owned Rule}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getImportedMembers Imported Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getSubgroups Subgroup}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedNodes Contained Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedEdges Contained Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getVariables Variable}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getNodes Node}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#isMustIsolate Must Isolate}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getEdges Edge}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getActivity Activity}
  • + *
+ *

+ * + * @generated + */ +public class StructuredActivityNodeImpl + extends ActionImpl + implements StructuredActivityNode { + + /** + * A bit field representing the indices of non-primitive feature values. + * + * + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isMustIsolate() Must Isolate}' attribute. + * + * + * @see #isMustIsolate() + * @generated + * @ordered + */ + protected static final boolean MUST_ISOLATE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isMustIsolate() Must Isolate}' attribute. + * + * + * @see #isMustIsolate() + * @generated + * @ordered + */ + protected static final int MUST_ISOLATE_EFLAG = 1 << 9; + + /** + * + * + * @generated + */ + protected StructuredActivityNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStructuredActivityNode(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getExecutableNode_Handler(), + UMLPackage.eINSTANCE.getAction_Output(), + UMLPackage.eINSTANCE.getAction_Input(), + UMLPackage.eINSTANCE.getAction_LocalPrecondition(), + UMLPackage.eINSTANCE.getAction_LocalPostcondition(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getActivityGroup_Subgroup()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE + .getStructuredActivityNode_Variable()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public NamedElement getOwnedMember(String name) { + for (Iterator i = getOwnedMembers().iterator(); i.hasNext();) { + NamedElement ownedMember = (NamedElement) i.next(); + if (name.equals(ownedMember.getName())) { + return ownedMember; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember()})); + } + return member; + } + + /** + * + * + * @generated + */ + public NamedElement getMember(String name) { + for (Iterator i = getMembers().iterator(); i.hasNext();) { + NamedElement member = (NamedElement) i.next(); + if (name.equals(member.getName())) { + return member; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getElementImports() { + List elementImport = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT); + if (elementImport == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT, + elementImport = new EObjectContainmentWithInverseEList( + ElementImport.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT, + UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE)); + } + return elementImport; + } + + /** + * + * + * @generated + */ + public ElementImport createElementImport() { + ElementImport newElementImport = UMLFactory.eINSTANCE + .createElementImport(); + getElementImports().add(newElementImport); + return newElementImport; + } + + /** + * + * + * @generated + */ + public List getPackageImports() { + List packageImport = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT); + if (packageImport == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT, + packageImport = new EObjectContainmentWithInverseEList( + PackageImport.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT, + UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE)); + } + return packageImport; + } + + /** + * + * + * @generated + */ + public PackageImport createPackageImport(EClass eClass) { + PackageImport newPackageImport = (PackageImport) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getPackageImports().add(newPackageImport); + return newPackageImport; + } + + /** + * + * + * @generated + */ + public PackageImport createPackageImport() { + PackageImport newPackageImport = UMLFactory.eINSTANCE + .createPackageImport(); + getPackageImports().add(newPackageImport); + return newPackageImport; + } + + /** + * + * + * @generated + */ + public List getOwnedRules() { + List ownedRule = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE); + if (ownedRule == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE, + ownedRule = new EObjectContainmentWithInverseEList( + Constraint.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE, + UMLPackage.CONSTRAINT__CONTEXT)); + } + return ownedRule; + } + + /** + * + * + * @generated + */ + public Constraint createOwnedRule(EClass eClass) { + Constraint newOwnedRule = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedRules().add(newOwnedRule); + return newOwnedRule; + } + + /** + * + * + * @generated + */ + public Constraint createOwnedRule() { + Constraint newOwnedRule = UMLFactory.eINSTANCE.createConstraint(); + getOwnedRules().add(newOwnedRule); + return newOwnedRule; + } + + /** + * + * + * @generated + */ + public Constraint getOwnedRule(String name) { + for (Iterator i = getOwnedRules().iterator(); i.hasNext();) { + Constraint ownedRule = (Constraint) i.next(); + if (name.equals(ownedRule.getName())) { + return ownedRule; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getImportedMembers() { + // TODO: implement this method to return the 'Imported Member' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public PackageableElement getImportedMember(String name) { + for (Iterator i = getImportedMembers().iterator(); i.hasNext();) { + PackageableElement importedMember = (PackageableElement) i.next(); + if (name.equals(importedMember.getName())) { + return importedMember; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getSubgroups() { + List subgroup = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP); + if (subgroup == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP, + subgroup = new DerivedUnionEObjectEList(ActivityGroup.class, + this, UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP, + new EStructuralFeature[]{})); + } + return subgroup; + } + + /** + * + * + * @generated + */ + public List getContainedNodes() { + List containedNode = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE); + if (containedNode == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE, + containedNode = new DerivedUnionEObjectEList( + ActivityNode.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuredActivityNode_Node()})); + } + return containedNode; + } + + /** + * + * + * @generated + */ + public ActivityNode getContainedNode(String name) { + for (Iterator i = getContainedNodes().iterator(); i.hasNext();) { + ActivityNode containedNode = (ActivityNode) i.next(); + if (name.equals(containedNode.getName())) { + return containedNode; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getContainedEdges() { + List containedEdge = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE); + if (containedEdge == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE, + containedEdge = new DerivedUnionEObjectEList( + ActivityEdge.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuredActivityNode_Edge()})); + } + return containedEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getContainedEdge(String name) { + for (Iterator i = getContainedEdges().iterator(); i.hasNext();) { + ActivityEdge containedEdge = (ActivityEdge) i.next(); + if (name.equals(containedEdge.getName())) { + return containedEdge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getVariables() { + List variable = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE); + if (variable == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE, + variable = new EObjectContainmentWithInverseEList( + Variable.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE, + UMLPackage.VARIABLE__SCOPE)); + } + return variable; + } + + /** + * + * + * @generated + */ + public Variable createVariable() { + Variable newVariable = UMLFactory.eINSTANCE.createVariable(); + getVariables().add(newVariable); + return newVariable; + } + + /** + * + * + * @generated + */ + public Variable getVariable(String name) { + for (Iterator i = getVariables().iterator(); i.hasNext();) { + Variable variable = (Variable) i.next(); + if (name.equals(variable.getName())) { + return variable; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getNodes() { + List node = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE); + if (node == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE, + node = new EObjectContainmentWithInverseEList( + ActivityNode.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE, + UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE)); + } + return node; + } + + /** + * + * + * @generated + */ + public ActivityNode createNode(EClass eClass) { + ActivityNode newNode = (ActivityNode) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getNodes().add(newNode); + return newNode; + } + + /** + * + * + * @generated + */ + public ActivityNode getNode(String name) { + for (Iterator i = getNodes().iterator(); i.hasNext();) { + ActivityNode node = (ActivityNode) i.next(); + if (name.equals(node.getName())) { + return node; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isMustIsolate() { + return (eFlags & MUST_ISOLATE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setMustIsolate(boolean newMustIsolate) { + boolean oldMustIsolate = (eFlags & MUST_ISOLATE_EFLAG) != 0; + if (newMustIsolate) + eFlags |= MUST_ISOLATE_EFLAG; + else + eFlags &= ~MUST_ISOLATE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE, + oldMustIsolate, newMustIsolate)); + + } + + /** + * + * + * @generated + */ + public List getEdges() { + List edge = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE); + if (edge == null) { + eVirtualSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE, + edge = new EObjectContainmentWithInverseEList( + ActivityEdge.class, this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE, + UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE)); + } + return edge; + } + + /** + * + * + * @generated + */ + public ActivityEdge createEdge(EClass eClass) { + ActivityEdge newEdge = (ActivityEdge) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getEdges().add(newEdge); + return newEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge createEdge() { + ActivityEdge newEdge = UMLFactory.eINSTANCE.createActivityEdge(); + getEdges().add(newEdge); + return newEdge; + } + + /** + * + * + * @generated + */ + public ActivityEdge getEdge(String name) { + for (Iterator i = getEdges().iterator(); i.hasNext();) { + ActivityEdge edge = (ActivityEdge) i.next(); + if (name.equals(edge.getName())) { + return edge; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Activity getActivity() { + // TODO: implement this method to return the 'Activity' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setActivity(Activity newActivity) { + // TODO: implement this method to set the 'Activity' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean isSetActivity() { + return getActivity() != null; + } + + /** + * + * + * @generated + */ + public boolean validateMembersAreDistinguishable( + DiagnosticChain diagnostics, Map context) { + return NamespaceOperations.validateMembersAreDistinguishable(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public List getNamesOfMember(NamedElement element) { + return NamespaceOperations.getNamesOfMember(this, element); + } + + /** + * + * + * @generated + */ + public boolean membersAreDistinguishable() { + return NamespaceOperations.membersAreDistinguishable(this); + } + + /** + * + * + * @generated + */ + public List importMembers(List imps) { + return NamespaceOperations.importMembers(this, imps); + } + + /** + * + * + * @generated + */ + public List excludeCollisions(List imps) { + return NamespaceOperations.excludeCollisions(this, imps); + } + + /** + * + * + * @generated + */ + public boolean validateNodesAndEdges(DiagnosticChain diagnostics, + Map context) { + return ActivityGroupOperations.validateNodesAndEdges(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNotContained(DiagnosticChain diagnostics, Map context) { + return ActivityGroupOperations.validateNotContained(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGroupOwned(DiagnosticChain diagnostics, Map context) { + return ActivityGroupOperations.validateGroupOwned(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEdges(DiagnosticChain diagnostics, Map context) { + return StructuredActivityNodeOperations.validateEdges(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicAdd(otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicAdd(otherEnd, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE : + return ((InternalEList) getVariables()).basicAdd(otherEnd, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE : + return ((InternalEList) getNodes()) + .basicAdd(otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE : + return ((InternalEList) getEdges()) + .basicAdd(otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE : + return ((InternalEList) getVariables()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE : + return ((InternalEList) getNodes()).basicRemove(otherEnd, + msgs); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE : + return ((InternalEList) getEdges()).basicRemove(otherEnd, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME : + return getName(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VISIBILITY : + return getVisibility(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING : + return getOutgoings(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_GROUP : + return getInGroups(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION : + return getInPartitions(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY : + return getActivity(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING : + return getIncomings(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER : + return getHandlers(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTPUT : + return getOutputs(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INPUT : + return getInputs(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTEXT : + return getContext(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER : + return getMembers(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP : + return getSubgroups(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP : + if (resolve) + return getSuperGroup(); + return basicGetSuperGroup(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE : + return getContainedNodes(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + return getInActivity(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE : + return getContainedEdges(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE : + return getVariables(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE : + return getNodes(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE : + return isMustIsolate() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE : + return getEdges(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME : + setName((String) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + setInActivity((Activity) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE : + getVariables().clear(); + getVariables().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE : + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE : + setMustIsolate(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE : + getEdges().clear(); + getEdges().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + setInActivity((Activity) null); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE : + getVariables().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE : + getNodes().clear(); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE : + setMustIsolate(MUST_ISOLATE_EDEFAULT); + return; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE : + getEdges().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNER : + return isSetOwner(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME : + String name = eVirtualIsSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME) + ? (String) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VISIBILITY : + return eVirtualIsSet(UMLPackage.STRUCTURED_ACTIVITY_NODE__VISIBILITY) + && eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__NAME_EXPRESSION) != null; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_GROUP : + return isSetInGroups(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ACTIVITY : + return getActivity() != null; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OUTPUT : + return isSetOutputs(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__INPUT : + return isSetInputs(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTEXT : + return getContext() != null; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER : + return isSetMembers(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP : + return isSetSubgroups(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP : + return isSetSuperGroup(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE : + return isSetContainedNodes(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + return getInActivity() != null; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE : + return isSetContainedEdges(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE : + List variable = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE); + return variable != null && !variable.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE : + List node = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__NODE); + return node != null && !node.isEmpty(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MUST_ISOLATE : + return ((eFlags & MUST_ISOLATE_EFLAG) != 0) != MUST_ISOLATE_EDEFAULT; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE : + List edge = (List) eVirtualGet(UMLPackage.STRUCTURED_ACTIVITY_NODE__EDGE); + return edge != null && !edge.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Namespace.class) { + switch (derivedFeatureID) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT : + return UMLPackage.NAMESPACE__ELEMENT_IMPORT; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT : + return UMLPackage.NAMESPACE__PACKAGE_IMPORT; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE : + return UMLPackage.NAMESPACE__OWNED_RULE; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER : + return UMLPackage.NAMESPACE__MEMBER; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER : + return UMLPackage.NAMESPACE__IMPORTED_MEMBER; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER : + return UMLPackage.NAMESPACE__OWNED_MEMBER; + default : + return -1; + } + } + if (baseClass == ActivityGroup.class) { + switch (derivedFeatureID) { + case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP : + return UMLPackage.ACTIVITY_GROUP__SUBGROUP; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP : + return UMLPackage.ACTIVITY_GROUP__SUPER_GROUP; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE : + return UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY : + return UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY; + case UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE : + return UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Namespace.class) { + switch (baseFeatureID) { + case UMLPackage.NAMESPACE__ELEMENT_IMPORT : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__ELEMENT_IMPORT; + case UMLPackage.NAMESPACE__PACKAGE_IMPORT : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__PACKAGE_IMPORT; + case UMLPackage.NAMESPACE__OWNED_RULE : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_RULE; + case UMLPackage.NAMESPACE__MEMBER : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__MEMBER; + case UMLPackage.NAMESPACE__IMPORTED_MEMBER : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__IMPORTED_MEMBER; + case UMLPackage.NAMESPACE__OWNED_MEMBER : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__OWNED_MEMBER; + default : + return -1; + } + } + if (baseClass == ActivityGroup.class) { + switch (baseFeatureID) { + case UMLPackage.ACTIVITY_GROUP__SUBGROUP : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__SUBGROUP; + case UMLPackage.ACTIVITY_GROUP__SUPER_GROUP : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__SUPER_GROUP; + case UMLPackage.ACTIVITY_GROUP__CONTAINED_NODE : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_NODE; + case UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__IN_ACTIVITY; + case UMLPackage.ACTIVITY_GROUP__CONTAINED_EDGE : + return UMLPackage.STRUCTURED_ACTIVITY_NODE__CONTAINED_EDGE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (mustIsolate: "); //$NON-NLS-1$ + result.append((eFlags & MUST_ISOLATE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getNamespace_ElementImport()) + || eIsSet(UMLPackage.eINSTANCE.getNamespace_PackageImport()) + || isSetOwnedMembers() || isSetSubgroups(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return eIsSet(UMLPackage.eINSTANCE.getNamespace_OwnedRule()) + || eIsSet(UMLPackage.eINSTANCE.getStructuredActivityNode_Variable()); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return eIsSet(UMLPackage.eINSTANCE.getNamespace_ImportedMember()) + || isSetOwnedMembers(); + } + + /** + * + * + * @generated + */ + public boolean isSetSubgroups() { + return false; + } + + /** + * + * + * @generated + */ + public ActivityGroup basicGetSuperGroup() { + return null; + } + + /** + * + * + * @generated + */ + public ActivityGroup getSuperGroup() { + ActivityGroup superGroup = basicGetSuperGroup(); + return superGroup == null + ? null + : (ActivityGroup) eResolveProxy((InternalEObject) superGroup); + } + + /** + * + * + * @generated + */ + public boolean isSetSuperGroup() { + return false; + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + if (isSetSuperGroup()) { + return basicGetSuperGroup(); + } + if (isSetInActivity()) { + return getInActivity(); + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() || isSetSuperGroup() || isSetInActivity(); + } + + /** + * + * + * @generated + */ + public boolean isSetContainedNodes() { + return eIsSet(UMLPackage.eINSTANCE.getStructuredActivityNode_Node()); + } + + /** + * + * + * @generated + */ + public boolean isSetContainedEdges() { + return eIsSet(UMLPackage.eINSTANCE.getStructuredActivityNode_Edge()); + } + + /** + * + * + * @generated + */ + public Activity getInActivity() { + return getActivity(); + } + + /** + * + * + * @generated + */ + public void setInActivity(Activity newInActivity) { + setActivity(newInActivity); + } + + /** + * + * + * @generated + */ + public boolean isSetInActivity() { + return false; + } + +} //StructuredActivityNodeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java new file mode 100644 index 00000000..e771f3d6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java @@ -0,0 +1,901 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuredClassifierImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredClassifier; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.StructuredClassifierOperations; + +/** + * + * An implementation of the model object 'Structured Classifier'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getRoles Role}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getAttributes Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getMembers Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getFeatures Feature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedAttributes Owned Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getParts Part}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedConnectors Owned Connector}
  • + *
+ *

+ * + * @generated + */ +public abstract class StructuredClassifierImpl + extends ClassifierImpl + implements StructuredClassifier { + + /** + * + * + * @generated + */ + protected StructuredClassifierImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getStructuredClassifier(); + } + + /** + * + * + * @generated + */ + public List getRoles() { + List role = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__ROLE); + if (role == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__ROLE, + role = new DerivedUnionEObjectEList(ConnectableElement.class, + this, UMLPackage.STRUCTURED_CLASSIFIER__ROLE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()})); + } + return role; + } + + /** + * + * + * @generated + */ + public ConnectableElement getRole(String name) { + for (Iterator i = getRoles().iterator(); i.hasNext();) { + ConnectableElement role = (ConnectableElement) i.next(); + if (name.equals(role.getName())) { + return role; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.STRUCTURED_CLASSIFIER__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getAttributes() { + List attribute = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__ATTRIBUTE); + if (attribute == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__ATTRIBUTE, + attribute = new DerivedUnionEObjectEList(Property.class, this, + UMLPackage.STRUCTURED_CLASSIFIER__ATTRIBUTE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()})); + } + return attribute; + } + + /** + * + * + * @generated + */ + public List getMembers() { + List member = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__MEMBER); + if (member == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__MEMBER, + member = new DerivedUnionEObjectEList(NamedElement.class, this, + UMLPackage.STRUCTURED_CLASSIFIER__MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_ImportedMember(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE.getClassifier_Feature(), + UMLPackage.eINSTANCE.getClassifier_InheritedMember(), + UMLPackage.eINSTANCE.getStructuredClassifier_Role()})); + } + return member; + } + + /** + * + * + * @generated + */ + public List getFeatures() { + List feature = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__FEATURE); + if (feature == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__FEATURE, + feature = new DerivedUnionEObjectEList(Feature.class, this, + UMLPackage.STRUCTURED_CLASSIFIER__FEATURE, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getClassifier_Attribute(), + UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()})); + } + return feature; + } + + /** + * + * + * @generated + */ + public List getOwnedAttributes() { + List ownedAttribute = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE); + if (ownedAttribute == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE, + ownedAttribute = new EObjectContainmentEList(Property.class, + this, UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE)); + } + return ownedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute(EClass eClass) { + Property newOwnedAttribute = (Property) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property createOwnedAttribute() { + Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty(); + getOwnedAttributes().add(newOwnedAttribute); + return newOwnedAttribute; + } + + /** + * + * + * @generated + */ + public Property getOwnedAttribute(String name) { + for (Iterator i = getOwnedAttributes().iterator(); i.hasNext();) { + Property ownedAttribute = (Property) i.next(); + if (name.equals(ownedAttribute.getName())) { + return ownedAttribute; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getParts() { + // TODO: implement this method to return the 'Part' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Property getPart(String name) { + for (Iterator i = getParts().iterator(); i.hasNext();) { + Property part = (Property) i.next(); + if (name.equals(part.getName())) { + return part; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getOwnedConnectors() { + List ownedConnector = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR); + if (ownedConnector == null) { + eVirtualSet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR, + ownedConnector = new EObjectContainmentEList(Connector.class, + this, UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR)); + } + return ownedConnector; + } + + /** + * + * + * @generated + */ + public Connector createOwnedConnector() { + Connector newOwnedConnector = UMLFactory.eINSTANCE.createConnector(); + getOwnedConnectors().add(newOwnedConnector); + return newOwnedConnector; + } + + /** + * + * + * @generated + */ + public Connector getOwnedConnector(String name) { + for (Iterator i = getOwnedConnectors().iterator(); i.hasNext();) { + Connector ownedConnector = (Connector) i.next(); + if (name.equals(ownedConnector.getName())) { + return ownedConnector; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicities(DiagnosticChain diagnostics, + Map context) { + return StructuredClassifierOperations.validateMultiplicities(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.STRUCTURED_CLASSIFIER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer( + null, + UMLPackage.STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE : + return ((InternalEList) getOwnedAttributes()).basicRemove( + otherEnd, msgs); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR : + return ((InternalEList) getOwnedConnectors()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_CLASSIFIER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.STRUCTURED_CLASSIFIER__NAME : + return getName(); + case UMLPackage.STRUCTURED_CLASSIFIER__VISIBILITY : + return getVisibility(); + case UMLPackage.STRUCTURED_CLASSIFIER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.STRUCTURED_CLASSIFIER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.STRUCTURED_CLASSIFIER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.STRUCTURED_CLASSIFIER__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.STRUCTURED_CLASSIFIER__MEMBER : + return getMembers(); + case UMLPackage.STRUCTURED_CLASSIFIER__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.STRUCTURED_CLASSIFIER__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE : + return getPackage(); + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.STRUCTURED_CLASSIFIER__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.STRUCTURED_CLASSIFIER__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.STRUCTURED_CLASSIFIER__FEATURE : + return getFeatures(); + case UMLPackage.STRUCTURED_CLASSIFIER__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.STRUCTURED_CLASSIFIER__GENERAL : + return getGenerals(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.STRUCTURED_CLASSIFIER__USE_CASE : + return getUseCases(); + case UMLPackage.STRUCTURED_CLASSIFIER__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.STRUCTURED_CLASSIFIER__ATTRIBUTE : + return getAttributes(); + case UMLPackage.STRUCTURED_CLASSIFIER__REPRESENTATION : + return getRepresentation(); + case UMLPackage.STRUCTURED_CLASSIFIER__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE : + return getOwnedAttributes(); + case UMLPackage.STRUCTURED_CLASSIFIER__PART : + return getParts(); + case UMLPackage.STRUCTURED_CLASSIFIER__ROLE : + return getRoles(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR : + return getOwnedConnectors(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__NAME : + setName((String) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + getOwnedAttributes().addAll((Collection) newValue); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + getOwnedConnectors().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_CLASSIFIER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE : + getOwnedAttributes().clear(); + return; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR : + getOwnedConnectors().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.STRUCTURED_CLASSIFIER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNER : + return isSetOwner(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__NAME : + String name = eVirtualIsSet(UMLPackage.STRUCTURED_CLASSIFIER__NAME) + ? (String) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.STRUCTURED_CLASSIFIER__VISIBILITY : + return eVirtualIsSet(UMLPackage.STRUCTURED_CLASSIFIER__VISIBILITY) + && eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.STRUCTURED_CLASSIFIER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.STRUCTURED_CLASSIFIER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__NAME_EXPRESSION) != null; + case UMLPackage.STRUCTURED_CLASSIFIER__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__MEMBER : + return isSetMembers(); + case UMLPackage.STRUCTURED_CLASSIFIER__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.STRUCTURED_CLASSIFIER__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_PARAMETER) != null; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.STRUCTURED_CLASSIFIER__PACKAGE : + return getPackage() != null; + case UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.STRUCTURED_CLASSIFIER__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.STRUCTURED_CLASSIFIER__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__FEATURE : + return isSetFeatures(); + case UMLPackage.STRUCTURED_CLASSIFIER__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.STRUCTURED_CLASSIFIER__REPRESENTATION : + return eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__REPRESENTATION) != null; + case UMLPackage.STRUCTURED_CLASSIFIER__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_SIGNATURE) != null; + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE : + List ownedAttribute = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_ATTRIBUTE); + return ownedAttribute != null && !ownedAttribute.isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__PART : + return !getParts().isEmpty(); + case UMLPackage.STRUCTURED_CLASSIFIER__ROLE : + return isSetRoles(); + case UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR : + List ownedConnector = (List) eVirtualGet(UMLPackage.STRUCTURED_CLASSIFIER__OWNED_CONNECTOR); + return ownedConnector != null && !ownedConnector.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetRoles() { + return eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()) + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()); + } + + /** + * + * + * @generated + */ + public boolean isSetAttributes() { + return super.isSetAttributes() + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedAttribute()); + } + + /** + * + * + * @generated + */ + public boolean isSetMembers() { + return super.isSetMembers() || isSetRoles(); + } + + /** + * + * + * @generated + */ + public boolean isSetFeatures() { + return super.isSetFeatures() + || eIsSet(UMLPackage.eINSTANCE + .getStructuredClassifier_OwnedConnector()); + } + +} //StructuredClassifierImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SubstitutionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SubstitutionImpl.java new file mode 100644 index 00000000..873f847f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SubstitutionImpl.java @@ -0,0 +1,618 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SubstitutionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; +import org.eclipse.uml2.common.util.SupersetEObjectWithInverseResolvingEList; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Substitution; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Substitution'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getSuppliers Supplier}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getClients Client}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getContract Contract}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getSubstitutingClassifier Substituting Classifier}
  • + *
+ *

+ * + * @generated + */ +public class SubstitutionImpl + extends RealizationImpl + implements Substitution { + + /** + * + * + * @generated + */ + protected SubstitutionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getSubstitution(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.SUBSTITUTION__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.SUBSTITUTION__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.SUBSTITUTION__TARGET, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Supplier(), + UMLPackage.eINSTANCE.getSubstitution_Contract()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.SUBSTITUTION__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.SUBSTITUTION__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.SUBSTITUTION__SOURCE, new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getDependency_Client(), + UMLPackage.eINSTANCE + .getSubstitution_SubstitutingClassifier()})); + } + return source; + } + + /** + * + * + * @generated + */ + public List getSuppliers() { + List supplier = (List) eVirtualGet(UMLPackage.SUBSTITUTION__SUPPLIER); + if (supplier == null) { + eVirtualSet(UMLPackage.SUBSTITUTION__SUPPLIER, + supplier = new SupersetEObjectResolvingEList( + NamedElement.class, this, + UMLPackage.SUBSTITUTION__SUPPLIER, + new int[]{UMLPackage.SUBSTITUTION__CONTRACT})); + } + return supplier; + } + + /** + * + * + * @generated + */ + public List getClients() { + List client = (List) eVirtualGet(UMLPackage.SUBSTITUTION__CLIENT); + if (client == null) { + eVirtualSet( + UMLPackage.SUBSTITUTION__CLIENT, + client = new SupersetEObjectWithInverseResolvingEList.ManyInverse( + NamedElement.class, + this, + UMLPackage.SUBSTITUTION__CLIENT, + new int[]{UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER}, + UMLPackage.NAMED_ELEMENT__CLIENT_DEPENDENCY)); + } + return client; + } + + /** + * + * + * @generated + */ + public Classifier getContract() { + Classifier contract = (Classifier) eVirtualGet(UMLPackage.SUBSTITUTION__CONTRACT); + if (contract != null && contract.eIsProxy()) { + Classifier oldContract = contract; + contract = (Classifier) eResolveProxy((InternalEObject) contract); + if (contract != oldContract) { + eVirtualSet(UMLPackage.SUBSTITUTION__CONTRACT, contract); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.SUBSTITUTION__CONTRACT, oldContract, + contract)); + } + } + return contract; + } + + /** + * + * + * @generated + */ + public Classifier basicGetContract() { + return (Classifier) eVirtualGet(UMLPackage.SUBSTITUTION__CONTRACT); + } + + /** + * + * + * @generated + */ + public void setContract(Classifier newContract) { + if (newContract != null && !getSuppliers().contains(newContract)) { + getSuppliers().add(newContract); + } + Classifier contract = newContract; + Object oldContract = eVirtualSet(UMLPackage.SUBSTITUTION__CONTRACT, + contract); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SUBSTITUTION__CONTRACT, + oldContract == EVIRTUAL_NO_VALUE + ? null + : oldContract, contract)); + + } + + /** + * + * + * @generated + */ + public Classifier getSubstitutingClassifier() { + if (eContainerFeatureID != UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER) + return null; + return (Classifier) eContainer; + } + + /** + * + * + * @generated + */ + public void setSubstitutingClassifier(Classifier newSubstitutingClassifier) { + if (newSubstitutingClassifier != null + && !getClients().contains(newSubstitutingClassifier)) { + getClients().add(newSubstitutingClassifier); + } + if (newSubstitutingClassifier != eContainer + || (eContainerFeatureID != UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER && newSubstitutingClassifier != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newSubstitutingClassifier)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newSubstitutingClassifier != null) + msgs = ((InternalEObject) newSubstitutingClassifier) + .eInverseAdd(this, UMLPackage.CLASSIFIER__SUBSTITUTION, + Classifier.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newSubstitutingClassifier, + UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER, + newSubstitutingClassifier, newSubstitutingClassifier)); + + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SUBSTITUTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.SUBSTITUTION__CLIENT : + return ((InternalEList) getClients()).basicAdd(otherEnd, + msgs); + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.SUBSTITUTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.SUBSTITUTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.SUBSTITUTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER, + msgs); + case UMLPackage.SUBSTITUTION__CLIENT : + return ((InternalEList) getClients()).basicRemove(otherEnd, + msgs); + case UMLPackage.SUBSTITUTION__MAPPING : + return basicSetMapping(null, msgs); + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + return eBasicSetContainer(null, + UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + return eContainer.eInverseRemove(this, + UMLPackage.CLASSIFIER__SUBSTITUTION, Classifier.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SUBSTITUTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.SUBSTITUTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.SUBSTITUTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.SUBSTITUTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.SUBSTITUTION__NAME : + return getName(); + case UMLPackage.SUBSTITUTION__VISIBILITY : + return getVisibility(); + case UMLPackage.SUBSTITUTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.SUBSTITUTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.SUBSTITUTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.SUBSTITUTION__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.SUBSTITUTION__SOURCE : + return getSources(); + case UMLPackage.SUBSTITUTION__TARGET : + return getTargets(); + case UMLPackage.SUBSTITUTION__SUPPLIER : + return getSuppliers(); + case UMLPackage.SUBSTITUTION__CLIENT : + return getClients(); + case UMLPackage.SUBSTITUTION__MAPPING : + return getMapping(); + case UMLPackage.SUBSTITUTION__CONTRACT : + if (resolve) + return getContract(); + return basicGetContract(); + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + return getSubstitutingClassifier(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SUBSTITUTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.SUBSTITUTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.SUBSTITUTION__NAME : + setName((String) newValue); + return; + case UMLPackage.SUBSTITUTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.SUBSTITUTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.SUBSTITUTION__SUPPLIER : + getSuppliers().clear(); + getSuppliers().addAll((Collection) newValue); + return; + case UMLPackage.SUBSTITUTION__CLIENT : + getClients().clear(); + getClients().addAll((Collection) newValue); + return; + case UMLPackage.SUBSTITUTION__MAPPING : + setMapping((OpaqueExpression) newValue); + return; + case UMLPackage.SUBSTITUTION__CONTRACT : + setContract((Classifier) newValue); + return; + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + setSubstitutingClassifier((Classifier) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SUBSTITUTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.SUBSTITUTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.SUBSTITUTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.SUBSTITUTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.SUBSTITUTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.SUBSTITUTION__SUPPLIER : + getSuppliers().clear(); + return; + case UMLPackage.SUBSTITUTION__CLIENT : + getClients().clear(); + return; + case UMLPackage.SUBSTITUTION__MAPPING : + setMapping((OpaqueExpression) null); + return; + case UMLPackage.SUBSTITUTION__CONTRACT : + setContract((Classifier) null); + return; + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + setSubstitutingClassifier((Classifier) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.SUBSTITUTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.SUBSTITUTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.SUBSTITUTION__OWNER : + return isSetOwner(); + case UMLPackage.SUBSTITUTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.SUBSTITUTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.SUBSTITUTION__NAME : + String name = eVirtualIsSet(UMLPackage.SUBSTITUTION__NAME) + ? (String) eVirtualGet(UMLPackage.SUBSTITUTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.SUBSTITUTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.SUBSTITUTION__VISIBILITY) + && eVirtualGet(UMLPackage.SUBSTITUTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.SUBSTITUTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.SUBSTITUTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.SUBSTITUTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.SUBSTITUTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.SUBSTITUTION__NAME_EXPRESSION) != null; + case UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.SUBSTITUTION__TEMPLATE_PARAMETER) != null; + case UMLPackage.SUBSTITUTION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.SUBSTITUTION__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.SUBSTITUTION__SOURCE : + return isSetSources(); + case UMLPackage.SUBSTITUTION__TARGET : + return isSetTargets(); + case UMLPackage.SUBSTITUTION__SUPPLIER : + List supplier = (List) eVirtualGet(UMLPackage.SUBSTITUTION__SUPPLIER); + return supplier != null && !supplier.isEmpty(); + case UMLPackage.SUBSTITUTION__CLIENT : + List client = (List) eVirtualGet(UMLPackage.SUBSTITUTION__CLIENT); + return client != null && !client.isEmpty(); + case UMLPackage.SUBSTITUTION__MAPPING : + return eVirtualGet(UMLPackage.SUBSTITUTION__MAPPING) != null; + case UMLPackage.SUBSTITUTION__CONTRACT : + return eVirtualGet(UMLPackage.SUBSTITUTION__CONTRACT) != null; + case UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER : + return getSubstitutingClassifier() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getSubstitution_Contract()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE + .getSubstitution_SubstitutingClassifier()); + } + +} //SubstitutionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java new file mode 100644 index 00000000..bf0c77b5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java @@ -0,0 +1,538 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateBindingImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameterSubstitution; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.TemplateBindingOperations; + +/** + * + * An implementation of the model object 'Template Binding'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getTargets Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSources Source}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSignature Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getParameterSubstitutions Parameter Substitution}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getBoundElement Bound Element}
  • + *
+ *

+ * + * @generated + */ +public class TemplateBindingImpl + extends DirectedRelationshipImpl + implements TemplateBinding { + + /** + * + * + * @generated + */ + protected TemplateBindingImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTemplateBinding(); + } + + /** + * + * + * @generated + */ + public List getTargets() { + List target = (List) eVirtualGet(UMLPackage.TEMPLATE_BINDING__TARGET); + if (target == null) { + eVirtualSet(UMLPackage.TEMPLATE_BINDING__TARGET, + target = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.TEMPLATE_BINDING__TARGET, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getTemplateBinding_Signature()})); + } + return target; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TEMPLATE_BINDING__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.TEMPLATE_BINDING__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.TEMPLATE_BINDING__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE + .getTemplateBinding_ParameterSubstitution()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getSources() { + List source = (List) eVirtualGet(UMLPackage.TEMPLATE_BINDING__SOURCE); + if (source == null) { + eVirtualSet(UMLPackage.TEMPLATE_BINDING__SOURCE, + source = new DerivedUnionEObjectEList(Element.class, this, + UMLPackage.TEMPLATE_BINDING__SOURCE, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getTemplateBinding_BoundElement()})); + } + return source; + } + + /** + * + * + * @generated + */ + public TemplateSignature getSignature() { + TemplateSignature signature = (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATE_BINDING__SIGNATURE); + if (signature != null && signature.eIsProxy()) { + TemplateSignature oldSignature = signature; + signature = (TemplateSignature) eResolveProxy((InternalEObject) signature); + if (signature != oldSignature) { + eVirtualSet(UMLPackage.TEMPLATE_BINDING__SIGNATURE, signature); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TEMPLATE_BINDING__SIGNATURE, oldSignature, + signature)); + } + } + return signature; + } + + /** + * + * + * @generated + */ + public TemplateSignature basicGetSignature() { + return (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATE_BINDING__SIGNATURE); + } + + /** + * + * + * @generated + */ + public void setSignature(TemplateSignature newSignature) { + TemplateSignature signature = newSignature; + Object oldSignature = eVirtualSet( + UMLPackage.TEMPLATE_BINDING__SIGNATURE, signature); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_BINDING__SIGNATURE, + oldSignature == EVIRTUAL_NO_VALUE + ? null + : oldSignature, signature)); + + } + + /** + * + * + * @generated + */ + public List getParameterSubstitutions() { + List parameterSubstitution = (List) eVirtualGet(UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION); + if (parameterSubstitution == null) { + eVirtualSet( + UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION, + parameterSubstitution = new EObjectContainmentWithInverseEList( + TemplateParameterSubstitution.class, + this, + UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING)); + } + return parameterSubstitution; + } + + /** + * + * + * @generated + */ + public TemplateParameterSubstitution createParameterSubstitution() { + TemplateParameterSubstitution newParameterSubstitution = UMLFactory.eINSTANCE + .createTemplateParameterSubstitution(); + getParameterSubstitutions().add(newParameterSubstitution); + return newParameterSubstitution; + } + + /** + * + * + * @generated + */ + public TemplateableElement getBoundElement() { + if (eContainerFeatureID != UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT) + return null; + return (TemplateableElement) eContainer; + } + + /** + * + * + * @generated + */ + public void setBoundElement(TemplateableElement newBoundElement) { + if (newBoundElement != eContainer + || (eContainerFeatureID != UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT && newBoundElement != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newBoundElement)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newBoundElement != null) + msgs = ((InternalEObject) newBoundElement).eInverseAdd(this, + UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING, + TemplateableElement.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newBoundElement, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT, newBoundElement, + newBoundElement)); + + } + + /** + * + * + * @generated + */ + public boolean validateParameterSubstitution(DiagnosticChain diagnostics, + Map context) { + return TemplateBindingOperations.validateParameterSubstitution(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOneParameterSubstitution( + DiagnosticChain diagnostics, Map context) { + return TemplateBindingOperations.validateOneParameterSubstitution(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_BINDING__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION : + return ((InternalEList) getParameterSubstitutions()) + .basicAdd(otherEnd, msgs); + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_BINDING__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_BINDING__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION : + return ((InternalEList) getParameterSubstitutions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + return eBasicSetContainer(null, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + return eContainer.eInverseRemove(this, + UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING, + TemplateableElement.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_BINDING__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TEMPLATE_BINDING__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TEMPLATE_BINDING__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TEMPLATE_BINDING__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TEMPLATE_BINDING__RELATED_ELEMENT : + return getRelatedElements(); + case UMLPackage.TEMPLATE_BINDING__SOURCE : + return getSources(); + case UMLPackage.TEMPLATE_BINDING__TARGET : + return getTargets(); + case UMLPackage.TEMPLATE_BINDING__SIGNATURE : + if (resolve) + return getSignature(); + return basicGetSignature(); + case UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION : + return getParameterSubstitutions(); + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + return getBoundElement(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_BINDING__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_BINDING__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_BINDING__SIGNATURE : + setSignature((TemplateSignature) newValue); + return; + case UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION : + getParameterSubstitutions().clear(); + getParameterSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + setBoundElement((TemplateableElement) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_BINDING__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TEMPLATE_BINDING__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TEMPLATE_BINDING__SIGNATURE : + setSignature((TemplateSignature) null); + return; + case UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION : + getParameterSubstitutions().clear(); + return; + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + setBoundElement((TemplateableElement) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_BINDING__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TEMPLATE_BINDING__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TEMPLATE_BINDING__OWNER : + return isSetOwner(); + case UMLPackage.TEMPLATE_BINDING__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TEMPLATE_BINDING__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TEMPLATE_BINDING__RELATED_ELEMENT : + return isSetRelatedElements(); + case UMLPackage.TEMPLATE_BINDING__SOURCE : + return isSetSources(); + case UMLPackage.TEMPLATE_BINDING__TARGET : + return isSetTargets(); + case UMLPackage.TEMPLATE_BINDING__SIGNATURE : + return eVirtualGet(UMLPackage.TEMPLATE_BINDING__SIGNATURE) != null; + case UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION : + List parameterSubstitution = (List) eVirtualGet(UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION); + return parameterSubstitution != null + && !parameterSubstitution.isEmpty(); + case UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT : + return getBoundElement() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetTargets() { + return super.isSetTargets() + || eIsSet(UMLPackage.eINSTANCE.getTemplateBinding_Signature()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateBinding_ParameterSubstitution()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateableElement boundElement = getBoundElement(); + if (boundElement != null) { + return boundElement; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getTemplateBinding_BoundElement()); + } + + /** + * + * + * @generated + */ + public boolean isSetSources() { + return super.isSetSources() + || eIsSet(UMLPackage.eINSTANCE.getTemplateBinding_BoundElement()); + } + +} //TemplateBindingImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java new file mode 100644 index 00000000..138e4401 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java @@ -0,0 +1,727 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateParameterImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.TemplateParameterOperations; + +/** + * + * An implementation of the model object 'Template Parameter'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getParameteredElement Parametered Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getDefault Default}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getSignature Signature}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedParameteredElement Owned Parametered Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedDefault Owned Default}
  • + *
+ *

+ * + * @generated + */ +public class TemplateParameterImpl + extends ElementImpl + implements TemplateParameter { + + /** + * + * + * @generated + */ + protected TemplateParameterImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTemplateParameter(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.TEMPLATE_PARAMETER__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.TEMPLATE_PARAMETER__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE + .getTemplateParameter_OwnedParameteredElement(), + UMLPackage.eINSTANCE + .getTemplateParameter_OwnedDefault()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public ParameterableElement getParameteredElement() { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (parameteredElement != null && parameteredElement.eIsProxy()) { + ParameterableElement oldParameteredElement = parameteredElement; + parameteredElement = (ParameterableElement) eResolveProxy((InternalEObject) parameteredElement); + if (parameteredElement != oldParameteredElement) { + eVirtualSet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + parameteredElement); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement, parameteredElement)); + } + } + return parameteredElement; + } + + /** + * + * + * @generated + */ + public ParameterableElement basicGetParameteredElement() { + return (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetParameteredElement( + ParameterableElement newParameteredElement, NotificationChain msgs) { + Object oldParameteredElement = eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + oldParameteredElement == EVIRTUAL_NO_VALUE + ? null + : oldParameteredElement, newParameteredElement); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != null + && eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != newParameteredElement) { + setOwnedParameteredElement(null); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setParameteredElement(ParameterableElement newParameteredElement) { + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (newParameteredElement != parameteredElement) { + NotificationChain msgs = null; + if (parameteredElement != null) + msgs = ((InternalEObject) parameteredElement).eInverseRemove( + this, UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + ParameterableElement.class, msgs); + if (newParameteredElement != null) + msgs = ((InternalEObject) newParameteredElement).eInverseAdd( + this, UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + ParameterableElement.class, msgs); + msgs = basicSetParameteredElement(newParameteredElement, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + newParameteredElement, newParameteredElement)); + + } + + /** + * + * + * @generated + */ + public ParameterableElement getDefault() { + ParameterableElement default_ = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT); + if (default_ != null && default_.eIsProxy()) { + ParameterableElement oldDefault = default_; + default_ = (ParameterableElement) eResolveProxy((InternalEObject) default_); + if (default_ != oldDefault) { + eVirtualSet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT, default_); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TEMPLATE_PARAMETER__DEFAULT, oldDefault, + default_)); + } + } + return default_; + } + + /** + * + * + * @generated + */ + public ParameterableElement basicGetDefault() { + return (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT); + } + + /** + * + * + * @generated + */ + public void setDefault(ParameterableElement newDefault) { + ParameterableElement default_ = newDefault; + Object oldDefault = eVirtualSet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT, + default_); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__DEFAULT, + oldDefault == EVIRTUAL_NO_VALUE + ? null + : oldDefault, default_)); + + if (eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT) != null + && eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT) != newDefault) { + setOwnedDefault(null); + } + } + + /** + * + * + * @generated + */ + public TemplateSignature getSignature() { + if (eContainerFeatureID != UMLPackage.TEMPLATE_PARAMETER__SIGNATURE) + return null; + return (TemplateSignature) eContainer; + } + + /** + * + * + * @generated + */ + public void setSignature(TemplateSignature newSignature) { + if (newSignature != eContainer + || (eContainerFeatureID != UMLPackage.TEMPLATE_PARAMETER__SIGNATURE && newSignature != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newSignature)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newSignature != null) + msgs = ((InternalEObject) newSignature).eInverseAdd(this, + UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER, + TemplateSignature.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newSignature, + UMLPackage.TEMPLATE_PARAMETER__SIGNATURE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__SIGNATURE, newSignature, + newSignature)); + + } + + /** + * + * + * @generated + */ + public ParameterableElement getOwnedParameteredElement() { + ParameterableElement ownedParameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT); + return ownedParameteredElement; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedParameteredElement( + ParameterableElement newOwnedParameteredElement, + NotificationChain msgs) { + Object oldOwnedParameteredElement = eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + newOwnedParameteredElement); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + oldOwnedParameteredElement == EVIRTUAL_NO_VALUE + ? null + : oldOwnedParameteredElement, newOwnedParameteredElement); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (newOwnedParameteredElement != null + || oldOwnedParameteredElement == eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT)) { + setParameteredElement(newOwnedParameteredElement); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedParameteredElement( + ParameterableElement newOwnedParameteredElement) { + ParameterableElement ownedParameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT); + if (newOwnedParameteredElement != ownedParameteredElement) { + NotificationChain msgs = null; + if (ownedParameteredElement != null) + msgs = ((InternalEObject) ownedParameteredElement) + .eInverseRemove( + this, + UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + ParameterableElement.class, msgs); + if (newOwnedParameteredElement != null) + msgs = ((InternalEObject) newOwnedParameteredElement) + .eInverseAdd( + this, + UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + ParameterableElement.class, msgs); + msgs = basicSetOwnedParameteredElement(newOwnedParameteredElement, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + newOwnedParameteredElement, newOwnedParameteredElement)); + + } + + /** + * + * + * @generated + */ + public ParameterableElement createOwnedParameteredElement(EClass eClass) { + ParameterableElement newOwnedParameteredElement = (ParameterableElement) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedParameteredElement(newOwnedParameteredElement); + return newOwnedParameteredElement; + } + + /** + * + * + * @generated + */ + public ParameterableElement getOwnedDefault() { + ParameterableElement ownedDefault = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT); + return ownedDefault; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedDefault( + ParameterableElement newOwnedDefault, NotificationChain msgs) { + Object oldOwnedDefault = eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT, newOwnedDefault); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT, + oldOwnedDefault == EVIRTUAL_NO_VALUE + ? null + : oldOwnedDefault, newOwnedDefault); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + if (newOwnedDefault != null + || oldOwnedDefault == eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT)) { + setDefault(newOwnedDefault); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedDefault(ParameterableElement newOwnedDefault) { + ParameterableElement ownedDefault = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT); + if (newOwnedDefault != ownedDefault) { + NotificationChain msgs = null; + if (ownedDefault != null) + msgs = ((InternalEObject) ownedDefault).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT, null, + msgs); + if (newOwnedDefault != null) + msgs = ((InternalEObject) newOwnedDefault).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT, null, + msgs); + msgs = basicSetOwnedDefault(newOwnedDefault, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT, newOwnedDefault, + newOwnedDefault)); + + } + + /** + * + * + * @generated + */ + public ParameterableElement createOwnedDefault(EClass eClass) { + ParameterableElement newOwnedDefault = (ParameterableElement) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedDefault(newOwnedDefault); + return newOwnedDefault; + } + + /** + * + * + * @generated + */ + public boolean validateMustBeCompatible(DiagnosticChain diagnostics, + Map context) { + return TemplateParameterOperations.validateMustBeCompatible(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_PARAMETER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.TEMPLATE_PARAMETER__SIGNATURE, msgs); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + ParameterableElement ownedParameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT); + if (ownedParameteredElement != null) + msgs = ((InternalEObject) ownedParameteredElement) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + null, msgs); + return basicSetOwnedParameteredElement( + (ParameterableElement) otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); + if (parameteredElement != null) + msgs = ((InternalEObject) parameteredElement) + .eInverseRemove( + this, + UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + ParameterableElement.class, msgs); + return basicSetParameteredElement( + (ParameterableElement) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_PARAMETER__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + return eBasicSetContainer(null, + UMLPackage.TEMPLATE_PARAMETER__SIGNATURE, msgs); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return basicSetOwnedParameteredElement(null, msgs); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT : + return basicSetOwnedDefault(null, msgs); + case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + return basicSetParameteredElement(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + return eContainer.eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER, + TemplateSignature.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TEMPLATE_PARAMETER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + return getSignature(); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return getOwnedParameteredElement(); + case UMLPackage.TEMPLATE_PARAMETER__DEFAULT : + if (resolve) + return getDefault(); + return basicGetDefault(); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT : + return getOwnedDefault(); + case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + if (resolve) + return getParameteredElement(); + return basicGetParameteredElement(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + setSignature((TemplateSignature) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + setOwnedParameteredElement((ParameterableElement) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER__DEFAULT : + setDefault((ParameterableElement) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT : + setOwnedDefault((ParameterableElement) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + setParameteredElement((ParameterableElement) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + setSignature((TemplateSignature) null); + return; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + setOwnedParameteredElement((ParameterableElement) null); + return; + case UMLPackage.TEMPLATE_PARAMETER__DEFAULT : + setDefault((ParameterableElement) null); + return; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT : + setOwnedDefault((ParameterableElement) null); + return; + case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + setParameteredElement((ParameterableElement) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TEMPLATE_PARAMETER__OWNER : + return isSetOwner(); + case UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TEMPLATE_PARAMETER__SIGNATURE : + return getSignature() != null; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != null; + case UMLPackage.TEMPLATE_PARAMETER__DEFAULT : + return eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT) != null; + case UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT : + return eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT) != null; + case UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : + return eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateSignature signature = getSignature(); + if (signature != null) { + return signature; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getTemplateParameter_Signature()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateParameter_OwnedParameteredElement()) + || eIsSet(UMLPackage.eINSTANCE.getTemplateParameter_OwnedDefault()); + } + +} //TemplateParameterImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterSubstitutionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterSubstitutionImpl.java new file mode 100644 index 00000000..c7aec1a7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterSubstitutionImpl.java @@ -0,0 +1,496 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateParameterSubstitutionImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateParameterSubstitution; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.TemplateParameterSubstitutionOperations; + +/** + * + * An implementation of the model object 'Template Parameter Substitution'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getActuals Actual}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getFormal Formal}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getOwnedActuals Owned Actual}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getTemplateBinding Template Binding}
  • + *
+ *

+ * + * @generated + */ +public class TemplateParameterSubstitutionImpl + extends ElementImpl + implements TemplateParameterSubstitution { + + /** + * + * + * @generated + */ + protected TemplateParameterSubstitutionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTemplateParameterSubstitution(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE + .getTemplateParameterSubstitution_OwnedActual()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getActuals() { + List actual = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL); + if (actual == null) { + eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL, + actual = new SupersetEObjectResolvingEList( + ParameterableElement.class, + this, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL, + new int[]{UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL})); + } + return actual; + } + + /** + * + * + * @generated + */ + public TemplateParameter getFormal() { + TemplateParameter formal = (TemplateParameter) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL); + if (formal != null && formal.eIsProxy()) { + TemplateParameter oldFormal = formal; + formal = (TemplateParameter) eResolveProxy((InternalEObject) formal); + if (formal != oldFormal) { + eVirtualSet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL, + formal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL, + oldFormal, formal)); + } + } + return formal; + } + + /** + * + * + * @generated + */ + public TemplateParameter basicGetFormal() { + return (TemplateParameter) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL); + } + + /** + * + * + * @generated + */ + public void setFormal(TemplateParameter newFormal) { + TemplateParameter formal = newFormal; + Object oldFormal = eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL, formal); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL, + oldFormal == EVIRTUAL_NO_VALUE + ? null + : oldFormal, formal)); + + } + + /** + * + * + * @generated + */ + public List getOwnedActuals() { + List ownedActual = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL); + if (ownedActual == null) { + eVirtualSet( + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL, + ownedActual = new SubsetEObjectContainmentEList( + ParameterableElement.class, + this, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL, + new int[]{UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL})); + } + return ownedActual; + } + + /** + * + * + * @generated + */ + public ParameterableElement createOwnedActual(EClass eClass) { + ParameterableElement newOwnedActual = (ParameterableElement) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getOwnedActuals().add(newOwnedActual); + return newOwnedActual; + } + + /** + * + * + * @generated + */ + public TemplateBinding getTemplateBinding() { + if (eContainerFeatureID != UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING) + return null; + return (TemplateBinding) eContainer; + } + + /** + * + * + * @generated + */ + public void setTemplateBinding(TemplateBinding newTemplateBinding) { + if (newTemplateBinding != eContainer + || (eContainerFeatureID != UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING && newTemplateBinding != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newTemplateBinding)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newTemplateBinding != null) + msgs = ((InternalEObject) newTemplateBinding).eInverseAdd(this, + UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION, + TemplateBinding.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newTemplateBinding, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING, + newTemplateBinding, newTemplateBinding)); + + } + + /** + * + * + * @generated + */ + public boolean validateMustBeCompatible(DiagnosticChain diagnostics, + Map context) { + return TemplateParameterSubstitutionOperations + .validateMustBeCompatible(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer( + otherEnd, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL : + return ((InternalEList) getOwnedActuals()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + return eBasicSetContainer( + null, + UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + return eContainer.eInverseRemove(this, + UMLPackage.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION, + TemplateBinding.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL : + if (resolve) + return getFormal(); + return basicGetFormal(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL : + return getActuals(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL : + return getOwnedActuals(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + return getTemplateBinding(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL : + setFormal((TemplateParameter) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL : + getActuals().clear(); + getActuals().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL : + getOwnedActuals().clear(); + getOwnedActuals().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + setTemplateBinding((TemplateBinding) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL : + setFormal((TemplateParameter) null); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL : + getActuals().clear(); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL : + getOwnedActuals().clear(); + return; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + setTemplateBinding((TemplateBinding) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNER : + return isSetOwner(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL : + return eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL) != null; + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL : + List actual = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL); + return actual != null && !actual.isEmpty(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL : + List ownedActual = (List) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_ACTUAL); + return ownedActual != null && !ownedActual.isEmpty(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING : + return getTemplateBinding() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateParameterSubstitution_OwnedActual()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateBinding templateBinding = getTemplateBinding(); + if (templateBinding != null) { + return templateBinding; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateParameterSubstitution_TemplateBinding()); + } + +} //TemplateParameterSubstitutionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateSignatureImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateSignatureImpl.java new file mode 100644 index 00000000..f43659b1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateSignatureImpl.java @@ -0,0 +1,439 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateSignatureImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectContainmentWithInverseEList; +import org.eclipse.uml2.common.util.SupersetEObjectResolvingEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.TemplateSignatureOperations; + +/** + * + * An implementation of the model object 'Template Signature'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getParameters Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getTemplate Template}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getOwnedParameters Owned Parameter}
  • + *
+ *

+ * + * @generated + */ +public class TemplateSignatureImpl + extends ElementImpl + implements TemplateSignature { + + /** + * + * + * @generated + */ + protected TemplateSignatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTemplateSignature(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TEMPLATE_SIGNATURE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.TEMPLATE_SIGNATURE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.TEMPLATE_SIGNATURE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE + .getTemplateSignature_OwnedParameter()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getParameters() { + List parameter = (List) eVirtualGet(UMLPackage.TEMPLATE_SIGNATURE__PARAMETER); + if (parameter == null) { + eVirtualSet(UMLPackage.TEMPLATE_SIGNATURE__PARAMETER, + parameter = new SupersetEObjectResolvingEList( + TemplateParameter.class, this, + UMLPackage.TEMPLATE_SIGNATURE__PARAMETER, + new int[]{UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER})); + } + return parameter; + } + + /** + * + * + * @generated + */ + public TemplateableElement getTemplate() { + if (eContainerFeatureID != UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE) + return null; + return (TemplateableElement) eContainer; + } + + /** + * + * + * @generated + */ + public void setTemplate(TemplateableElement newTemplate) { + if (newTemplate != eContainer + || (eContainerFeatureID != UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE && newTemplate != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newTemplate)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newTemplate != null) + msgs = ((InternalEObject) newTemplate).eInverseAdd(this, + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + TemplateableElement.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newTemplate, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, newTemplate, + newTemplate)); + + } + + /** + * + * + * @generated + */ + public List getOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER); + if (ownedParameter == null) { + eVirtualSet(UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER, + ownedParameter = new SubsetEObjectContainmentWithInverseEList( + TemplateParameter.class, this, + UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER, + new int[]{UMLPackage.TEMPLATE_SIGNATURE__PARAMETER}, + UMLPackage.TEMPLATE_PARAMETER__SIGNATURE)); + } + return ownedParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter createOwnedParameter(EClass eClass) { + TemplateParameter newOwnedParameter = (TemplateParameter) eClass + .getEPackage().getEFactoryInstance().create(eClass); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public TemplateParameter createOwnedParameter() { + TemplateParameter newOwnedParameter = UMLFactory.eINSTANCE + .createTemplateParameter(); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * + * + * @generated + */ + public boolean validateOwnElements(DiagnosticChain diagnostics, Map context) { + return TemplateSignatureOperations.validateOwnElements(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_SIGNATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, msgs); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicAdd( + otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATE_SIGNATURE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + return eBasicSetContainer(null, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, msgs); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + TemplateableElement.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_SIGNATURE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TEMPLATE_SIGNATURE__PARAMETER : + return getParameters(); + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + return getTemplate(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + return getOwnedParameters(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_SIGNATURE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_SIGNATURE__PARAMETER : + getParameters().clear(); + getParameters().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + setTemplate((TemplateableElement) newValue); + return; + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_SIGNATURE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TEMPLATE_SIGNATURE__PARAMETER : + getParameters().clear(); + return; + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + setTemplate((TemplateableElement) null); + return; + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATE_SIGNATURE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNER : + return isSetOwner(); + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TEMPLATE_SIGNATURE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TEMPLATE_SIGNATURE__PARAMETER : + List parameter = (List) eVirtualGet(UMLPackage.TEMPLATE_SIGNATURE__PARAMETER); + return parameter != null && !parameter.isEmpty(); + case UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE : + return getTemplate() != null; + case UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.TEMPLATE_SIGNATURE__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + TemplateableElement template = getTemplate(); + if (template != null) { + return template; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getTemplateSignature_Template()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateSignature_OwnedParameter()); + } + +} //TemplateSignatureImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateableElementImpl.java new file mode 100644 index 00000000..e741c21f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateableElementImpl.java @@ -0,0 +1,426 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateableElementImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * + * An implementation of the model object 'Templateable Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl#getTemplateBindings Template Binding}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl#getOwnedTemplateSignature Owned Template Signature}
  • + *
+ *

+ * + * @generated + */ +public abstract class TemplateableElementImpl + extends ElementImpl + implements TemplateableElement { + + /** + * + * + * @generated + */ + protected TemplateableElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTemplateableElement(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * + * + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * + * + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * + * + * @generated + */ + public boolean isTemplate() { + return TemplateableElementOperations.isTemplate(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATEABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEMPLATEABLE_ELEMENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATEABLE_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATEABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATEABLE_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEMPLATEABLE_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()); + } + +} //TemplateableElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java new file mode 100644 index 00000000..15882992 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java @@ -0,0 +1,793 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TestIdentityActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.TestIdentityAction; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.TestIdentityActionOperations; + +/** + * + * An implementation of the model object 'Test Identity Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getFirst First}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getSecond Second}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class TestIdentityActionImpl + extends ActionImpl + implements TestIdentityAction { + + /** + * + * + * @generated + */ + protected TestIdentityActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTestIdentityAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.TEST_IDENTITY_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.TEST_IDENTITY_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getTestIdentityAction_First(), + UMLPackage.eINSTANCE.getTestIdentityAction_Second()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.TEST_IDENTITY_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.TEST_IDENTITY_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getTestIdentityAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public InputPin getFirst() { + InputPin first = (InputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__FIRST); + return first; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFirst(InputPin newFirst, + NotificationChain msgs) { + Object oldFirst = eVirtualSet(UMLPackage.TEST_IDENTITY_ACTION__FIRST, + newFirst); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TEST_IDENTITY_ACTION__FIRST, + oldFirst == EVIRTUAL_NO_VALUE + ? null + : oldFirst, newFirst); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setFirst(InputPin newFirst) { + InputPin first = (InputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__FIRST); + if (newFirst != first) { + NotificationChain msgs = null; + if (first != null) + msgs = ((InternalEObject) first).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEST_IDENTITY_ACTION__FIRST, null, msgs); + if (newFirst != null) + msgs = ((InternalEObject) newFirst).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEST_IDENTITY_ACTION__FIRST, null, msgs); + msgs = basicSetFirst(newFirst, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEST_IDENTITY_ACTION__FIRST, newFirst, newFirst)); + + } + + /** + * + * + * @generated + */ + public InputPin createFirst(EClass eClass) { + InputPin newFirst = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setFirst(newFirst); + return newFirst; + } + + /** + * + * + * @generated + */ + public InputPin createFirst() { + InputPin newFirst = UMLFactory.eINSTANCE.createInputPin(); + setFirst(newFirst); + return newFirst; + } + + /** + * + * + * @generated + */ + public InputPin getSecond() { + InputPin second = (InputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__SECOND); + return second; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSecond(InputPin newSecond, + NotificationChain msgs) { + Object oldSecond = eVirtualSet(UMLPackage.TEST_IDENTITY_ACTION__SECOND, + newSecond); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TEST_IDENTITY_ACTION__SECOND, + oldSecond == EVIRTUAL_NO_VALUE + ? null + : oldSecond, newSecond); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSecond(InputPin newSecond) { + InputPin second = (InputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__SECOND); + if (newSecond != second) { + NotificationChain msgs = null; + if (second != null) + msgs = ((InternalEObject) second).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEST_IDENTITY_ACTION__SECOND, null, msgs); + if (newSecond != null) + msgs = ((InternalEObject) newSecond).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEST_IDENTITY_ACTION__SECOND, null, msgs); + msgs = basicSetSecond(newSecond, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEST_IDENTITY_ACTION__SECOND, newSecond, newSecond)); + + } + + /** + * + * + * @generated + */ + public InputPin createSecond(EClass eClass) { + InputPin newSecond = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setSecond(newSecond); + return newSecond; + } + + /** + * + * + * @generated + */ + public InputPin createSecond() { + InputPin newSecond = UMLFactory.eINSTANCE.createInputPin(); + setSecond(newSecond); + return newSecond; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet(UMLPackage.TEST_IDENTITY_ACTION__RESULT, + newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TEST_IDENTITY_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEST_IDENTITY_ACTION__RESULT, null, msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.TEST_IDENTITY_ACTION__RESULT, null, msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TEST_IDENTITY_ACTION__RESULT, newResult, newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateNoType(DiagnosticChain diagnostics, Map context) { + return TestIdentityActionOperations.validateNoType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return TestIdentityActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateResultIsBoolean(DiagnosticChain diagnostics, + Map context) { + return TestIdentityActionOperations.validateResultIsBoolean(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TEST_IDENTITY_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__FIRST : + return basicSetFirst(null, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__SECOND : + return basicSetSecond(null, msgs); + case UMLPackage.TEST_IDENTITY_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEST_IDENTITY_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TEST_IDENTITY_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TEST_IDENTITY_ACTION__NAME : + return getName(); + case UMLPackage.TEST_IDENTITY_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.TEST_IDENTITY_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TEST_IDENTITY_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TEST_IDENTITY_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.TEST_IDENTITY_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.TEST_IDENTITY_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.TEST_IDENTITY_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.TEST_IDENTITY_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.TEST_IDENTITY_ACTION__INPUT : + return getInputs(); + case UMLPackage.TEST_IDENTITY_ACTION__CONTEXT : + return getContext(); + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.TEST_IDENTITY_ACTION__FIRST : + return getFirst(); + case UMLPackage.TEST_IDENTITY_ACTION__SECOND : + return getSecond(); + case UMLPackage.TEST_IDENTITY_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEST_IDENTITY_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.TEST_IDENTITY_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__FIRST : + setFirst((InputPin) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__SECOND : + setSecond((InputPin) newValue); + return; + case UMLPackage.TEST_IDENTITY_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEST_IDENTITY_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TEST_IDENTITY_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.TEST_IDENTITY_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.TEST_IDENTITY_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.TEST_IDENTITY_ACTION__FIRST : + setFirst((InputPin) null); + return; + case UMLPackage.TEST_IDENTITY_ACTION__SECOND : + setSecond((InputPin) null); + return; + case UMLPackage.TEST_IDENTITY_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TEST_IDENTITY_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TEST_IDENTITY_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.TEST_IDENTITY_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.TEST_IDENTITY_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TEST_IDENTITY_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.TEST_IDENTITY_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TEST_IDENTITY_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.TEST_IDENTITY_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.TEST_IDENTITY_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.TEST_IDENTITY_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.TEST_IDENTITY_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.TEST_IDENTITY_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.TEST_IDENTITY_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.TEST_IDENTITY_ACTION__FIRST : + return eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__FIRST) != null; + case UMLPackage.TEST_IDENTITY_ACTION__SECOND : + return eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__SECOND) != null; + case UMLPackage.TEST_IDENTITY_ACTION__RESULT : + return eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getTestIdentityAction_First()) + || eIsSet(UMLPackage.eINSTANCE.getTestIdentityAction_Second()); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getTestIdentityAction_Result()); + } + +} //TestIdentityActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeConstraintImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeConstraintImpl.java new file mode 100644 index 00000000..7251f3cf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeConstraintImpl.java @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeConstraintImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.TimeConstraint; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * An implementation of the model object 'Time Constraint'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl#getSpecification Specification}
  • + *
+ *

+ * + * @generated + */ +public class TimeConstraintImpl + extends IntervalConstraintImpl + implements TimeConstraint { + + /** + * + * + * @generated + */ + protected TimeConstraintImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTimeConstraint(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getSpecification() { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.TIME_CONSTRAINT__SPECIFICATION); + return specification; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSpecification( + ValueSpecification newSpecification, NotificationChain msgs) { + Object oldSpecification = eVirtualSet( + UMLPackage.TIME_CONSTRAINT__SPECIFICATION, newSpecification); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TIME_CONSTRAINT__SPECIFICATION, + oldSpecification == EVIRTUAL_NO_VALUE + ? null + : oldSpecification, newSpecification); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSpecification(ValueSpecification newSpecification) { + ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.TIME_CONSTRAINT__SPECIFICATION); + if (newSpecification != specification) { + NotificationChain msgs = null; + if (specification != null) + msgs = ((InternalEObject) specification) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.TIME_CONSTRAINT__SPECIFICATION, null, msgs); + if (newSpecification != null) + msgs = ((InternalEObject) newSpecification) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.TIME_CONSTRAINT__SPECIFICATION, null, msgs); + msgs = basicSetSpecification(newSpecification, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_CONSTRAINT__SPECIFICATION, newSpecification, + newSpecification)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createSpecification(EClass eClass) { + ValueSpecification newSpecification = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setSpecification(newSpecification); + return newSpecification; + } + + /** + * + * + * @generated + */ + public boolean isSetSpecification() { + return eVirtualGet(UMLPackage.TIME_CONSTRAINT__SPECIFICATION) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_CONSTRAINT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TIME_CONSTRAINT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TIME_CONSTRAINT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TIME_CONSTRAINT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TIME_CONSTRAINT__NAME : + return getName(); + case UMLPackage.TIME_CONSTRAINT__VISIBILITY : + return getVisibility(); + case UMLPackage.TIME_CONSTRAINT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TIME_CONSTRAINT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TIME_CONSTRAINT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TIME_CONSTRAINT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TIME_CONSTRAINT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.TIME_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.TIME_CONSTRAINT__CONSTRAINED_ELEMENT : + return getConstrainedElements(); + case UMLPackage.TIME_CONSTRAINT__SPECIFICATION : + return getSpecification(); + case UMLPackage.TIME_CONSTRAINT__CONTEXT : + return getContext(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_CONSTRAINT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TIME_CONSTRAINT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TIME_CONSTRAINT__OWNER : + return isSetOwner(); + case UMLPackage.TIME_CONSTRAINT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TIME_CONSTRAINT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TIME_CONSTRAINT__NAME : + String name = eVirtualIsSet(UMLPackage.TIME_CONSTRAINT__NAME) + ? (String) eVirtualGet(UMLPackage.TIME_CONSTRAINT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TIME_CONSTRAINT__VISIBILITY : + return eVirtualIsSet(UMLPackage.TIME_CONSTRAINT__VISIBILITY) + && eVirtualGet(UMLPackage.TIME_CONSTRAINT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TIME_CONSTRAINT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TIME_CONSTRAINT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TIME_CONSTRAINT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TIME_CONSTRAINT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TIME_CONSTRAINT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TIME_CONSTRAINT__NAME_EXPRESSION) != null; + case UMLPackage.TIME_CONSTRAINT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.TIME_CONSTRAINT__TEMPLATE_PARAMETER) != null; + case UMLPackage.TIME_CONSTRAINT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.TIME_CONSTRAINT__CONSTRAINED_ELEMENT : + List constrainedElement = (List) eVirtualGet(UMLPackage.TIME_CONSTRAINT__CONSTRAINED_ELEMENT); + return constrainedElement != null + && !constrainedElement.isEmpty(); + case UMLPackage.TIME_CONSTRAINT__SPECIFICATION : + return eVirtualGet(UMLPackage.TIME_CONSTRAINT__SPECIFICATION) != null; + case UMLPackage.TIME_CONSTRAINT__CONTEXT : + return getContext() != null; + } + return eDynamicIsSet(eFeature); + } + +} //TimeConstraintImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java new file mode 100644 index 00000000..a0e102bd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java @@ -0,0 +1,470 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeEventImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TimeEvent; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.TimeEventOperations; + +/** + * + * An implementation of the model object 'Time Event'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl#isRelative Is Relative}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl#getWhen When}
  • + *
+ *

+ * + * @generated + */ +public class TimeEventImpl + extends EventImpl + implements TimeEvent { + + /** + * The default value of the '{@link #isRelative() Is Relative}' attribute. + * + * + * @see #isRelative() + * @generated + * @ordered + */ + protected static final boolean IS_RELATIVE_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isRelative() Is Relative}' attribute. + * + * + * @see #isRelative() + * @generated + * @ordered + */ + protected static final int IS_RELATIVE_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected TimeEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTimeEvent(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TIME_EVENT__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.TIME_EVENT__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.TIME_EVENT__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getTimeEvent_When()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isRelative() { + return (eFlags & IS_RELATIVE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsRelative(boolean newIsRelative) { + boolean oldIsRelative = (eFlags & IS_RELATIVE_EFLAG) != 0; + if (newIsRelative) + eFlags |= IS_RELATIVE_EFLAG; + else + eFlags &= ~IS_RELATIVE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_EVENT__IS_RELATIVE, oldIsRelative, + newIsRelative)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification getWhen() { + ValueSpecification when = (ValueSpecification) eVirtualGet(UMLPackage.TIME_EVENT__WHEN); + return when; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetWhen(ValueSpecification newWhen, + NotificationChain msgs) { + Object oldWhen = eVirtualSet(UMLPackage.TIME_EVENT__WHEN, newWhen); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TIME_EVENT__WHEN, + oldWhen == EVIRTUAL_NO_VALUE + ? null + : oldWhen, newWhen); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setWhen(ValueSpecification newWhen) { + ValueSpecification when = (ValueSpecification) eVirtualGet(UMLPackage.TIME_EVENT__WHEN); + if (newWhen != when) { + NotificationChain msgs = null; + if (when != null) + msgs = ((InternalEObject) when).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.TIME_EVENT__WHEN, null, + msgs); + if (newWhen != null) + msgs = ((InternalEObject) newWhen).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.TIME_EVENT__WHEN, null, + msgs); + msgs = basicSetWhen(newWhen, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_EVENT__WHEN, newWhen, newWhen)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createWhen(EClass eClass) { + ValueSpecification newWhen = (ValueSpecification) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setWhen(newWhen); + return newWhen; + } + + /** + * + * + * @generated + */ + public boolean validateStartingTime(DiagnosticChain diagnostics, Map context) { + return TimeEventOperations.validateStartingTime(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TIME_EVENT__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TIME_EVENT__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TIME_EVENT__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TIME_EVENT__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.TIME_EVENT__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.TIME_EVENT__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.TIME_EVENT__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.TIME_EVENT__WHEN : + return basicSetWhen(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EVENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TIME_EVENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TIME_EVENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TIME_EVENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TIME_EVENT__NAME : + return getName(); + case UMLPackage.TIME_EVENT__VISIBILITY : + return getVisibility(); + case UMLPackage.TIME_EVENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TIME_EVENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TIME_EVENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TIME_EVENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TIME_EVENT__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.TIME_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.TIME_EVENT__IS_RELATIVE : + return isRelative() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.TIME_EVENT__WHEN : + return getWhen(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TIME_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TIME_EVENT__NAME : + setName((String) newValue); + return; + case UMLPackage.TIME_EVENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TIME_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TIME_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TIME_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.TIME_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.TIME_EVENT__IS_RELATIVE : + setIsRelative(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.TIME_EVENT__WHEN : + setWhen((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EVENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TIME_EVENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TIME_EVENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TIME_EVENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TIME_EVENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TIME_EVENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TIME_EVENT__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.TIME_EVENT__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.TIME_EVENT__IS_RELATIVE : + setIsRelative(IS_RELATIVE_EDEFAULT); + return; + case UMLPackage.TIME_EVENT__WHEN : + setWhen((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EVENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TIME_EVENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TIME_EVENT__OWNER : + return isSetOwner(); + case UMLPackage.TIME_EVENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TIME_EVENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TIME_EVENT__NAME : + String name = eVirtualIsSet(UMLPackage.TIME_EVENT__NAME) + ? (String) eVirtualGet(UMLPackage.TIME_EVENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TIME_EVENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.TIME_EVENT__VISIBILITY) + && eVirtualGet(UMLPackage.TIME_EVENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TIME_EVENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TIME_EVENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TIME_EVENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TIME_EVENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TIME_EVENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TIME_EVENT__NAME_EXPRESSION) != null; + case UMLPackage.TIME_EVENT__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.TIME_EVENT__TEMPLATE_PARAMETER) != null; + case UMLPackage.TIME_EVENT__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.TIME_EVENT__IS_RELATIVE : + return ((eFlags & IS_RELATIVE_EFLAG) != 0) != IS_RELATIVE_EDEFAULT; + case UMLPackage.TIME_EVENT__WHEN : + return eVirtualGet(UMLPackage.TIME_EVENT__WHEN) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isRelative: "); //$NON-NLS-1$ + result.append((eFlags & IS_RELATIVE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getTimeEvent_When()); + } + +} //TimeEventImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java new file mode 100644 index 00000000..aea8252d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java @@ -0,0 +1,375 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeExpressionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Time Expression'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl#isFirstTime First Time}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl#getEvent Event}
  • + *
+ *

+ * + * @generated + */ +public class TimeExpressionImpl + extends ValueSpecificationImpl + implements TimeExpression { + + /** + * The default value of the '{@link #isFirstTime() First Time}' attribute. + * + * + * @see #isFirstTime() + * @generated + * @ordered + */ + protected static final boolean FIRST_TIME_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isFirstTime() First Time}' attribute. + * + * + * @see #isFirstTime() + * @generated + * @ordered + */ + protected static final int FIRST_TIME_EFLAG = 1 << 8; + + /** + * + * + * @generated + */ + protected TimeExpressionImpl() { + super(); + eFlags |= FIRST_TIME_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTimeExpression(); + } + + /** + * + * + * @generated + */ + public boolean isFirstTime() { + return (eFlags & FIRST_TIME_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setFirstTime(boolean newFirstTime) { + boolean oldFirstTime = (eFlags & FIRST_TIME_EFLAG) != 0; + if (newFirstTime) + eFlags |= FIRST_TIME_EFLAG; + else + eFlags &= ~FIRST_TIME_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_EXPRESSION__FIRST_TIME, oldFirstTime, + newFirstTime)); + + } + + /** + * + * + * @generated + */ + public NamedElement getEvent() { + NamedElement event = (NamedElement) eVirtualGet(UMLPackage.TIME_EXPRESSION__EVENT); + if (event != null && event.eIsProxy()) { + NamedElement oldEvent = event; + event = (NamedElement) eResolveProxy((InternalEObject) event); + if (event != oldEvent) { + eVirtualSet(UMLPackage.TIME_EXPRESSION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TIME_EXPRESSION__EVENT, oldEvent, event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetEvent() { + return (NamedElement) eVirtualGet(UMLPackage.TIME_EXPRESSION__EVENT); + } + + /** + * + * + * @generated + */ + public void setEvent(NamedElement newEvent) { + NamedElement event = newEvent; + Object oldEvent = eVirtualSet(UMLPackage.TIME_EXPRESSION__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_EXPRESSION__EVENT, + oldEvent == EVIRTUAL_NO_VALUE + ? null + : oldEvent, event)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EXPRESSION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TIME_EXPRESSION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TIME_EXPRESSION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TIME_EXPRESSION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TIME_EXPRESSION__NAME : + return getName(); + case UMLPackage.TIME_EXPRESSION__VISIBILITY : + return getVisibility(); + case UMLPackage.TIME_EXPRESSION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TIME_EXPRESSION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TIME_EXPRESSION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TIME_EXPRESSION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TIME_EXPRESSION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.TIME_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.TIME_EXPRESSION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.TIME_EXPRESSION__FIRST_TIME : + return isFirstTime() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.TIME_EXPRESSION__EVENT : + if (resolve) + return getEvent(); + return basicGetEvent(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TIME_EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TIME_EXPRESSION__NAME : + setName((String) newValue); + return; + case UMLPackage.TIME_EXPRESSION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TIME_EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TIME_EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TIME_EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.TIME_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.TIME_EXPRESSION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.TIME_EXPRESSION__FIRST_TIME : + setFirstTime(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.TIME_EXPRESSION__EVENT : + setEvent((NamedElement) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EXPRESSION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TIME_EXPRESSION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TIME_EXPRESSION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TIME_EXPRESSION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TIME_EXPRESSION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TIME_EXPRESSION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TIME_EXPRESSION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.TIME_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.TIME_EXPRESSION__TYPE : + setType((Type) null); + return; + case UMLPackage.TIME_EXPRESSION__FIRST_TIME : + setFirstTime(FIRST_TIME_EDEFAULT); + return; + case UMLPackage.TIME_EXPRESSION__EVENT : + setEvent((NamedElement) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_EXPRESSION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TIME_EXPRESSION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TIME_EXPRESSION__OWNER : + return isSetOwner(); + case UMLPackage.TIME_EXPRESSION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TIME_EXPRESSION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TIME_EXPRESSION__NAME : + String name = eVirtualIsSet(UMLPackage.TIME_EXPRESSION__NAME) + ? (String) eVirtualGet(UMLPackage.TIME_EXPRESSION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TIME_EXPRESSION__VISIBILITY : + return eVirtualIsSet(UMLPackage.TIME_EXPRESSION__VISIBILITY) + && eVirtualGet(UMLPackage.TIME_EXPRESSION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TIME_EXPRESSION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TIME_EXPRESSION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TIME_EXPRESSION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TIME_EXPRESSION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TIME_EXPRESSION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TIME_EXPRESSION__NAME_EXPRESSION) != null; + case UMLPackage.TIME_EXPRESSION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.TIME_EXPRESSION__TEMPLATE_PARAMETER) != null; + case UMLPackage.TIME_EXPRESSION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.TIME_EXPRESSION__TYPE : + return eVirtualGet(UMLPackage.TIME_EXPRESSION__TYPE) != null; + case UMLPackage.TIME_EXPRESSION__FIRST_TIME : + return ((eFlags & FIRST_TIME_EFLAG) != 0) != FIRST_TIME_EDEFAULT; + case UMLPackage.TIME_EXPRESSION__EVENT : + return eVirtualGet(UMLPackage.TIME_EXPRESSION__EVENT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (firstTime: "); //$NON-NLS-1$ + result.append((eFlags & FIRST_TIME_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + +} //TimeExpressionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeIntervalImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeIntervalImpl.java new file mode 100644 index 00000000..3be11575 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeIntervalImpl.java @@ -0,0 +1,277 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeIntervalImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.TimeInterval; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * An implementation of the model object 'Time Interval'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl#getMax Max}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl#getMin Min}
  • + *
+ *

+ * + * @generated + */ +public class TimeIntervalImpl + extends IntervalImpl + implements TimeInterval { + + /** + * + * + * @generated + */ + protected TimeIntervalImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTimeInterval(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getMax() { + ValueSpecification max = (ValueSpecification) eVirtualGet(UMLPackage.TIME_INTERVAL__MAX); + if (max != null && max.eIsProxy()) { + ValueSpecification oldMax = max; + max = (ValueSpecification) eResolveProxy((InternalEObject) max); + if (max != oldMax) { + eVirtualSet(UMLPackage.TIME_INTERVAL__MAX, max); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TIME_INTERVAL__MAX, oldMax, max)); + } + } + return max; + } + + /** + * + * + * @generated + */ + public ValueSpecification basicGetMax() { + return (ValueSpecification) eVirtualGet(UMLPackage.TIME_INTERVAL__MAX); + } + + /** + * + * + * @generated + */ + public void setMax(ValueSpecification newMax) { + ValueSpecification max = newMax; + Object oldMax = eVirtualSet(UMLPackage.TIME_INTERVAL__MAX, max); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_INTERVAL__MAX, oldMax == EVIRTUAL_NO_VALUE + ? null + : oldMax, max)); + + } + + /** + * + * + * @generated + */ + public boolean isSetMax() { + return eVirtualGet(UMLPackage.TIME_INTERVAL__MAX) != null; + } + + /** + * + * + * @generated + */ + public ValueSpecification getMin() { + ValueSpecification min = (ValueSpecification) eVirtualGet(UMLPackage.TIME_INTERVAL__MIN); + if (min != null && min.eIsProxy()) { + ValueSpecification oldMin = min; + min = (ValueSpecification) eResolveProxy((InternalEObject) min); + if (min != oldMin) { + eVirtualSet(UMLPackage.TIME_INTERVAL__MIN, min); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TIME_INTERVAL__MIN, oldMin, min)); + } + } + return min; + } + + /** + * + * + * @generated + */ + public ValueSpecification basicGetMin() { + return (ValueSpecification) eVirtualGet(UMLPackage.TIME_INTERVAL__MIN); + } + + /** + * + * + * @generated + */ + public void setMin(ValueSpecification newMin) { + ValueSpecification min = newMin; + Object oldMin = eVirtualSet(UMLPackage.TIME_INTERVAL__MIN, min); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_INTERVAL__MIN, oldMin == EVIRTUAL_NO_VALUE + ? null + : oldMin, min)); + + } + + /** + * + * + * @generated + */ + public boolean isSetMin() { + return eVirtualGet(UMLPackage.TIME_INTERVAL__MIN) != null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_INTERVAL__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TIME_INTERVAL__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TIME_INTERVAL__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TIME_INTERVAL__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TIME_INTERVAL__NAME : + return getName(); + case UMLPackage.TIME_INTERVAL__VISIBILITY : + return getVisibility(); + case UMLPackage.TIME_INTERVAL__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TIME_INTERVAL__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TIME_INTERVAL__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TIME_INTERVAL__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TIME_INTERVAL__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.TIME_INTERVAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.TIME_INTERVAL__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.TIME_INTERVAL__MIN : + if (resolve) + return getMin(); + return basicGetMin(); + case UMLPackage.TIME_INTERVAL__MAX : + if (resolve) + return getMax(); + return basicGetMax(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_INTERVAL__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TIME_INTERVAL__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TIME_INTERVAL__OWNER : + return isSetOwner(); + case UMLPackage.TIME_INTERVAL__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TIME_INTERVAL__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TIME_INTERVAL__NAME : + String name = eVirtualIsSet(UMLPackage.TIME_INTERVAL__NAME) + ? (String) eVirtualGet(UMLPackage.TIME_INTERVAL__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TIME_INTERVAL__VISIBILITY : + return eVirtualIsSet(UMLPackage.TIME_INTERVAL__VISIBILITY) + && eVirtualGet(UMLPackage.TIME_INTERVAL__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TIME_INTERVAL__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TIME_INTERVAL__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TIME_INTERVAL__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TIME_INTERVAL__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TIME_INTERVAL__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TIME_INTERVAL__NAME_EXPRESSION) != null; + case UMLPackage.TIME_INTERVAL__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.TIME_INTERVAL__TEMPLATE_PARAMETER) != null; + case UMLPackage.TIME_INTERVAL__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.TIME_INTERVAL__TYPE : + return eVirtualGet(UMLPackage.TIME_INTERVAL__TYPE) != null; + case UMLPackage.TIME_INTERVAL__MIN : + return eVirtualGet(UMLPackage.TIME_INTERVAL__MIN) != null; + case UMLPackage.TIME_INTERVAL__MAX : + return eVirtualGet(UMLPackage.TIME_INTERVAL__MAX) != null; + } + return eDynamicIsSet(eFeature); + } + +} //TimeIntervalImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeObservationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeObservationActionImpl.java new file mode 100644 index 00000000..cac2f0e7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeObservationActionImpl.java @@ -0,0 +1,538 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeObservationActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.TimeObservationAction; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.TimeObservationActionOperations; + +/** + * + * An implementation of the model object 'Time Observation Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeObservationActionImpl#getNow Now}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TimeObservationActionImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class TimeObservationActionImpl + extends WriteStructuralFeatureActionImpl + implements TimeObservationAction { + + /** + * + * + * @generated + */ + protected TimeObservationActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTimeObservationAction(); + } + + /** + * + * + * @generated + */ + public TimeExpression getNow() { + // TODO: implement this method to return the 'Now' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setNow(TimeExpression newNow) { + // TODO: implement this method to set the 'Now' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public InputPin getValue() { + InputPin value = (InputPin) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VALUE); + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(InputPin newValue, + NotificationChain msgs) { + Object oldValue = eVirtualSet( + UMLPackage.TIME_OBSERVATION_ACTION__VALUE, newValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TIME_OBSERVATION_ACTION__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(InputPin newValue) { + InputPin value = (InputPin) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VALUE); + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.TIME_OBSERVATION_ACTION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue) + .eInverseAdd(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.TIME_OBSERVATION_ACTION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TIME_OBSERVATION_ACTION__VALUE, newValue, newValue)); + + } + + /** + * + * + * @generated + */ + public InputPin createValue(EClass eClass) { + InputPin newValue = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public InputPin createValue() { + InputPin newValue = UMLFactory.eINSTANCE.createInputPin(); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public boolean isSetValue() { + return eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VALUE) != null; + } + + /** + * + * + * @generated + */ + public boolean validateInputValueTimeExpression( + DiagnosticChain diagnostics, Map context) { + return TimeObservationActionOperations + .validateInputValueTimeExpression(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_OBSERVATION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TIME_OBSERVATION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TIME_OBSERVATION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TIME_OBSERVATION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TIME_OBSERVATION_ACTION__NAME : + return getName(); + case UMLPackage.TIME_OBSERVATION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.TIME_OBSERVATION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TIME_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TIME_OBSERVATION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TIME_OBSERVATION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TIME_OBSERVATION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.TIME_OBSERVATION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.TIME_OBSERVATION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.TIME_OBSERVATION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.TIME_OBSERVATION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.TIME_OBSERVATION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.TIME_OBSERVATION_ACTION__INPUT : + return getInputs(); + case UMLPackage.TIME_OBSERVATION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.TIME_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.TIME_OBSERVATION_ACTION__OBJECT : + return getObject(); + case UMLPackage.TIME_OBSERVATION_ACTION__VALUE : + return getValue(); + case UMLPackage.TIME_OBSERVATION_ACTION__NOW : + return getNow(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_OBSERVATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__VALUE : + setValue((InputPin) newValue); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__NOW : + setNow((TimeExpression) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_OBSERVATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__VALUE : + setValue((InputPin) null); + return; + case UMLPackage.TIME_OBSERVATION_ACTION__NOW : + setNow((TimeExpression) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TIME_OBSERVATION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TIME_OBSERVATION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.TIME_OBSERVATION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.TIME_OBSERVATION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TIME_OBSERVATION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.TIME_OBSERVATION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TIME_OBSERVATION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TIME_OBSERVATION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TIME_OBSERVATION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.TIME_OBSERVATION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.TIME_OBSERVATION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.TIME_OBSERVATION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.TIME_OBSERVATION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.TIME_OBSERVATION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.TIME_OBSERVATION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.TIME_OBSERVATION_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.TIME_OBSERVATION_ACTION__OBJECT : + return eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__OBJECT) != null; + case UMLPackage.TIME_OBSERVATION_ACTION__VALUE : + return eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VALUE) != null; + case UMLPackage.TIME_OBSERVATION_ACTION__NOW : + return getNow() != null; + } + return eDynamicIsSet(eFeature); + } + +} //TimeObservationActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java new file mode 100644 index 00000000..35d606b2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java @@ -0,0 +1,1174 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TransitionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.TransitionKind; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.TransitionOperations; + +/** + * + * An implementation of the model object 'Transition'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getRedefinedElements Redefined Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getRedefinitionContexts Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getKind Kind}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getContainer Container}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getTarget Target}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getRedefinedTransition Redefined Transition}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getGuard Guard}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getEffect Effect}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getTriggers Trigger}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getSource Source}
  • + *
+ *

+ * + * @generated + */ +public class TransitionImpl + extends RedefinableElementImpl + implements Transition { + + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final TransitionKind KIND_EDEFAULT = TransitionKind.INTERNAL_LITERAL; + + /** + * + * + * @generated + */ + protected TransitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTransition(); + } + + /** + * + * + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.TRANSITION__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.TRANSITION__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.TRANSITION__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getTransition_RedefinedTransition()})); + } + return redefinedElement; + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.TRANSITION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.TRANSITION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.TRANSITION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getTransition_Guard(), + UMLPackage.eINSTANCE.getTransition_Effect()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public List getRedefinitionContexts() { + // TODO: implement this method to return the 'Redefinition Context' reference list + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public Classifier getRedefinitionContext(String name) { + for (Iterator i = getRedefinitionContexts().iterator(); i.hasNext();) { + Classifier redefinitionContext = (Classifier) i.next(); + if (name.equals(redefinitionContext.getName())) { + return redefinitionContext; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinitionContexts() { + return !getRedefinitionContexts().isEmpty(); + } + + /** + * + * + * @generated + */ + public TransitionKind getKind() { + TransitionKind kind = (TransitionKind) eVirtualGet(UMLPackage.TRANSITION__KIND); + return kind == null + ? KIND_EDEFAULT + : kind; + } + + /** + * + * + * @generated + */ + public void setKind(TransitionKind newKind) { + TransitionKind kind = newKind == null + ? KIND_EDEFAULT + : newKind; + Object oldKind = eVirtualSet(UMLPackage.TRANSITION__KIND, kind); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__KIND, oldKind == EVIRTUAL_NO_VALUE + ? KIND_EDEFAULT + : oldKind, kind)); + + } + + /** + * + * + * @generated + */ + public Region getContainer() { + if (eContainerFeatureID != UMLPackage.TRANSITION__CONTAINER) + return null; + return (Region) eContainer; + } + + /** + * + * + * @generated + */ + public void setContainer(Region newContainer) { + if (newContainer != eContainer + || (eContainerFeatureID != UMLPackage.TRANSITION__CONTAINER && newContainer != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newContainer)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newContainer != null) + msgs = ((InternalEObject) newContainer).eInverseAdd(this, + UMLPackage.REGION__TRANSITION, Region.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newContainer, + UMLPackage.TRANSITION__CONTAINER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__CONTAINER, newContainer, newContainer)); + + } + + /** + * + * + * @generated + */ + public Vertex getTarget() { + Vertex target = (Vertex) eVirtualGet(UMLPackage.TRANSITION__TARGET); + if (target != null && target.eIsProxy()) { + Vertex oldTarget = target; + target = (Vertex) eResolveProxy((InternalEObject) target); + if (target != oldTarget) { + eVirtualSet(UMLPackage.TRANSITION__TARGET, target); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TRANSITION__TARGET, oldTarget, target)); + } + } + return target; + } + + /** + * + * + * @generated + */ + public Vertex basicGetTarget() { + return (Vertex) eVirtualGet(UMLPackage.TRANSITION__TARGET); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(Vertex newTarget, + NotificationChain msgs) { + Object oldTarget = eVirtualSet(UMLPackage.TRANSITION__TARGET, newTarget); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TRANSITION__TARGET, + oldTarget == EVIRTUAL_NO_VALUE + ? null + : oldTarget, newTarget); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setTarget(Vertex newTarget) { + Vertex target = (Vertex) eVirtualGet(UMLPackage.TRANSITION__TARGET); + if (newTarget != target) { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + UMLPackage.VERTEX__INCOMING, Vertex.class, msgs); + if (newTarget != null) + msgs = ((InternalEObject) newTarget).eInverseAdd(this, + UMLPackage.VERTEX__INCOMING, Vertex.class, msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__TARGET, newTarget, newTarget)); + + } + + /** + * + * + * @generated + */ + public Transition getRedefinedTransition() { + Transition redefinedTransition = (Transition) eVirtualGet(UMLPackage.TRANSITION__REDEFINED_TRANSITION); + if (redefinedTransition != null && redefinedTransition.eIsProxy()) { + Transition oldRedefinedTransition = redefinedTransition; + redefinedTransition = (Transition) eResolveProxy((InternalEObject) redefinedTransition); + if (redefinedTransition != oldRedefinedTransition) { + eVirtualSet(UMLPackage.TRANSITION__REDEFINED_TRANSITION, + redefinedTransition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TRANSITION__REDEFINED_TRANSITION, + oldRedefinedTransition, redefinedTransition)); + } + } + return redefinedTransition; + } + + /** + * + * + * @generated + */ + public Transition basicGetRedefinedTransition() { + return (Transition) eVirtualGet(UMLPackage.TRANSITION__REDEFINED_TRANSITION); + } + + /** + * + * + * @generated + */ + public void setRedefinedTransition(Transition newRedefinedTransition) { + Transition redefinedTransition = newRedefinedTransition; + Object oldRedefinedTransition = eVirtualSet( + UMLPackage.TRANSITION__REDEFINED_TRANSITION, redefinedTransition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__REDEFINED_TRANSITION, + oldRedefinedTransition == EVIRTUAL_NO_VALUE + ? null + : oldRedefinedTransition, redefinedTransition)); + + } + + /** + * + * + * @generated + */ + public Constraint getGuard() { + Constraint guard = (Constraint) eVirtualGet(UMLPackage.TRANSITION__GUARD); + return guard; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetGuard(Constraint newGuard, + NotificationChain msgs) { + Object oldGuard = eVirtualSet(UMLPackage.TRANSITION__GUARD, newGuard); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TRANSITION__GUARD, + oldGuard == EVIRTUAL_NO_VALUE + ? null + : oldGuard, newGuard); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setGuard(Constraint newGuard) { + Constraint guard = (Constraint) eVirtualGet(UMLPackage.TRANSITION__GUARD); + if (newGuard != guard) { + NotificationChain msgs = null; + if (guard != null) + msgs = ((InternalEObject) guard).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.TRANSITION__GUARD, + null, msgs); + if (newGuard != null) + msgs = ((InternalEObject) newGuard).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.TRANSITION__GUARD, + null, msgs); + msgs = basicSetGuard(newGuard, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__GUARD, newGuard, newGuard)); + + } + + /** + * + * + * @generated + */ + public Constraint createGuard(EClass eClass) { + Constraint newGuard = (Constraint) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setGuard(newGuard); + return newGuard; + } + + /** + * + * + * @generated + */ + public Constraint createGuard() { + Constraint newGuard = UMLFactory.eINSTANCE.createConstraint(); + setGuard(newGuard); + return newGuard; + } + + /** + * + * + * @generated + */ + public Behavior getEffect() { + Behavior effect = (Behavior) eVirtualGet(UMLPackage.TRANSITION__EFFECT); + return effect; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetEffect(Behavior newEffect, + NotificationChain msgs) { + Object oldEffect = eVirtualSet(UMLPackage.TRANSITION__EFFECT, newEffect); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TRANSITION__EFFECT, + oldEffect == EVIRTUAL_NO_VALUE + ? null + : oldEffect, newEffect); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setEffect(Behavior newEffect) { + Behavior effect = (Behavior) eVirtualGet(UMLPackage.TRANSITION__EFFECT); + if (newEffect != effect) { + NotificationChain msgs = null; + if (effect != null) + msgs = ((InternalEObject) effect).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.TRANSITION__EFFECT, + null, msgs); + if (newEffect != null) + msgs = ((InternalEObject) newEffect).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.TRANSITION__EFFECT, + null, msgs); + msgs = basicSetEffect(newEffect, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__EFFECT, newEffect, newEffect)); + + } + + /** + * + * + * @generated + */ + public Behavior createEffect(EClass eClass) { + Behavior newEffect = (Behavior) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setEffect(newEffect); + return newEffect; + } + + /** + * + * + * @generated + */ + public Behavior createEffect() { + Behavior newEffect = UMLFactory.eINSTANCE.createBehavior(); + setEffect(newEffect); + return newEffect; + } + + /** + * + * + * @generated + */ + public List getTriggers() { + List trigger = (List) eVirtualGet(UMLPackage.TRANSITION__TRIGGER); + if (trigger == null) { + eVirtualSet(UMLPackage.TRANSITION__TRIGGER, + trigger = new EObjectContainmentEList(Trigger.class, this, + UMLPackage.TRANSITION__TRIGGER)); + } + return trigger; + } + + /** + * + * + * @generated + */ + public Trigger createTrigger() { + Trigger newTrigger = UMLFactory.eINSTANCE.createTrigger(); + getTriggers().add(newTrigger); + return newTrigger; + } + + /** + * + * + * @generated + */ + public Trigger getTrigger(String name) { + for (Iterator i = getTriggers().iterator(); i.hasNext();) { + Trigger trigger = (Trigger) i.next(); + if (name.equals(trigger.getName())) { + return trigger; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Vertex getSource() { + Vertex source = (Vertex) eVirtualGet(UMLPackage.TRANSITION__SOURCE); + if (source != null && source.eIsProxy()) { + Vertex oldSource = source; + source = (Vertex) eResolveProxy((InternalEObject) source); + if (source != oldSource) { + eVirtualSet(UMLPackage.TRANSITION__SOURCE, source); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TRANSITION__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * + * + * @generated + */ + public Vertex basicGetSource() { + return (Vertex) eVirtualGet(UMLPackage.TRANSITION__SOURCE); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSource(Vertex newSource, + NotificationChain msgs) { + Object oldSource = eVirtualSet(UMLPackage.TRANSITION__SOURCE, newSource); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.TRANSITION__SOURCE, + oldSource == EVIRTUAL_NO_VALUE + ? null + : oldSource, newSource); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setSource(Vertex newSource) { + Vertex source = (Vertex) eVirtualGet(UMLPackage.TRANSITION__SOURCE); + if (newSource != source) { + NotificationChain msgs = null; + if (source != null) + msgs = ((InternalEObject) source).eInverseRemove(this, + UMLPackage.VERTEX__OUTGOING, Vertex.class, msgs); + if (newSource != null) + msgs = ((InternalEObject) newSource).eInverseAdd(this, + UMLPackage.VERTEX__OUTGOING, Vertex.class, msgs); + msgs = basicSetSource(newSource, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRANSITION__SOURCE, newSource, newSource)); + + } + + /** + * + * + * @generated + */ + public boolean validateForkSegmentGuards(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateForkSegmentGuards(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateJoinSegmentGuards(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateJoinSegmentGuards(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateForkSegmentState(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateForkSegmentState(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateJoinSegmentState(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateJoinSegmentState(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateOutgoingPseudostates(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateOutgoingPseudostates(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInitialTransition(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateInitialTransition(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSignaturesCompatible(DiagnosticChain diagnostics, + Map context) { + return TransitionOperations.validateSignaturesCompatible(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Classifier redefinitionContext() { + return TransitionOperations.redefinitionContext(this); + } + + /** + * + * + * @generated + */ + public StateMachine containingStateMachine() { + return TransitionOperations.containingStateMachine(this); + } + + /** + * + * + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return TransitionOperations.isConsistentWith(this, redefinee); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TRANSITION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.TRANSITION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.TRANSITION__CONTAINER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.TRANSITION__CONTAINER, msgs); + case UMLPackage.TRANSITION__TARGET : + Vertex target = (Vertex) eVirtualGet(UMLPackage.TRANSITION__TARGET); + if (target != null) + msgs = ((InternalEObject) target).eInverseRemove(this, + UMLPackage.VERTEX__INCOMING, Vertex.class, msgs); + return basicSetTarget((Vertex) otherEnd, msgs); + case UMLPackage.TRANSITION__SOURCE : + Vertex source = (Vertex) eVirtualGet(UMLPackage.TRANSITION__SOURCE); + if (source != null) + msgs = ((InternalEObject) source).eInverseRemove(this, + UMLPackage.VERTEX__OUTGOING, Vertex.class, msgs); + return basicSetSource((Vertex) otherEnd, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.TRANSITION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.TRANSITION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.TRANSITION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.TRANSITION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.TRANSITION__CONTAINER : + return eBasicSetContainer(null, + UMLPackage.TRANSITION__CONTAINER, msgs); + case UMLPackage.TRANSITION__TARGET : + return basicSetTarget(null, msgs); + case UMLPackage.TRANSITION__GUARD : + return basicSetGuard(null, msgs); + case UMLPackage.TRANSITION__EFFECT : + return basicSetEffect(null, msgs); + case UMLPackage.TRANSITION__TRIGGER : + return ((InternalEList) getTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.TRANSITION__SOURCE : + return basicSetSource(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.TRANSITION__CONTAINER : + return eContainer.eInverseRemove(this, + UMLPackage.REGION__TRANSITION, Region.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRANSITION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TRANSITION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TRANSITION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TRANSITION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TRANSITION__NAME : + return getName(); + case UMLPackage.TRANSITION__VISIBILITY : + return getVisibility(); + case UMLPackage.TRANSITION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TRANSITION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TRANSITION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TRANSITION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TRANSITION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.TRANSITION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.TRANSITION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.TRANSITION__KIND : + return getKind(); + case UMLPackage.TRANSITION__CONTAINER : + return getContainer(); + case UMLPackage.TRANSITION__TARGET : + if (resolve) + return getTarget(); + return basicGetTarget(); + case UMLPackage.TRANSITION__REDEFINED_TRANSITION : + if (resolve) + return getRedefinedTransition(); + return basicGetRedefinedTransition(); + case UMLPackage.TRANSITION__GUARD : + return getGuard(); + case UMLPackage.TRANSITION__EFFECT : + return getEffect(); + case UMLPackage.TRANSITION__TRIGGER : + return getTriggers(); + case UMLPackage.TRANSITION__SOURCE : + if (resolve) + return getSource(); + return basicGetSource(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRANSITION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TRANSITION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TRANSITION__NAME : + setName((String) newValue); + return; + case UMLPackage.TRANSITION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TRANSITION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TRANSITION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TRANSITION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.TRANSITION__KIND : + setKind((TransitionKind) newValue); + return; + case UMLPackage.TRANSITION__CONTAINER : + setContainer((Region) newValue); + return; + case UMLPackage.TRANSITION__TARGET : + setTarget((Vertex) newValue); + return; + case UMLPackage.TRANSITION__REDEFINED_TRANSITION : + setRedefinedTransition((Transition) newValue); + return; + case UMLPackage.TRANSITION__GUARD : + setGuard((Constraint) newValue); + return; + case UMLPackage.TRANSITION__EFFECT : + setEffect((Behavior) newValue); + return; + case UMLPackage.TRANSITION__TRIGGER : + getTriggers().clear(); + getTriggers().addAll((Collection) newValue); + return; + case UMLPackage.TRANSITION__SOURCE : + setSource((Vertex) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRANSITION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TRANSITION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TRANSITION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TRANSITION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TRANSITION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TRANSITION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TRANSITION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.TRANSITION__KIND : + setKind(KIND_EDEFAULT); + return; + case UMLPackage.TRANSITION__CONTAINER : + setContainer((Region) null); + return; + case UMLPackage.TRANSITION__TARGET : + setTarget((Vertex) null); + return; + case UMLPackage.TRANSITION__REDEFINED_TRANSITION : + setRedefinedTransition((Transition) null); + return; + case UMLPackage.TRANSITION__GUARD : + setGuard((Constraint) null); + return; + case UMLPackage.TRANSITION__EFFECT : + setEffect((Behavior) null); + return; + case UMLPackage.TRANSITION__TRIGGER : + getTriggers().clear(); + return; + case UMLPackage.TRANSITION__SOURCE : + setSource((Vertex) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRANSITION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TRANSITION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TRANSITION__OWNER : + return isSetOwner(); + case UMLPackage.TRANSITION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TRANSITION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TRANSITION__NAME : + String name = eVirtualIsSet(UMLPackage.TRANSITION__NAME) + ? (String) eVirtualGet(UMLPackage.TRANSITION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TRANSITION__VISIBILITY : + return eVirtualIsSet(UMLPackage.TRANSITION__VISIBILITY) + && eVirtualGet(UMLPackage.TRANSITION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TRANSITION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TRANSITION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TRANSITION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TRANSITION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TRANSITION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TRANSITION__NAME_EXPRESSION) != null; + case UMLPackage.TRANSITION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.TRANSITION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.TRANSITION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.TRANSITION__KIND : + return eVirtualIsSet(UMLPackage.TRANSITION__KIND) + && eVirtualGet(UMLPackage.TRANSITION__KIND) != KIND_EDEFAULT; + case UMLPackage.TRANSITION__CONTAINER : + return getContainer() != null; + case UMLPackage.TRANSITION__TARGET : + return eVirtualGet(UMLPackage.TRANSITION__TARGET) != null; + case UMLPackage.TRANSITION__REDEFINED_TRANSITION : + return eVirtualGet(UMLPackage.TRANSITION__REDEFINED_TRANSITION) != null; + case UMLPackage.TRANSITION__GUARD : + return eVirtualGet(UMLPackage.TRANSITION__GUARD) != null; + case UMLPackage.TRANSITION__EFFECT : + return eVirtualGet(UMLPackage.TRANSITION__EFFECT) != null; + case UMLPackage.TRANSITION__TRIGGER : + List trigger = (List) eVirtualGet(UMLPackage.TRANSITION__TRIGGER); + return trigger != null && !trigger.isEmpty(); + case UMLPackage.TRANSITION__SOURCE : + return eVirtualGet(UMLPackage.TRANSITION__SOURCE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (kind: "); //$NON-NLS-1$ + result.append(eVirtualIsSet(UMLPackage.TRANSITION__KIND) + ? eVirtualGet(UMLPackage.TRANSITION__KIND) + : KIND_EDEFAULT); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Region container = getContainer(); + if (container != null) { + return container; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getTransition_Container()); + } + + /** + * + * + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getTransition_RedefinedTransition()); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getTransition_Guard()) + || eIsSet(UMLPackage.eINSTANCE.getTransition_Effect()); + } + +} //TransitionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TriggerImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TriggerImpl.java new file mode 100644 index 00000000..4a330f41 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TriggerImpl.java @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TriggerImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Trigger'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TriggerImpl#getEvent Event}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.TriggerImpl#getPorts Port}
  • + *
+ *

+ * + * @generated + */ +public class TriggerImpl + extends NamedElementImpl + implements Trigger { + + /** + * + * + * @generated + */ + protected TriggerImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTrigger(); + } + + /** + * + * + * @generated + */ + public Event getEvent() { + Event event = (Event) eVirtualGet(UMLPackage.TRIGGER__EVENT); + if (event != null && event.eIsProxy()) { + Event oldEvent = event; + event = (Event) eResolveProxy((InternalEObject) event); + if (event != oldEvent) { + eVirtualSet(UMLPackage.TRIGGER__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TRIGGER__EVENT, oldEvent, event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public Event basicGetEvent() { + return (Event) eVirtualGet(UMLPackage.TRIGGER__EVENT); + } + + /** + * + * + * @generated + */ + public void setEvent(Event newEvent) { + Event event = newEvent; + Object oldEvent = eVirtualSet(UMLPackage.TRIGGER__EVENT, event); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TRIGGER__EVENT, oldEvent == EVIRTUAL_NO_VALUE + ? null + : oldEvent, event)); + + } + + /** + * + * + * @generated + */ + public List getPorts() { + List port = (List) eVirtualGet(UMLPackage.TRIGGER__PORT); + if (port == null) { + eVirtualSet(UMLPackage.TRIGGER__PORT, + port = new EObjectResolvingEList(Port.class, this, + UMLPackage.TRIGGER__PORT)); + } + return port; + } + + /** + * + * + * @generated + */ + public Port getPort(String name) { + for (Iterator i = getPorts().iterator(); i.hasNext();) { + Port port = (Port) i.next(); + if (name.equals(port.getName())) { + return port; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRIGGER__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TRIGGER__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TRIGGER__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TRIGGER__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TRIGGER__NAME : + return getName(); + case UMLPackage.TRIGGER__VISIBILITY : + return getVisibility(); + case UMLPackage.TRIGGER__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TRIGGER__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TRIGGER__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TRIGGER__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TRIGGER__EVENT : + if (resolve) + return getEvent(); + return basicGetEvent(); + case UMLPackage.TRIGGER__PORT : + return getPorts(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRIGGER__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TRIGGER__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TRIGGER__NAME : + setName((String) newValue); + return; + case UMLPackage.TRIGGER__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TRIGGER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TRIGGER__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TRIGGER__EVENT : + setEvent((Event) newValue); + return; + case UMLPackage.TRIGGER__PORT : + getPorts().clear(); + getPorts().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRIGGER__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TRIGGER__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TRIGGER__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TRIGGER__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TRIGGER__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TRIGGER__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TRIGGER__EVENT : + setEvent((Event) null); + return; + case UMLPackage.TRIGGER__PORT : + getPorts().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TRIGGER__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TRIGGER__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TRIGGER__OWNER : + return isSetOwner(); + case UMLPackage.TRIGGER__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TRIGGER__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TRIGGER__NAME : + String name = eVirtualIsSet(UMLPackage.TRIGGER__NAME) + ? (String) eVirtualGet(UMLPackage.TRIGGER__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TRIGGER__VISIBILITY : + return eVirtualIsSet(UMLPackage.TRIGGER__VISIBILITY) + && eVirtualGet(UMLPackage.TRIGGER__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TRIGGER__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TRIGGER__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TRIGGER__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TRIGGER__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TRIGGER__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TRIGGER__NAME_EXPRESSION) != null; + case UMLPackage.TRIGGER__EVENT : + return eVirtualGet(UMLPackage.TRIGGER__EVENT) != null; + case UMLPackage.TRIGGER__PORT : + List port = (List) eVirtualGet(UMLPackage.TRIGGER__PORT); + return port != null && !port.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //TriggerImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java new file mode 100644 index 00000000..270c7a63 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java @@ -0,0 +1,288 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TypeImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.TypeOperations; + +/** + * + * An implementation of the model object 'Type'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TypeImpl#getPackage Package}
  • + *
+ *

+ * + * @generated + */ +public abstract class TypeImpl + extends PackageableElementImpl + implements Type { + + /** + * + * + * @generated + */ + protected TypeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getType(); + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package getPackage() { + // TODO: implement this method to return the 'Package' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setPackage(org.eclipse.uml2.uml.Package newPackage) { + // TODO: implement this method to set the 'Package' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public boolean conformsTo(Type other) { + return TypeOperations.conformsTo(this, other); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TYPE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TYPE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TYPE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TYPE__NAME : + return getName(); + case UMLPackage.TYPE__VISIBILITY : + return getVisibility(); + case UMLPackage.TYPE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TYPE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TYPE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TYPE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TYPE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.TYPE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.TYPE__PACKAGE : + return getPackage(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TYPE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TYPE__NAME : + setName((String) newValue); + return; + case UMLPackage.TYPE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TYPE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TYPE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TYPE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.TYPE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.TYPE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TYPE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TYPE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TYPE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TYPE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TYPE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TYPE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.TYPE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.TYPE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TYPE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TYPE__OWNER : + return isSetOwner(); + case UMLPackage.TYPE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TYPE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TYPE__NAME : + String name = eVirtualIsSet(UMLPackage.TYPE__NAME) + ? (String) eVirtualGet(UMLPackage.TYPE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TYPE__VISIBILITY : + return eVirtualIsSet(UMLPackage.TYPE__VISIBILITY) + && eVirtualGet(UMLPackage.TYPE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TYPE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TYPE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TYPE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TYPE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TYPE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TYPE__NAME_EXPRESSION) != null; + case UMLPackage.TYPE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.TYPE__TEMPLATE_PARAMETER) != null; + case UMLPackage.TYPE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.TYPE__PACKAGE : + return getPackage() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + org.eclipse.uml2.uml.Package package_ = getPackage(); + if (package_ != null) { + return package_; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getType_Package()); + } + +} //TypeImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypedElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypedElementImpl.java new file mode 100644 index 00000000..8c50fba8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypedElementImpl.java @@ -0,0 +1,261 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TypedElementImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model object 'Typed Element'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.TypedElementImpl#getType Type}
  • + *
+ *

+ * + * @generated + */ +public abstract class TypedElementImpl + extends NamedElementImpl + implements TypedElement { + + /** + * + * + * @generated + */ + protected TypedElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getTypedElement(); + } + + /** + * + * + * @generated + */ + public Type getType() { + Type type = (Type) eVirtualGet(UMLPackage.TYPED_ELEMENT__TYPE); + if (type != null && type.eIsProxy()) { + Type oldType = type; + type = (Type) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.TYPED_ELEMENT__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.TYPED_ELEMENT__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Type basicGetType() { + return (Type) eVirtualGet(UMLPackage.TYPED_ELEMENT__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Type newType) { + Type type = newType; + Object oldType = eVirtualSet(UMLPackage.TYPED_ELEMENT__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.TYPED_ELEMENT__TYPE, oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPED_ELEMENT__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.TYPED_ELEMENT__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.TYPED_ELEMENT__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.TYPED_ELEMENT__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.TYPED_ELEMENT__NAME : + return getName(); + case UMLPackage.TYPED_ELEMENT__VISIBILITY : + return getVisibility(); + case UMLPackage.TYPED_ELEMENT__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.TYPED_ELEMENT__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.TYPED_ELEMENT__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.TYPED_ELEMENT__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.TYPED_ELEMENT__TYPE : + if (resolve) + return getType(); + return basicGetType(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPED_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.TYPED_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.TYPED_ELEMENT__NAME : + setName((String) newValue); + return; + case UMLPackage.TYPED_ELEMENT__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.TYPED_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.TYPED_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.TYPED_ELEMENT__TYPE : + setType((Type) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPED_ELEMENT__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.TYPED_ELEMENT__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.TYPED_ELEMENT__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.TYPED_ELEMENT__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.TYPED_ELEMENT__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.TYPED_ELEMENT__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.TYPED_ELEMENT__TYPE : + setType((Type) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.TYPED_ELEMENT__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.TYPED_ELEMENT__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.TYPED_ELEMENT__OWNER : + return isSetOwner(); + case UMLPackage.TYPED_ELEMENT__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.TYPED_ELEMENT__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.TYPED_ELEMENT__NAME : + String name = eVirtualIsSet(UMLPackage.TYPED_ELEMENT__NAME) + ? (String) eVirtualGet(UMLPackage.TYPED_ELEMENT__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.TYPED_ELEMENT__VISIBILITY : + return eVirtualIsSet(UMLPackage.TYPED_ELEMENT__VISIBILITY) + && eVirtualGet(UMLPackage.TYPED_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.TYPED_ELEMENT__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.TYPED_ELEMENT__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.TYPED_ELEMENT__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.TYPED_ELEMENT__NAMESPACE : + return isSetNamespace(); + case UMLPackage.TYPED_ELEMENT__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.TYPED_ELEMENT__NAME_EXPRESSION) != null; + case UMLPackage.TYPED_ELEMENT__TYPE : + return eVirtualGet(UMLPackage.TYPED_ELEMENT__TYPE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //TypedElementImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java new file mode 100644 index 00000000..ec3314cd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java @@ -0,0 +1,3099 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLFactoryImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.eclipse.uml2.uml.Abstraction; +import org.eclipse.uml2.uml.AcceptCallAction; +import org.eclipse.uml2.uml.AcceptEventAction; +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.ActionExecutionSpecification; +import org.eclipse.uml2.uml.ActionInputPin; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityFinalNode; +import org.eclipse.uml2.uml.ActivityParameterNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; +import org.eclipse.uml2.uml.AddVariableValueAction; +import org.eclipse.uml2.uml.AggregationKind; +import org.eclipse.uml2.uml.AnyReceiveEvent; +import org.eclipse.uml2.uml.Artifact; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.AssociationClass; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehaviorExecutionSpecification; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BroadcastSignalAction; +import org.eclipse.uml2.uml.CallBehaviorAction; +import org.eclipse.uml2.uml.CallConcurrencyKind; +import org.eclipse.uml2.uml.CallEvent; +import org.eclipse.uml2.uml.CallOperationAction; +import org.eclipse.uml2.uml.CentralBufferNode; +import org.eclipse.uml2.uml.ChangeEvent; +import org.eclipse.uml2.uml.ClassifierTemplateParameter; +import org.eclipse.uml2.uml.Clause; +import org.eclipse.uml2.uml.ClearAssociationAction; +import org.eclipse.uml2.uml.ClearStructuralFeatureAction; +import org.eclipse.uml2.uml.ClearVariableAction; +import org.eclipse.uml2.uml.Collaboration; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.CombinedFragment; +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.CommunicationPath; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.ComponentRealization; +import org.eclipse.uml2.uml.ConditionalNode; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ConnectionPointReference; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.ConnectorKind; +import org.eclipse.uml2.uml.ConsiderIgnoreFragment; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Continuation; +import org.eclipse.uml2.uml.ControlFlow; +import org.eclipse.uml2.uml.CreateLinkAction; +import org.eclipse.uml2.uml.CreateLinkObjectAction; +import org.eclipse.uml2.uml.CreateObjectAction; +import org.eclipse.uml2.uml.CreationEvent; +import org.eclipse.uml2.uml.DataStoreNode; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.DecisionNode; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentSpecification; +import org.eclipse.uml2.uml.DestroyLinkAction; +import org.eclipse.uml2.uml.DestroyObjectAction; +import org.eclipse.uml2.uml.DestructionEvent; +import org.eclipse.uml2.uml.Device; +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.DurationConstraint; +import org.eclipse.uml2.uml.DurationInterval; +import org.eclipse.uml2.uml.DurationObservationAction; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.ExceptionHandler; +import org.eclipse.uml2.uml.ExecutionEnvironment; +import org.eclipse.uml2.uml.ExecutionEvent; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.ExpansionKind; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; +import org.eclipse.uml2.uml.Expression; +import org.eclipse.uml2.uml.Extend; +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.ExtensionEnd; +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.FinalState; +import org.eclipse.uml2.uml.FlowFinalNode; +import org.eclipse.uml2.uml.ForkNode; +import org.eclipse.uml2.uml.FunctionBehavior; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.Include; +import org.eclipse.uml2.uml.InformationFlow; +import org.eclipse.uml2.uml.InformationItem; +import org.eclipse.uml2.uml.InitialNode; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.InstanceValue; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionConstraint; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionOperatorKind; +import org.eclipse.uml2.uml.InteractionUse; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.Interval; +import org.eclipse.uml2.uml.IntervalConstraint; +import org.eclipse.uml2.uml.JoinNode; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.LinkEndCreationData; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.LinkEndDestructionData; +import org.eclipse.uml2.uml.LiteralBoolean; +import org.eclipse.uml2.uml.LiteralInteger; +import org.eclipse.uml2.uml.LiteralNull; +import org.eclipse.uml2.uml.LiteralString; +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; +import org.eclipse.uml2.uml.LoopNode; +import org.eclipse.uml2.uml.Manifestation; +import org.eclipse.uml2.uml.MergeNode; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageKind; +import org.eclipse.uml2.uml.MessageOccurrenceSpecification; +import org.eclipse.uml2.uml.MessageSort; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.Node; +import org.eclipse.uml2.uml.ObjectFlow; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.OpaqueAction; +import org.eclipse.uml2.uml.OpaqueBehavior; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterDirectionKind; +import org.eclipse.uml2.uml.ParameterEffectKind; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.PartDecomposition; +import org.eclipse.uml2.uml.Pin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.PrimitiveType; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ProtocolConformance; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.ProtocolTransition; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.PseudostateKind; +import org.eclipse.uml2.uml.QualifierValue; +import org.eclipse.uml2.uml.RaiseExceptionAction; +import org.eclipse.uml2.uml.ReadExtentAction; +import org.eclipse.uml2.uml.ReadIsClassifiedObjectAction; +import org.eclipse.uml2.uml.ReadLinkAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction; +import org.eclipse.uml2.uml.ReadSelfAction; +import org.eclipse.uml2.uml.ReadStructuralFeatureAction; +import org.eclipse.uml2.uml.ReadVariableAction; +import org.eclipse.uml2.uml.Realization; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.ReclassifyObjectAction; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction; +import org.eclipse.uml2.uml.RemoveVariableValueAction; +import org.eclipse.uml2.uml.ReplyAction; +import org.eclipse.uml2.uml.SendObjectAction; +import org.eclipse.uml2.uml.SendOperationEvent; +import org.eclipse.uml2.uml.SendSignalAction; +import org.eclipse.uml2.uml.SendSignalEvent; +import org.eclipse.uml2.uml.SequenceNode; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.SignalEvent; +import org.eclipse.uml2.uml.Slot; +import org.eclipse.uml2.uml.StartClassifierBehaviorAction; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateInvariant; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Substitution; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateParameterSubstitution; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TestIdentityAction; +import org.eclipse.uml2.uml.TimeConstraint; +import org.eclipse.uml2.uml.TimeEvent; +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.TimeInterval; +import org.eclipse.uml2.uml.TimeObservationAction; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.TransitionKind; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UnmarshallAction; +import org.eclipse.uml2.uml.Usage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.ValuePin; +import org.eclipse.uml2.uml.ValueSpecificationAction; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class UMLFactoryImpl + extends EFactoryImpl + implements UMLFactory { + + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static UMLFactory init() { + try { + UMLFactory theUMLFactory = (UMLFactory) EPackage.Registry.INSTANCE + .getEFactory("http://www.eclipse.org/uml2/2.0.0/UML"); //$NON-NLS-1$ + if (theUMLFactory != null) { + return theUMLFactory; + } + } catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new UMLFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public UMLFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case UMLPackage.COMMENT : + return createComment(); + case UMLPackage.DEPENDENCY : + return createDependency(); + case UMLPackage.TEMPLATE_PARAMETER : + return createTemplateParameter(); + case UMLPackage.TEMPLATE_SIGNATURE : + return createTemplateSignature(); + case UMLPackage.TEMPLATE_BINDING : + return createTemplateBinding(); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION : + return createTemplateParameterSubstitution(); + case UMLPackage.ELEMENT_IMPORT : + return createElementImport(); + case UMLPackage.PACKAGE_IMPORT : + return createPackageImport(); + case UMLPackage.PACKAGE : + return createPackage(); + case UMLPackage.PACKAGE_MERGE : + return createPackageMerge(); + case UMLPackage.PROFILE_APPLICATION : + return createProfileApplication(); + case UMLPackage.PROFILE : + return createProfile(); + case UMLPackage.STEREOTYPE : + return createStereotype(); + case UMLPackage.CLASS : + return createClass(); + case UMLPackage.GENERALIZATION : + return createGeneralization(); + case UMLPackage.GENERALIZATION_SET : + return createGeneralizationSet(); + case UMLPackage.USE_CASE : + return createUseCase(); + case UMLPackage.INCLUDE : + return createInclude(); + case UMLPackage.EXTEND : + return createExtend(); + case UMLPackage.CONSTRAINT : + return createConstraint(); + case UMLPackage.EXTENSION_POINT : + return createExtensionPoint(); + case UMLPackage.SUBSTITUTION : + return createSubstitution(); + case UMLPackage.REALIZATION : + return createRealization(); + case UMLPackage.ABSTRACTION : + return createAbstraction(); + case UMLPackage.OPAQUE_EXPRESSION : + return createOpaqueExpression(); + case UMLPackage.PARAMETER : + return createParameter(); + case UMLPackage.CONNECTOR_END : + return createConnectorEnd(); + case UMLPackage.PROPERTY : + return createProperty(); + case UMLPackage.DEPLOYMENT : + return createDeployment(); + case UMLPackage.DEPLOYMENT_SPECIFICATION : + return createDeploymentSpecification(); + case UMLPackage.ARTIFACT : + return createArtifact(); + case UMLPackage.MANIFESTATION : + return createManifestation(); + case UMLPackage.OPERATION : + return createOperation(); + case UMLPackage.BEHAVIORAL_FEATURE : + return createBehavioralFeature(); + case UMLPackage.BEHAVIOR : + return createBehavior(); + case UMLPackage.PARAMETER_SET : + return createParameterSet(); + case UMLPackage.DATA_TYPE : + return createDataType(); + case UMLPackage.INTERFACE : + return createInterface(); + case UMLPackage.RECEPTION : + return createReception(); + case UMLPackage.SIGNAL : + return createSignal(); + case UMLPackage.PROTOCOL_STATE_MACHINE : + return createProtocolStateMachine(); + case UMLPackage.STATE_MACHINE : + return createStateMachine(); + case UMLPackage.REGION : + return createRegion(); + case UMLPackage.TRANSITION : + return createTransition(); + case UMLPackage.TRIGGER : + return createTrigger(); + case UMLPackage.PORT : + return createPort(); + case UMLPackage.STATE : + return createState(); + case UMLPackage.CONNECTION_POINT_REFERENCE : + return createConnectionPointReference(); + case UMLPackage.PSEUDOSTATE : + return createPseudostate(); + case UMLPackage.PROTOCOL_CONFORMANCE : + return createProtocolConformance(); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER : + return createOperationTemplateParameter(); + case UMLPackage.ASSOCIATION : + return createAssociation(); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER : + return createConnectableElementTemplateParameter(); + case UMLPackage.COLLABORATION_USE : + return createCollaborationUse(); + case UMLPackage.COLLABORATION : + return createCollaboration(); + case UMLPackage.CONNECTOR : + return createConnector(); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE : + return createRedefinableTemplateSignature(); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER : + return createClassifierTemplateParameter(); + case UMLPackage.INTERFACE_REALIZATION : + return createInterfaceRealization(); + case UMLPackage.EXTENSION : + return createExtension(); + case UMLPackage.EXTENSION_END : + return createExtensionEnd(); + case UMLPackage.STRING_EXPRESSION : + return createStringExpression(); + case UMLPackage.EXPRESSION : + return createExpression(); + case UMLPackage.LITERAL_INTEGER : + return createLiteralInteger(); + case UMLPackage.LITERAL_STRING : + return createLiteralString(); + case UMLPackage.LITERAL_BOOLEAN : + return createLiteralBoolean(); + case UMLPackage.LITERAL_NULL : + return createLiteralNull(); + case UMLPackage.SLOT : + return createSlot(); + case UMLPackage.INSTANCE_SPECIFICATION : + return createInstanceSpecification(); + case UMLPackage.ENUMERATION : + return createEnumeration(); + case UMLPackage.ENUMERATION_LITERAL : + return createEnumerationLiteral(); + case UMLPackage.PRIMITIVE_TYPE : + return createPrimitiveType(); + case UMLPackage.INSTANCE_VALUE : + return createInstanceValue(); + case UMLPackage.LITERAL_UNLIMITED_NATURAL : + return createLiteralUnlimitedNatural(); + case UMLPackage.OPAQUE_BEHAVIOR : + return createOpaqueBehavior(); + case UMLPackage.FUNCTION_BEHAVIOR : + return createFunctionBehavior(); + case UMLPackage.ACTOR : + return createActor(); + case UMLPackage.USAGE : + return createUsage(); + case UMLPackage.MESSAGE : + return createMessage(); + case UMLPackage.INTERACTION : + return createInteraction(); + case UMLPackage.LIFELINE : + return createLifeline(); + case UMLPackage.PART_DECOMPOSITION : + return createPartDecomposition(); + case UMLPackage.INTERACTION_USE : + return createInteractionUse(); + case UMLPackage.GATE : + return createGate(); + case UMLPackage.ACTION : + return createAction(); + case UMLPackage.ACTIVITY_EDGE : + return createActivityEdge(); + case UMLPackage.ACTIVITY : + return createActivity(); + case UMLPackage.ACTIVITY_PARTITION : + return createActivityPartition(); + case UMLPackage.STRUCTURED_ACTIVITY_NODE : + return createStructuredActivityNode(); + case UMLPackage.VARIABLE : + return createVariable(); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION : + return createInterruptibleActivityRegion(); + case UMLPackage.EXCEPTION_HANDLER : + return createExceptionHandler(); + case UMLPackage.OUTPUT_PIN : + return createOutputPin(); + case UMLPackage.PIN : + return createPin(); + case UMLPackage.INPUT_PIN : + return createInputPin(); + case UMLPackage.GENERAL_ORDERING : + return createGeneralOrdering(); + case UMLPackage.INTERACTION_OPERAND : + return createInteractionOperand(); + case UMLPackage.INTERACTION_CONSTRAINT : + return createInteractionConstraint(); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION : + return createExecutionOccurrenceSpecification(); + case UMLPackage.EXECUTION_EVENT : + return createExecutionEvent(); + case UMLPackage.STATE_INVARIANT : + return createStateInvariant(); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION : + return createActionExecutionSpecification(); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION : + return createBehaviorExecutionSpecification(); + case UMLPackage.CREATION_EVENT : + return createCreationEvent(); + case UMLPackage.DESTRUCTION_EVENT : + return createDestructionEvent(); + case UMLPackage.SEND_OPERATION_EVENT : + return createSendOperationEvent(); + case UMLPackage.SEND_SIGNAL_EVENT : + return createSendSignalEvent(); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION : + return createMessageOccurrenceSpecification(); + case UMLPackage.COMBINED_FRAGMENT : + return createCombinedFragment(); + case UMLPackage.CONTINUATION : + return createContinuation(); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT : + return createConsiderIgnoreFragment(); + case UMLPackage.CALL_EVENT : + return createCallEvent(); + case UMLPackage.CHANGE_EVENT : + return createChangeEvent(); + case UMLPackage.SIGNAL_EVENT : + return createSignalEvent(); + case UMLPackage.ANY_RECEIVE_EVENT : + return createAnyReceiveEvent(); + case UMLPackage.CREATE_OBJECT_ACTION : + return createCreateObjectAction(); + case UMLPackage.DESTROY_OBJECT_ACTION : + return createDestroyObjectAction(); + case UMLPackage.TEST_IDENTITY_ACTION : + return createTestIdentityAction(); + case UMLPackage.READ_SELF_ACTION : + return createReadSelfAction(); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION : + return createReadStructuralFeatureAction(); + case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION : + return createClearStructuralFeatureAction(); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION : + return createRemoveStructuralFeatureValueAction(); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION : + return createAddStructuralFeatureValueAction(); + case UMLPackage.LINK_END_DATA : + return createLinkEndData(); + case UMLPackage.QUALIFIER_VALUE : + return createQualifierValue(); + case UMLPackage.READ_LINK_ACTION : + return createReadLinkAction(); + case UMLPackage.LINK_END_CREATION_DATA : + return createLinkEndCreationData(); + case UMLPackage.CREATE_LINK_ACTION : + return createCreateLinkAction(); + case UMLPackage.DESTROY_LINK_ACTION : + return createDestroyLinkAction(); + case UMLPackage.LINK_END_DESTRUCTION_DATA : + return createLinkEndDestructionData(); + case UMLPackage.CLEAR_ASSOCIATION_ACTION : + return createClearAssociationAction(); + case UMLPackage.BROADCAST_SIGNAL_ACTION : + return createBroadcastSignalAction(); + case UMLPackage.SEND_OBJECT_ACTION : + return createSendObjectAction(); + case UMLPackage.VALUE_SPECIFICATION_ACTION : + return createValueSpecificationAction(); + case UMLPackage.TIME_EXPRESSION : + return createTimeExpression(); + case UMLPackage.DURATION : + return createDuration(); + case UMLPackage.TIME_OBSERVATION_ACTION : + return createTimeObservationAction(); + case UMLPackage.VALUE_PIN : + return createValuePin(); + case UMLPackage.DURATION_INTERVAL : + return createDurationInterval(); + case UMLPackage.INTERVAL : + return createInterval(); + case UMLPackage.TIME_CONSTRAINT : + return createTimeConstraint(); + case UMLPackage.INTERVAL_CONSTRAINT : + return createIntervalConstraint(); + case UMLPackage.TIME_INTERVAL : + return createTimeInterval(); + case UMLPackage.DURATION_OBSERVATION_ACTION : + return createDurationObservationAction(); + case UMLPackage.DURATION_CONSTRAINT : + return createDurationConstraint(); + case UMLPackage.OPAQUE_ACTION : + return createOpaqueAction(); + case UMLPackage.SEND_SIGNAL_ACTION : + return createSendSignalAction(); + case UMLPackage.CALL_OPERATION_ACTION : + return createCallOperationAction(); + case UMLPackage.CALL_BEHAVIOR_ACTION : + return createCallBehaviorAction(); + case UMLPackage.INFORMATION_ITEM : + return createInformationItem(); + case UMLPackage.INFORMATION_FLOW : + return createInformationFlow(); + case UMLPackage.MODEL : + return createModel(); + case UMLPackage.READ_VARIABLE_ACTION : + return createReadVariableAction(); + case UMLPackage.CLEAR_VARIABLE_ACTION : + return createClearVariableAction(); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION : + return createAddVariableValueAction(); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION : + return createRemoveVariableValueAction(); + case UMLPackage.RAISE_EXCEPTION_ACTION : + return createRaiseExceptionAction(); + case UMLPackage.ACTION_INPUT_PIN : + return createActionInputPin(); + case UMLPackage.READ_EXTENT_ACTION : + return createReadExtentAction(); + case UMLPackage.RECLASSIFY_OBJECT_ACTION : + return createReclassifyObjectAction(); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION : + return createReadIsClassifiedObjectAction(); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION : + return createStartClassifierBehaviorAction(); + case UMLPackage.READ_LINK_OBJECT_END_ACTION : + return createReadLinkObjectEndAction(); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION : + return createReadLinkObjectEndQualifierAction(); + case UMLPackage.CREATE_LINK_OBJECT_ACTION : + return createCreateLinkObjectAction(); + case UMLPackage.ACCEPT_EVENT_ACTION : + return createAcceptEventAction(); + case UMLPackage.ACCEPT_CALL_ACTION : + return createAcceptCallAction(); + case UMLPackage.REPLY_ACTION : + return createReplyAction(); + case UMLPackage.UNMARSHALL_ACTION : + return createUnmarshallAction(); + case UMLPackage.CONTROL_FLOW : + return createControlFlow(); + case UMLPackage.INITIAL_NODE : + return createInitialNode(); + case UMLPackage.ACTIVITY_PARAMETER_NODE : + return createActivityParameterNode(); + case UMLPackage.FORK_NODE : + return createForkNode(); + case UMLPackage.FLOW_FINAL_NODE : + return createFlowFinalNode(); + case UMLPackage.CENTRAL_BUFFER_NODE : + return createCentralBufferNode(); + case UMLPackage.MERGE_NODE : + return createMergeNode(); + case UMLPackage.DECISION_NODE : + return createDecisionNode(); + case UMLPackage.ACTIVITY_FINAL_NODE : + return createActivityFinalNode(); + case UMLPackage.JOIN_NODE : + return createJoinNode(); + case UMLPackage.DATA_STORE_NODE : + return createDataStoreNode(); + case UMLPackage.OBJECT_FLOW : + return createObjectFlow(); + case UMLPackage.SEQUENCE_NODE : + return createSequenceNode(); + case UMLPackage.CONDITIONAL_NODE : + return createConditionalNode(); + case UMLPackage.CLAUSE : + return createClause(); + case UMLPackage.LOOP_NODE : + return createLoopNode(); + case UMLPackage.EXPANSION_NODE : + return createExpansionNode(); + case UMLPackage.EXPANSION_REGION : + return createExpansionRegion(); + case UMLPackage.COMPONENT_REALIZATION : + return createComponentRealization(); + case UMLPackage.COMPONENT : + return createComponent(); + case UMLPackage.NODE : + return createNode(); + case UMLPackage.DEVICE : + return createDevice(); + case UMLPackage.EXECUTION_ENVIRONMENT : + return createExecutionEnvironment(); + case UMLPackage.COMMUNICATION_PATH : + return createCommunicationPath(); + case UMLPackage.FINAL_STATE : + return createFinalState(); + case UMLPackage.TIME_EVENT : + return createTimeEvent(); + case UMLPackage.PROTOCOL_TRANSITION : + return createProtocolTransition(); + case UMLPackage.ASSOCIATION_CLASS : + return createAssociationClass(); + default : + throw new IllegalArgumentException( + "The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + /** + * + * + * @generated + */ + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + case UMLPackage.VISIBILITY_KIND : + return createVisibilityKindFromString(eDataType, initialValue); + case UMLPackage.CALL_CONCURRENCY_KIND : + return createCallConcurrencyKindFromString(eDataType, + initialValue); + case UMLPackage.TRANSITION_KIND : + return createTransitionKindFromString(eDataType, initialValue); + case UMLPackage.PSEUDOSTATE_KIND : + return createPseudostateKindFromString(eDataType, initialValue); + case UMLPackage.AGGREGATION_KIND : + return createAggregationKindFromString(eDataType, initialValue); + case UMLPackage.PARAMETER_DIRECTION_KIND : + return createParameterDirectionKindFromString(eDataType, + initialValue); + case UMLPackage.PARAMETER_EFFECT_KIND : + return createParameterEffectKindFromString(eDataType, + initialValue); + case UMLPackage.CONNECTOR_KIND : + return createConnectorKindFromString(eDataType, initialValue); + case UMLPackage.MESSAGE_KIND : + return createMessageKindFromString(eDataType, initialValue); + case UMLPackage.MESSAGE_SORT : + return createMessageSortFromString(eDataType, initialValue); + case UMLPackage.OBJECT_NODE_ORDERING_KIND : + return createObjectNodeOrderingKindFromString(eDataType, + initialValue); + case UMLPackage.INTERACTION_OPERATOR_KIND : + return createInteractionOperatorKindFromString(eDataType, + initialValue); + case UMLPackage.EXPANSION_KIND : + return createExpansionKindFromString(eDataType, initialValue); + default : + throw new IllegalArgumentException( + "The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + /** + * + * + * @generated + */ + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + case UMLPackage.VISIBILITY_KIND : + return convertVisibilityKindToString(eDataType, instanceValue); + case UMLPackage.CALL_CONCURRENCY_KIND : + return convertCallConcurrencyKindToString(eDataType, + instanceValue); + case UMLPackage.TRANSITION_KIND : + return convertTransitionKindToString(eDataType, instanceValue); + case UMLPackage.PSEUDOSTATE_KIND : + return convertPseudostateKindToString(eDataType, instanceValue); + case UMLPackage.AGGREGATION_KIND : + return convertAggregationKindToString(eDataType, instanceValue); + case UMLPackage.PARAMETER_DIRECTION_KIND : + return convertParameterDirectionKindToString(eDataType, + instanceValue); + case UMLPackage.PARAMETER_EFFECT_KIND : + return convertParameterEffectKindToString(eDataType, + instanceValue); + case UMLPackage.CONNECTOR_KIND : + return convertConnectorKindToString(eDataType, instanceValue); + case UMLPackage.MESSAGE_KIND : + return convertMessageKindToString(eDataType, instanceValue); + case UMLPackage.MESSAGE_SORT : + return convertMessageSortToString(eDataType, instanceValue); + case UMLPackage.OBJECT_NODE_ORDERING_KIND : + return convertObjectNodeOrderingKindToString(eDataType, + instanceValue); + case UMLPackage.INTERACTION_OPERATOR_KIND : + return convertInteractionOperatorKindToString(eDataType, + instanceValue); + case UMLPackage.EXPANSION_KIND : + return convertExpansionKindToString(eDataType, instanceValue); + default : + throw new IllegalArgumentException( + "The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + /** + * + * + * @generated + */ + public Comment createComment() { + CommentImpl comment = new CommentImpl(); + return comment; + } + + /** + * + * + * @generated + */ + public Dependency createDependency() { + DependencyImpl dependency = new DependencyImpl(); + return dependency; + } + + /** + * + * + * @generated + */ + public TemplateParameter createTemplateParameter() { + TemplateParameterImpl templateParameter = new TemplateParameterImpl(); + return templateParameter; + } + + /** + * + * + * @generated + */ + public TemplateSignature createTemplateSignature() { + TemplateSignatureImpl templateSignature = new TemplateSignatureImpl(); + return templateSignature; + } + + /** + * + * + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBindingImpl templateBinding = new TemplateBindingImpl(); + return templateBinding; + } + + /** + * + * + * @generated + */ + public TemplateParameterSubstitution createTemplateParameterSubstitution() { + TemplateParameterSubstitutionImpl templateParameterSubstitution = new TemplateParameterSubstitutionImpl(); + return templateParameterSubstitution; + } + + /** + * + * + * @generated + */ + public ElementImport createElementImport() { + ElementImportImpl elementImport = new ElementImportImpl(); + return elementImport; + } + + /** + * + * + * @generated + */ + public PackageImport createPackageImport() { + PackageImportImpl packageImport = new PackageImportImpl(); + return packageImport; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Package createPackage() { + PackageImpl package_ = new PackageImpl(); + return package_; + } + + /** + * + * + * @generated + */ + public PackageMerge createPackageMerge() { + PackageMergeImpl packageMerge = new PackageMergeImpl(); + return packageMerge; + } + + /** + * + * + * @generated + */ + public ProfileApplication createProfileApplication() { + ProfileApplicationImpl profileApplication = new ProfileApplicationImpl(); + return profileApplication; + } + + /** + * + * + * @generated + */ + public Profile createProfile() { + ProfileImpl profile = new ProfileImpl(); + return profile; + } + + /** + * + * + * @generated + */ + public Stereotype createStereotype() { + StereotypeImpl stereotype = new StereotypeImpl(); + return stereotype; + } + + /** + * + * + * @generated + */ + public org.eclipse.uml2.uml.Class createClass() { + ClassImpl class_ = new ClassImpl(); + return class_; + } + + /** + * + * + * @generated + */ + public Generalization createGeneralization() { + GeneralizationImpl generalization = new GeneralizationImpl(); + return generalization; + } + + /** + * + * + * @generated + */ + public GeneralizationSet createGeneralizationSet() { + GeneralizationSetImpl generalizationSet = new GeneralizationSetImpl(); + return generalizationSet; + } + + /** + * + * + * @generated + */ + public UseCase createUseCase() { + UseCaseImpl useCase = new UseCaseImpl(); + return useCase; + } + + /** + * + * + * @generated + */ + public Include createInclude() { + IncludeImpl include = new IncludeImpl(); + return include; + } + + /** + * + * + * @generated + */ + public Extend createExtend() { + ExtendImpl extend = new ExtendImpl(); + return extend; + } + + /** + * + * + * @generated + */ + public Constraint createConstraint() { + ConstraintImpl constraint = new ConstraintImpl(); + return constraint; + } + + /** + * + * + * @generated + */ + public ExtensionPoint createExtensionPoint() { + ExtensionPointImpl extensionPoint = new ExtensionPointImpl(); + return extensionPoint; + } + + /** + * + * + * @generated + */ + public Substitution createSubstitution() { + SubstitutionImpl substitution = new SubstitutionImpl(); + return substitution; + } + + /** + * + * + * @generated + */ + public Realization createRealization() { + RealizationImpl realization = new RealizationImpl(); + return realization; + } + + /** + * + * + * @generated + */ + public Abstraction createAbstraction() { + AbstractionImpl abstraction = new AbstractionImpl(); + return abstraction; + } + + /** + * + * + * @generated + */ + public OpaqueExpression createOpaqueExpression() { + OpaqueExpressionImpl opaqueExpression = new OpaqueExpressionImpl(); + return opaqueExpression; + } + + /** + * + * + * @generated + */ + public Parameter createParameter() { + ParameterImpl parameter = new ParameterImpl(); + return parameter; + } + + /** + * + * + * @generated + */ + public ConnectorEnd createConnectorEnd() { + ConnectorEndImpl connectorEnd = new ConnectorEndImpl(); + return connectorEnd; + } + + /** + * + * + * @generated + */ + public Property createProperty() { + PropertyImpl property = new PropertyImpl(); + return property; + } + + /** + * + * + * @generated + */ + public Deployment createDeployment() { + DeploymentImpl deployment = new DeploymentImpl(); + return deployment; + } + + /** + * + * + * @generated + */ + public DeploymentSpecification createDeploymentSpecification() { + DeploymentSpecificationImpl deploymentSpecification = new DeploymentSpecificationImpl(); + return deploymentSpecification; + } + + /** + * + * + * @generated + */ + public Artifact createArtifact() { + ArtifactImpl artifact = new ArtifactImpl(); + return artifact; + } + + /** + * + * + * @generated + */ + public Manifestation createManifestation() { + ManifestationImpl manifestation = new ManifestationImpl(); + return manifestation; + } + + /** + * + * + * @generated + */ + public Operation createOperation() { + OperationImpl operation = new OperationImpl(); + return operation; + } + + /** + * + * + * @generated + */ + public BehavioralFeature createBehavioralFeature() { + BehavioralFeatureImpl behavioralFeature = new BehavioralFeatureImpl(); + return behavioralFeature; + } + + /** + * + * + * @generated + */ + public Behavior createBehavior() { + BehaviorImpl behavior = new BehaviorImpl(); + return behavior; + } + + /** + * + * + * @generated + */ + public ParameterSet createParameterSet() { + ParameterSetImpl parameterSet = new ParameterSetImpl(); + return parameterSet; + } + + /** + * + * + * @generated + */ + public DataType createDataType() { + DataTypeImpl dataType = new DataTypeImpl(); + return dataType; + } + + /** + * + * + * @generated + */ + public Interface createInterface() { + InterfaceImpl interface_ = new InterfaceImpl(); + return interface_; + } + + /** + * + * + * @generated + */ + public Reception createReception() { + ReceptionImpl reception = new ReceptionImpl(); + return reception; + } + + /** + * + * + * @generated + */ + public Signal createSignal() { + SignalImpl signal = new SignalImpl(); + return signal; + } + + /** + * + * + * @generated + */ + public ProtocolStateMachine createProtocolStateMachine() { + ProtocolStateMachineImpl protocolStateMachine = new ProtocolStateMachineImpl(); + return protocolStateMachine; + } + + /** + * + * + * @generated + */ + public StateMachine createStateMachine() { + StateMachineImpl stateMachine = new StateMachineImpl(); + return stateMachine; + } + + /** + * + * + * @generated + */ + public Region createRegion() { + RegionImpl region = new RegionImpl(); + return region; + } + + /** + * + * + * @generated + */ + public Transition createTransition() { + TransitionImpl transition = new TransitionImpl(); + return transition; + } + + /** + * + * + * @generated + */ + public Trigger createTrigger() { + TriggerImpl trigger = new TriggerImpl(); + return trigger; + } + + /** + * + * + * @generated + */ + public Port createPort() { + PortImpl port = new PortImpl(); + return port; + } + + /** + * + * + * @generated + */ + public State createState() { + StateImpl state = new StateImpl(); + return state; + } + + /** + * + * + * @generated + */ + public ConnectionPointReference createConnectionPointReference() { + ConnectionPointReferenceImpl connectionPointReference = new ConnectionPointReferenceImpl(); + return connectionPointReference; + } + + /** + * + * + * @generated + */ + public Pseudostate createPseudostate() { + PseudostateImpl pseudostate = new PseudostateImpl(); + return pseudostate; + } + + /** + * + * + * @generated + */ + public ProtocolConformance createProtocolConformance() { + ProtocolConformanceImpl protocolConformance = new ProtocolConformanceImpl(); + return protocolConformance; + } + + /** + * + * + * @generated + */ + public OperationTemplateParameter createOperationTemplateParameter() { + OperationTemplateParameterImpl operationTemplateParameter = new OperationTemplateParameterImpl(); + return operationTemplateParameter; + } + + /** + * + * + * @generated + */ + public Association createAssociation() { + AssociationImpl association = new AssociationImpl(); + return association; + } + + /** + * + * + * @generated + */ + public ConnectableElementTemplateParameter createConnectableElementTemplateParameter() { + ConnectableElementTemplateParameterImpl connectableElementTemplateParameter = new ConnectableElementTemplateParameterImpl(); + return connectableElementTemplateParameter; + } + + /** + * + * + * @generated + */ + public CollaborationUse createCollaborationUse() { + CollaborationUseImpl collaborationUse = new CollaborationUseImpl(); + return collaborationUse; + } + + /** + * + * + * @generated + */ + public Collaboration createCollaboration() { + CollaborationImpl collaboration = new CollaborationImpl(); + return collaboration; + } + + /** + * + * + * @generated + */ + public Connector createConnector() { + ConnectorImpl connector = new ConnectorImpl(); + return connector; + } + + /** + * + * + * @generated + */ + public RedefinableTemplateSignature createRedefinableTemplateSignature() { + RedefinableTemplateSignatureImpl redefinableTemplateSignature = new RedefinableTemplateSignatureImpl(); + return redefinableTemplateSignature; + } + + /** + * + * + * @generated + */ + public ClassifierTemplateParameter createClassifierTemplateParameter() { + ClassifierTemplateParameterImpl classifierTemplateParameter = new ClassifierTemplateParameterImpl(); + return classifierTemplateParameter; + } + + /** + * + * + * @generated + */ + public InterfaceRealization createInterfaceRealization() { + InterfaceRealizationImpl interfaceRealization = new InterfaceRealizationImpl(); + return interfaceRealization; + } + + /** + * + * + * @generated + */ + public Extension createExtension() { + ExtensionImpl extension = new ExtensionImpl(); + return extension; + } + + /** + * + * + * @generated + */ + public ExtensionEnd createExtensionEnd() { + ExtensionEndImpl extensionEnd = new ExtensionEndImpl(); + return extensionEnd; + } + + /** + * + * + * @generated + */ + public StringExpression createStringExpression() { + StringExpressionImpl stringExpression = new StringExpressionImpl(); + return stringExpression; + } + + /** + * + * + * @generated + */ + public Expression createExpression() { + ExpressionImpl expression = new ExpressionImpl(); + return expression; + } + + /** + * + * + * @generated + */ + public LiteralInteger createLiteralInteger() { + LiteralIntegerImpl literalInteger = new LiteralIntegerImpl(); + return literalInteger; + } + + /** + * + * + * @generated + */ + public LiteralString createLiteralString() { + LiteralStringImpl literalString = new LiteralStringImpl(); + return literalString; + } + + /** + * + * + * @generated + */ + public LiteralBoolean createLiteralBoolean() { + LiteralBooleanImpl literalBoolean = new LiteralBooleanImpl(); + return literalBoolean; + } + + /** + * + * + * @generated + */ + public LiteralNull createLiteralNull() { + LiteralNullImpl literalNull = new LiteralNullImpl(); + return literalNull; + } + + /** + * + * + * @generated + */ + public Slot createSlot() { + SlotImpl slot = new SlotImpl(); + return slot; + } + + /** + * + * + * @generated + */ + public InstanceSpecification createInstanceSpecification() { + InstanceSpecificationImpl instanceSpecification = new InstanceSpecificationImpl(); + return instanceSpecification; + } + + /** + * + * + * @generated + */ + public Enumeration createEnumeration() { + EnumerationImpl enumeration = new EnumerationImpl(); + return enumeration; + } + + /** + * + * + * @generated + */ + public EnumerationLiteral createEnumerationLiteral() { + EnumerationLiteralImpl enumerationLiteral = new EnumerationLiteralImpl(); + return enumerationLiteral; + } + + /** + * + * + * @generated + */ + public PrimitiveType createPrimitiveType() { + PrimitiveTypeImpl primitiveType = new PrimitiveTypeImpl(); + return primitiveType; + } + + /** + * + * + * @generated + */ + public InstanceValue createInstanceValue() { + InstanceValueImpl instanceValue = new InstanceValueImpl(); + return instanceValue; + } + + /** + * + * + * @generated + */ + public LiteralUnlimitedNatural createLiteralUnlimitedNatural() { + LiteralUnlimitedNaturalImpl literalUnlimitedNatural = new LiteralUnlimitedNaturalImpl(); + return literalUnlimitedNatural; + } + + /** + * + * + * @generated + */ + public OpaqueBehavior createOpaqueBehavior() { + OpaqueBehaviorImpl opaqueBehavior = new OpaqueBehaviorImpl(); + return opaqueBehavior; + } + + /** + * + * + * @generated + */ + public FunctionBehavior createFunctionBehavior() { + FunctionBehaviorImpl functionBehavior = new FunctionBehaviorImpl(); + return functionBehavior; + } + + /** + * + * + * @generated + */ + public Actor createActor() { + ActorImpl actor = new ActorImpl(); + return actor; + } + + /** + * + * + * @generated + */ + public Usage createUsage() { + UsageImpl usage = new UsageImpl(); + return usage; + } + + /** + * + * + * @generated + */ + public Message createMessage() { + MessageImpl message = new MessageImpl(); + return message; + } + + /** + * + * + * @generated + */ + public Interaction createInteraction() { + InteractionImpl interaction = new InteractionImpl(); + return interaction; + } + + /** + * + * + * @generated + */ + public Lifeline createLifeline() { + LifelineImpl lifeline = new LifelineImpl(); + return lifeline; + } + + /** + * + * + * @generated + */ + public PartDecomposition createPartDecomposition() { + PartDecompositionImpl partDecomposition = new PartDecompositionImpl(); + return partDecomposition; + } + + /** + * + * + * @generated + */ + public InteractionUse createInteractionUse() { + InteractionUseImpl interactionUse = new InteractionUseImpl(); + return interactionUse; + } + + /** + * + * + * @generated + */ + public Gate createGate() { + GateImpl gate = new GateImpl(); + return gate; + } + + /** + * + * + * @generated + */ + public Action createAction() { + ActionImpl action = new ActionImpl(); + return action; + } + + /** + * + * + * @generated + */ + public ActivityEdge createActivityEdge() { + ActivityEdgeImpl activityEdge = new ActivityEdgeImpl(); + return activityEdge; + } + + /** + * + * + * @generated + */ + public Activity createActivity() { + ActivityImpl activity = new ActivityImpl(); + return activity; + } + + /** + * + * + * @generated + */ + public ActivityPartition createActivityPartition() { + ActivityPartitionImpl activityPartition = new ActivityPartitionImpl(); + return activityPartition; + } + + /** + * + * + * @generated + */ + public StructuredActivityNode createStructuredActivityNode() { + StructuredActivityNodeImpl structuredActivityNode = new StructuredActivityNodeImpl(); + return structuredActivityNode; + } + + /** + * + * + * @generated + */ + public Variable createVariable() { + VariableImpl variable = new VariableImpl(); + return variable; + } + + /** + * + * + * @generated + */ + public InterruptibleActivityRegion createInterruptibleActivityRegion() { + InterruptibleActivityRegionImpl interruptibleActivityRegion = new InterruptibleActivityRegionImpl(); + return interruptibleActivityRegion; + } + + /** + * + * + * @generated + */ + public ExceptionHandler createExceptionHandler() { + ExceptionHandlerImpl exceptionHandler = new ExceptionHandlerImpl(); + return exceptionHandler; + } + + /** + * + * + * @generated + */ + public OutputPin createOutputPin() { + OutputPinImpl outputPin = new OutputPinImpl(); + return outputPin; + } + + /** + * + * + * @generated + */ + public Pin createPin() { + PinImpl pin = new PinImpl(); + return pin; + } + + /** + * + * + * @generated + */ + public InputPin createInputPin() { + InputPinImpl inputPin = new InputPinImpl(); + return inputPin; + } + + /** + * + * + * @generated + */ + public GeneralOrdering createGeneralOrdering() { + GeneralOrderingImpl generalOrdering = new GeneralOrderingImpl(); + return generalOrdering; + } + + /** + * + * + * @generated + */ + public InteractionOperand createInteractionOperand() { + InteractionOperandImpl interactionOperand = new InteractionOperandImpl(); + return interactionOperand; + } + + /** + * + * + * @generated + */ + public InteractionConstraint createInteractionConstraint() { + InteractionConstraintImpl interactionConstraint = new InteractionConstraintImpl(); + return interactionConstraint; + } + + /** + * + * + * @generated + */ + public ExecutionOccurrenceSpecification createExecutionOccurrenceSpecification() { + ExecutionOccurrenceSpecificationImpl executionOccurrenceSpecification = new ExecutionOccurrenceSpecificationImpl(); + return executionOccurrenceSpecification; + } + + /** + * + * + * @generated + */ + public ExecutionEvent createExecutionEvent() { + ExecutionEventImpl executionEvent = new ExecutionEventImpl(); + return executionEvent; + } + + /** + * + * + * @generated + */ + public StateInvariant createStateInvariant() { + StateInvariantImpl stateInvariant = new StateInvariantImpl(); + return stateInvariant; + } + + /** + * + * + * @generated + */ + public ActionExecutionSpecification createActionExecutionSpecification() { + ActionExecutionSpecificationImpl actionExecutionSpecification = new ActionExecutionSpecificationImpl(); + return actionExecutionSpecification; + } + + /** + * + * + * @generated + */ + public BehaviorExecutionSpecification createBehaviorExecutionSpecification() { + BehaviorExecutionSpecificationImpl behaviorExecutionSpecification = new BehaviorExecutionSpecificationImpl(); + return behaviorExecutionSpecification; + } + + /** + * + * + * @generated + */ + public CreationEvent createCreationEvent() { + CreationEventImpl creationEvent = new CreationEventImpl(); + return creationEvent; + } + + /** + * + * + * @generated + */ + public DestructionEvent createDestructionEvent() { + DestructionEventImpl destructionEvent = new DestructionEventImpl(); + return destructionEvent; + } + + /** + * + * + * @generated + */ + public SendOperationEvent createSendOperationEvent() { + SendOperationEventImpl sendOperationEvent = new SendOperationEventImpl(); + return sendOperationEvent; + } + + /** + * + * + * @generated + */ + public SendSignalEvent createSendSignalEvent() { + SendSignalEventImpl sendSignalEvent = new SendSignalEventImpl(); + return sendSignalEvent; + } + + /** + * + * + * @generated + */ + public MessageOccurrenceSpecification createMessageOccurrenceSpecification() { + MessageOccurrenceSpecificationImpl messageOccurrenceSpecification = new MessageOccurrenceSpecificationImpl(); + return messageOccurrenceSpecification; + } + + /** + * + * + * @generated + */ + public CombinedFragment createCombinedFragment() { + CombinedFragmentImpl combinedFragment = new CombinedFragmentImpl(); + return combinedFragment; + } + + /** + * + * + * @generated + */ + public Continuation createContinuation() { + ContinuationImpl continuation = new ContinuationImpl(); + return continuation; + } + + /** + * + * + * @generated + */ + public ConsiderIgnoreFragment createConsiderIgnoreFragment() { + ConsiderIgnoreFragmentImpl considerIgnoreFragment = new ConsiderIgnoreFragmentImpl(); + return considerIgnoreFragment; + } + + /** + * + * + * @generated + */ + public CallEvent createCallEvent() { + CallEventImpl callEvent = new CallEventImpl(); + return callEvent; + } + + /** + * + * + * @generated + */ + public ChangeEvent createChangeEvent() { + ChangeEventImpl changeEvent = new ChangeEventImpl(); + return changeEvent; + } + + /** + * + * + * @generated + */ + public SignalEvent createSignalEvent() { + SignalEventImpl signalEvent = new SignalEventImpl(); + return signalEvent; + } + + /** + * + * + * @generated + */ + public AnyReceiveEvent createAnyReceiveEvent() { + AnyReceiveEventImpl anyReceiveEvent = new AnyReceiveEventImpl(); + return anyReceiveEvent; + } + + /** + * + * + * @generated + */ + public CreateObjectAction createCreateObjectAction() { + CreateObjectActionImpl createObjectAction = new CreateObjectActionImpl(); + return createObjectAction; + } + + /** + * + * + * @generated + */ + public DestroyObjectAction createDestroyObjectAction() { + DestroyObjectActionImpl destroyObjectAction = new DestroyObjectActionImpl(); + return destroyObjectAction; + } + + /** + * + * + * @generated + */ + public TestIdentityAction createTestIdentityAction() { + TestIdentityActionImpl testIdentityAction = new TestIdentityActionImpl(); + return testIdentityAction; + } + + /** + * + * + * @generated + */ + public ReadSelfAction createReadSelfAction() { + ReadSelfActionImpl readSelfAction = new ReadSelfActionImpl(); + return readSelfAction; + } + + /** + * + * + * @generated + */ + public ReadStructuralFeatureAction createReadStructuralFeatureAction() { + ReadStructuralFeatureActionImpl readStructuralFeatureAction = new ReadStructuralFeatureActionImpl(); + return readStructuralFeatureAction; + } + + /** + * + * + * @generated + */ + public ClearStructuralFeatureAction createClearStructuralFeatureAction() { + ClearStructuralFeatureActionImpl clearStructuralFeatureAction = new ClearStructuralFeatureActionImpl(); + return clearStructuralFeatureAction; + } + + /** + * + * + * @generated + */ + public RemoveStructuralFeatureValueAction createRemoveStructuralFeatureValueAction() { + RemoveStructuralFeatureValueActionImpl removeStructuralFeatureValueAction = new RemoveStructuralFeatureValueActionImpl(); + return removeStructuralFeatureValueAction; + } + + /** + * + * + * @generated + */ + public AddStructuralFeatureValueAction createAddStructuralFeatureValueAction() { + AddStructuralFeatureValueActionImpl addStructuralFeatureValueAction = new AddStructuralFeatureValueActionImpl(); + return addStructuralFeatureValueAction; + } + + /** + * + * + * @generated + */ + public LinkEndData createLinkEndData() { + LinkEndDataImpl linkEndData = new LinkEndDataImpl(); + return linkEndData; + } + + /** + * + * + * @generated + */ + public QualifierValue createQualifierValue() { + QualifierValueImpl qualifierValue = new QualifierValueImpl(); + return qualifierValue; + } + + /** + * + * + * @generated + */ + public ReadLinkAction createReadLinkAction() { + ReadLinkActionImpl readLinkAction = new ReadLinkActionImpl(); + return readLinkAction; + } + + /** + * + * + * @generated + */ + public LinkEndCreationData createLinkEndCreationData() { + LinkEndCreationDataImpl linkEndCreationData = new LinkEndCreationDataImpl(); + return linkEndCreationData; + } + + /** + * + * + * @generated + */ + public CreateLinkAction createCreateLinkAction() { + CreateLinkActionImpl createLinkAction = new CreateLinkActionImpl(); + return createLinkAction; + } + + /** + * + * + * @generated + */ + public DestroyLinkAction createDestroyLinkAction() { + DestroyLinkActionImpl destroyLinkAction = new DestroyLinkActionImpl(); + return destroyLinkAction; + } + + /** + * + * + * @generated + */ + public LinkEndDestructionData createLinkEndDestructionData() { + LinkEndDestructionDataImpl linkEndDestructionData = new LinkEndDestructionDataImpl(); + return linkEndDestructionData; + } + + /** + * + * + * @generated + */ + public ClearAssociationAction createClearAssociationAction() { + ClearAssociationActionImpl clearAssociationAction = new ClearAssociationActionImpl(); + return clearAssociationAction; + } + + /** + * + * + * @generated + */ + public BroadcastSignalAction createBroadcastSignalAction() { + BroadcastSignalActionImpl broadcastSignalAction = new BroadcastSignalActionImpl(); + return broadcastSignalAction; + } + + /** + * + * + * @generated + */ + public SendObjectAction createSendObjectAction() { + SendObjectActionImpl sendObjectAction = new SendObjectActionImpl(); + return sendObjectAction; + } + + /** + * + * + * @generated + */ + public ValueSpecificationAction createValueSpecificationAction() { + ValueSpecificationActionImpl valueSpecificationAction = new ValueSpecificationActionImpl(); + return valueSpecificationAction; + } + + /** + * + * + * @generated + */ + public TimeExpression createTimeExpression() { + TimeExpressionImpl timeExpression = new TimeExpressionImpl(); + return timeExpression; + } + + /** + * + * + * @generated + */ + public Duration createDuration() { + DurationImpl duration = new DurationImpl(); + return duration; + } + + /** + * + * + * @generated + */ + public TimeObservationAction createTimeObservationAction() { + TimeObservationActionImpl timeObservationAction = new TimeObservationActionImpl(); + return timeObservationAction; + } + + /** + * + * + * @generated + */ + public ValuePin createValuePin() { + ValuePinImpl valuePin = new ValuePinImpl(); + return valuePin; + } + + /** + * + * + * @generated + */ + public DurationInterval createDurationInterval() { + DurationIntervalImpl durationInterval = new DurationIntervalImpl(); + return durationInterval; + } + + /** + * + * + * @generated + */ + public Interval createInterval() { + IntervalImpl interval = new IntervalImpl(); + return interval; + } + + /** + * + * + * @generated + */ + public TimeConstraint createTimeConstraint() { + TimeConstraintImpl timeConstraint = new TimeConstraintImpl(); + return timeConstraint; + } + + /** + * + * + * @generated + */ + public IntervalConstraint createIntervalConstraint() { + IntervalConstraintImpl intervalConstraint = new IntervalConstraintImpl(); + return intervalConstraint; + } + + /** + * + * + * @generated + */ + public TimeInterval createTimeInterval() { + TimeIntervalImpl timeInterval = new TimeIntervalImpl(); + return timeInterval; + } + + /** + * + * + * @generated + */ + public DurationObservationAction createDurationObservationAction() { + DurationObservationActionImpl durationObservationAction = new DurationObservationActionImpl(); + return durationObservationAction; + } + + /** + * + * + * @generated + */ + public DurationConstraint createDurationConstraint() { + DurationConstraintImpl durationConstraint = new DurationConstraintImpl(); + return durationConstraint; + } + + /** + * + * + * @generated + */ + public OpaqueAction createOpaqueAction() { + OpaqueActionImpl opaqueAction = new OpaqueActionImpl(); + return opaqueAction; + } + + /** + * + * + * @generated + */ + public SendSignalAction createSendSignalAction() { + SendSignalActionImpl sendSignalAction = new SendSignalActionImpl(); + return sendSignalAction; + } + + /** + * + * + * @generated + */ + public CallOperationAction createCallOperationAction() { + CallOperationActionImpl callOperationAction = new CallOperationActionImpl(); + return callOperationAction; + } + + /** + * + * + * @generated + */ + public CallBehaviorAction createCallBehaviorAction() { + CallBehaviorActionImpl callBehaviorAction = new CallBehaviorActionImpl(); + return callBehaviorAction; + } + + /** + * + * + * @generated + */ + public InformationItem createInformationItem() { + InformationItemImpl informationItem = new InformationItemImpl(); + return informationItem; + } + + /** + * + * + * @generated + */ + public InformationFlow createInformationFlow() { + InformationFlowImpl informationFlow = new InformationFlowImpl(); + return informationFlow; + } + + /** + * + * + * @generated + */ + public Model createModel() { + ModelImpl model = new ModelImpl(); + return model; + } + + /** + * + * + * @generated + */ + public ReadVariableAction createReadVariableAction() { + ReadVariableActionImpl readVariableAction = new ReadVariableActionImpl(); + return readVariableAction; + } + + /** + * + * + * @generated + */ + public ClearVariableAction createClearVariableAction() { + ClearVariableActionImpl clearVariableAction = new ClearVariableActionImpl(); + return clearVariableAction; + } + + /** + * + * + * @generated + */ + public AddVariableValueAction createAddVariableValueAction() { + AddVariableValueActionImpl addVariableValueAction = new AddVariableValueActionImpl(); + return addVariableValueAction; + } + + /** + * + * + * @generated + */ + public RemoveVariableValueAction createRemoveVariableValueAction() { + RemoveVariableValueActionImpl removeVariableValueAction = new RemoveVariableValueActionImpl(); + return removeVariableValueAction; + } + + /** + * + * + * @generated + */ + public RaiseExceptionAction createRaiseExceptionAction() { + RaiseExceptionActionImpl raiseExceptionAction = new RaiseExceptionActionImpl(); + return raiseExceptionAction; + } + + /** + * + * + * @generated + */ + public ActionInputPin createActionInputPin() { + ActionInputPinImpl actionInputPin = new ActionInputPinImpl(); + return actionInputPin; + } + + /** + * + * + * @generated + */ + public ReadExtentAction createReadExtentAction() { + ReadExtentActionImpl readExtentAction = new ReadExtentActionImpl(); + return readExtentAction; + } + + /** + * + * + * @generated + */ + public ReclassifyObjectAction createReclassifyObjectAction() { + ReclassifyObjectActionImpl reclassifyObjectAction = new ReclassifyObjectActionImpl(); + return reclassifyObjectAction; + } + + /** + * + * + * @generated + */ + public ReadIsClassifiedObjectAction createReadIsClassifiedObjectAction() { + ReadIsClassifiedObjectActionImpl readIsClassifiedObjectAction = new ReadIsClassifiedObjectActionImpl(); + return readIsClassifiedObjectAction; + } + + /** + * + * + * @generated + */ + public StartClassifierBehaviorAction createStartClassifierBehaviorAction() { + StartClassifierBehaviorActionImpl startClassifierBehaviorAction = new StartClassifierBehaviorActionImpl(); + return startClassifierBehaviorAction; + } + + /** + * + * + * @generated + */ + public ReadLinkObjectEndAction createReadLinkObjectEndAction() { + ReadLinkObjectEndActionImpl readLinkObjectEndAction = new ReadLinkObjectEndActionImpl(); + return readLinkObjectEndAction; + } + + /** + * + * + * @generated + */ + public ReadLinkObjectEndQualifierAction createReadLinkObjectEndQualifierAction() { + ReadLinkObjectEndQualifierActionImpl readLinkObjectEndQualifierAction = new ReadLinkObjectEndQualifierActionImpl(); + return readLinkObjectEndQualifierAction; + } + + /** + * + * + * @generated + */ + public CreateLinkObjectAction createCreateLinkObjectAction() { + CreateLinkObjectActionImpl createLinkObjectAction = new CreateLinkObjectActionImpl(); + return createLinkObjectAction; + } + + /** + * + * + * @generated + */ + public AcceptEventAction createAcceptEventAction() { + AcceptEventActionImpl acceptEventAction = new AcceptEventActionImpl(); + return acceptEventAction; + } + + /** + * + * + * @generated + */ + public AcceptCallAction createAcceptCallAction() { + AcceptCallActionImpl acceptCallAction = new AcceptCallActionImpl(); + return acceptCallAction; + } + + /** + * + * + * @generated + */ + public ReplyAction createReplyAction() { + ReplyActionImpl replyAction = new ReplyActionImpl(); + return replyAction; + } + + /** + * + * + * @generated + */ + public UnmarshallAction createUnmarshallAction() { + UnmarshallActionImpl unmarshallAction = new UnmarshallActionImpl(); + return unmarshallAction; + } + + /** + * + * + * @generated + */ + public ControlFlow createControlFlow() { + ControlFlowImpl controlFlow = new ControlFlowImpl(); + return controlFlow; + } + + /** + * + * + * @generated + */ + public InitialNode createInitialNode() { + InitialNodeImpl initialNode = new InitialNodeImpl(); + return initialNode; + } + + /** + * + * + * @generated + */ + public ActivityParameterNode createActivityParameterNode() { + ActivityParameterNodeImpl activityParameterNode = new ActivityParameterNodeImpl(); + return activityParameterNode; + } + + /** + * + * + * @generated + */ + public ForkNode createForkNode() { + ForkNodeImpl forkNode = new ForkNodeImpl(); + return forkNode; + } + + /** + * + * + * @generated + */ + public FlowFinalNode createFlowFinalNode() { + FlowFinalNodeImpl flowFinalNode = new FlowFinalNodeImpl(); + return flowFinalNode; + } + + /** + * + * + * @generated + */ + public CentralBufferNode createCentralBufferNode() { + CentralBufferNodeImpl centralBufferNode = new CentralBufferNodeImpl(); + return centralBufferNode; + } + + /** + * + * + * @generated + */ + public MergeNode createMergeNode() { + MergeNodeImpl mergeNode = new MergeNodeImpl(); + return mergeNode; + } + + /** + * + * + * @generated + */ + public DecisionNode createDecisionNode() { + DecisionNodeImpl decisionNode = new DecisionNodeImpl(); + return decisionNode; + } + + /** + * + * + * @generated + */ + public ActivityFinalNode createActivityFinalNode() { + ActivityFinalNodeImpl activityFinalNode = new ActivityFinalNodeImpl(); + return activityFinalNode; + } + + /** + * + * + * @generated + */ + public JoinNode createJoinNode() { + JoinNodeImpl joinNode = new JoinNodeImpl(); + return joinNode; + } + + /** + * + * + * @generated + */ + public DataStoreNode createDataStoreNode() { + DataStoreNodeImpl dataStoreNode = new DataStoreNodeImpl(); + return dataStoreNode; + } + + /** + * + * + * @generated + */ + public ObjectFlow createObjectFlow() { + ObjectFlowImpl objectFlow = new ObjectFlowImpl(); + return objectFlow; + } + + /** + * + * + * @generated + */ + public SequenceNode createSequenceNode() { + SequenceNodeImpl sequenceNode = new SequenceNodeImpl(); + return sequenceNode; + } + + /** + * + * + * @generated + */ + public ConditionalNode createConditionalNode() { + ConditionalNodeImpl conditionalNode = new ConditionalNodeImpl(); + return conditionalNode; + } + + /** + * + * + * @generated + */ + public Clause createClause() { + ClauseImpl clause = new ClauseImpl(); + return clause; + } + + /** + * + * + * @generated + */ + public LoopNode createLoopNode() { + LoopNodeImpl loopNode = new LoopNodeImpl(); + return loopNode; + } + + /** + * + * + * @generated + */ + public ExpansionNode createExpansionNode() { + ExpansionNodeImpl expansionNode = new ExpansionNodeImpl(); + return expansionNode; + } + + /** + * + * + * @generated + */ + public ExpansionRegion createExpansionRegion() { + ExpansionRegionImpl expansionRegion = new ExpansionRegionImpl(); + return expansionRegion; + } + + /** + * + * + * @generated + */ + public ComponentRealization createComponentRealization() { + ComponentRealizationImpl componentRealization = new ComponentRealizationImpl(); + return componentRealization; + } + + /** + * + * + * @generated + */ + public Component createComponent() { + ComponentImpl component = new ComponentImpl(); + return component; + } + + /** + * + * + * @generated + */ + public Node createNode() { + NodeImpl node = new NodeImpl(); + return node; + } + + /** + * + * + * @generated + */ + public Device createDevice() { + DeviceImpl device = new DeviceImpl(); + return device; + } + + /** + * + * + * @generated + */ + public ExecutionEnvironment createExecutionEnvironment() { + ExecutionEnvironmentImpl executionEnvironment = new ExecutionEnvironmentImpl(); + return executionEnvironment; + } + + /** + * + * + * @generated + */ + public CommunicationPath createCommunicationPath() { + CommunicationPathImpl communicationPath = new CommunicationPathImpl(); + return communicationPath; + } + + /** + * + * + * @generated + */ + public FinalState createFinalState() { + FinalStateImpl finalState = new FinalStateImpl(); + return finalState; + } + + /** + * + * + * @generated + */ + public TimeEvent createTimeEvent() { + TimeEventImpl timeEvent = new TimeEventImpl(); + return timeEvent; + } + + /** + * + * + * @generated + */ + public ProtocolTransition createProtocolTransition() { + ProtocolTransitionImpl protocolTransition = new ProtocolTransitionImpl(); + return protocolTransition; + } + + /** + * + * + * @generated + */ + public AssociationClass createAssociationClass() { + AssociationClassImpl associationClass = new AssociationClassImpl(); + return associationClass; + } + + /** + * + * + * @generated + */ + public VisibilityKind createVisibilityKindFromString(EDataType eDataType, + String initialValue) { + VisibilityKind result = VisibilityKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertVisibilityKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public CallConcurrencyKind createCallConcurrencyKindFromString( + EDataType eDataType, String initialValue) { + CallConcurrencyKind result = CallConcurrencyKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertCallConcurrencyKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public TransitionKind createTransitionKindFromString(EDataType eDataType, + String initialValue) { + TransitionKind result = TransitionKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertTransitionKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public PseudostateKind createPseudostateKindFromString(EDataType eDataType, + String initialValue) { + PseudostateKind result = PseudostateKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertPseudostateKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public AggregationKind createAggregationKindFromString(EDataType eDataType, + String initialValue) { + AggregationKind result = AggregationKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertAggregationKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ParameterDirectionKind createParameterDirectionKindFromString( + EDataType eDataType, String initialValue) { + ParameterDirectionKind result = ParameterDirectionKind + .get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertParameterDirectionKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ParameterEffectKind createParameterEffectKindFromString( + EDataType eDataType, String initialValue) { + ParameterEffectKind result = ParameterEffectKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertParameterEffectKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ConnectorKind createConnectorKindFromString(EDataType eDataType, + String initialValue) { + ConnectorKind result = ConnectorKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertConnectorKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public MessageKind createMessageKindFromString(EDataType eDataType, + String initialValue) { + MessageKind result = MessageKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertMessageKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public MessageSort createMessageSortFromString(EDataType eDataType, + String initialValue) { + MessageSort result = MessageSort.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertMessageSortToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ObjectNodeOrderingKind createObjectNodeOrderingKindFromString( + EDataType eDataType, String initialValue) { + ObjectNodeOrderingKind result = ObjectNodeOrderingKind + .get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertObjectNodeOrderingKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public InteractionOperatorKind createInteractionOperatorKindFromString( + EDataType eDataType, String initialValue) { + InteractionOperatorKind result = InteractionOperatorKind + .get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertInteractionOperatorKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ExpansionKind createExpansionKindFromString(EDataType eDataType, + String initialValue) { + ExpansionKind result = ExpansionKind.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return result; + } + + /** + * + * + * @generated + */ + public String convertExpansionKindToString(EDataType eDataType, + Object instanceValue) { + return instanceValue == null + ? null + : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public UMLPackage getUMLPackage() { + return (UMLPackage) getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + public static UMLPackage getPackage() { + return UMLPackage.eINSTANCE; + } + +} //UMLFactoryImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java new file mode 100644 index 00000000..515cbb0e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java @@ -0,0 +1,10618 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLPackageImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.io.IOException; + +import java.net.URL; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EValidator; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.eclipse.emf.ecore.resource.Resource; + +import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl; + +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class UMLPackageImpl + extends EPackageImpl + implements UMLPackage { + + /** + * + * + * @generated + */ + protected String packageFilename = "uml.ecore"; //$NON-NLS-1$ + + /** + * + * + * @generated + */ + private EClass commentEClass = null; + + /** + * + * + * @generated + */ + private EClass elementEClass = null; + + /** + * + * + * @generated + */ + private EClass directedRelationshipEClass = null; + + /** + * + * + * @generated + */ + private EClass relationshipEClass = null; + + /** + * + * + * @generated + */ + private EClass literalSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass valueSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass typedElementEClass = null; + + /** + * + * + * @generated + */ + private EClass namedElementEClass = null; + + /** + * + * + * @generated + */ + private EClass dependencyEClass = null; + + /** + * + * + * @generated + */ + private EClass packageableElementEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterableElementEClass = null; + + /** + * + * + * @generated + */ + private EClass templateParameterEClass = null; + + /** + * + * + * @generated + */ + private EClass templateSignatureEClass = null; + + /** + * + * + * @generated + */ + private EClass templateableElementEClass = null; + + /** + * + * + * @generated + */ + private EClass templateBindingEClass = null; + + /** + * + * + * @generated + */ + private EClass templateParameterSubstitutionEClass = null; + + /** + * + * + * @generated + */ + private EClass namespaceEClass = null; + + /** + * + * + * @generated + */ + private EClass elementImportEClass = null; + + /** + * + * + * @generated + */ + private EClass packageImportEClass = null; + + /** + * + * + * @generated + */ + private EClass packageEClass = null; + + /** + * + * + * @generated + */ + private EClass packageMergeEClass = null; + + /** + * + * + * @generated + */ + private EClass typeEClass = null; + + /** + * + * + * @generated + */ + private EClass profileApplicationEClass = null; + + /** + * + * + * @generated + */ + private EClass profileEClass = null; + + /** + * + * + * @generated + */ + private EClass stereotypeEClass = null; + + /** + * + * + * @generated + */ + private EClass classEClass = null; + + /** + * + * + * @generated + */ + private EClass behavioredClassifierEClass = null; + + /** + * + * + * @generated + */ + private EClass classifierEClass = null; + + /** + * + * + * @generated + */ + private EClass redefinableElementEClass = null; + + /** + * + * + * @generated + */ + private EClass generalizationEClass = null; + + /** + * + * + * @generated + */ + private EClass generalizationSetEClass = null; + + /** + * + * + * @generated + */ + private EClass featureEClass = null; + + /** + * + * + * @generated + */ + private EClass useCaseEClass = null; + + /** + * + * + * @generated + */ + private EClass includeEClass = null; + + /** + * + * + * @generated + */ + private EClass extendEClass = null; + + /** + * + * + * @generated + */ + private EClass constraintEClass = null; + + /** + * + * + * @generated + */ + private EClass extensionPointEClass = null; + + /** + * + * + * @generated + */ + private EClass substitutionEClass = null; + + /** + * + * + * @generated + */ + private EClass realizationEClass = null; + + /** + * + * + * @generated + */ + private EClass abstractionEClass = null; + + /** + * + * + * @generated + */ + private EClass opaqueExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterEClass = null; + + /** + * + * + * @generated + */ + private EClass multiplicityElementEClass = null; + + /** + * + * + * @generated + */ + private EClass connectableElementEClass = null; + + /** + * + * + * @generated + */ + private EClass connectorEndEClass = null; + + /** + * + * + * @generated + */ + private EClass propertyEClass = null; + + /** + * + * + * @generated + */ + private EClass deploymentTargetEClass = null; + + /** + * + * + * @generated + */ + private EClass deploymentEClass = null; + + /** + * + * + * @generated + */ + private EClass deployedArtifactEClass = null; + + /** + * + * + * @generated + */ + private EClass deploymentSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass artifactEClass = null; + + /** + * + * + * @generated + */ + private EClass manifestationEClass = null; + + /** + * + * + * @generated + */ + private EClass operationEClass = null; + + /** + * + * + * @generated + */ + private EClass behavioralFeatureEClass = null; + + /** + * + * + * @generated + */ + private EClass behaviorEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterSetEClass = null; + + /** + * + * + * @generated + */ + private EClass dataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass interfaceEClass = null; + + /** + * + * + * @generated + */ + private EClass receptionEClass = null; + + /** + * + * + * @generated + */ + private EClass signalEClass = null; + + /** + * + * + * @generated + */ + private EClass protocolStateMachineEClass = null; + + /** + * + * + * @generated + */ + private EClass stateMachineEClass = null; + + /** + * + * + * @generated + */ + private EClass regionEClass = null; + + /** + * + * + * @generated + */ + private EClass vertexEClass = null; + + /** + * + * + * @generated + */ + private EClass transitionEClass = null; + + /** + * + * + * @generated + */ + private EClass triggerEClass = null; + + /** + * + * + * @generated + */ + private EClass eventEClass = null; + + /** + * + * + * @generated + */ + private EClass portEClass = null; + + /** + * + * + * @generated + */ + private EClass stateEClass = null; + + /** + * + * + * @generated + */ + private EClass connectionPointReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass pseudostateEClass = null; + + /** + * + * + * @generated + */ + private EClass protocolConformanceEClass = null; + + /** + * + * + * @generated + */ + private EClass operationTemplateParameterEClass = null; + + /** + * + * + * @generated + */ + private EClass structuralFeatureEClass = null; + + /** + * + * + * @generated + */ + private EClass associationEClass = null; + + /** + * + * + * @generated + */ + private EClass connectableElementTemplateParameterEClass = null; + + /** + * + * + * @generated + */ + private EClass collaborationUseEClass = null; + + /** + * + * + * @generated + */ + private EClass collaborationEClass = null; + + /** + * + * + * @generated + */ + private EClass structuredClassifierEClass = null; + + /** + * + * + * @generated + */ + private EClass connectorEClass = null; + + /** + * + * + * @generated + */ + private EClass redefinableTemplateSignatureEClass = null; + + /** + * + * + * @generated + */ + private EClass classifierTemplateParameterEClass = null; + + /** + * + * + * @generated + */ + private EClass interfaceRealizationEClass = null; + + /** + * + * + * @generated + */ + private EClass encapsulatedClassifierEClass = null; + + /** + * + * + * @generated + */ + private EClass extensionEClass = null; + + /** + * + * + * @generated + */ + private EClass extensionEndEClass = null; + + /** + * + * + * @generated + */ + private EClass imageEClass = null; + + /** + * + * + * @generated + */ + private EClass stringExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass expressionEClass = null; + + /** + * + * + * @generated + */ + private EClass literalIntegerEClass = null; + + /** + * + * + * @generated + */ + private EClass literalStringEClass = null; + + /** + * + * + * @generated + */ + private EClass literalBooleanEClass = null; + + /** + * + * + * @generated + */ + private EClass literalNullEClass = null; + + /** + * + * + * @generated + */ + private EClass slotEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass enumerationEClass = null; + + /** + * + * + * @generated + */ + private EClass enumerationLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass primitiveTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass instanceValueEClass = null; + + /** + * + * + * @generated + */ + private EClass literalUnlimitedNaturalEClass = null; + + /** + * + * + * @generated + */ + private EClass opaqueBehaviorEClass = null; + + /** + * + * + * @generated + */ + private EClass functionBehaviorEClass = null; + + /** + * + * + * @generated + */ + private EClass actorEClass = null; + + /** + * + * + * @generated + */ + private EClass usageEClass = null; + + /** + * + * + * @generated + */ + private EClass messageEClass = null; + + /** + * + * + * @generated + */ + private EClass messageEndEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionFragmentEClass = null; + + /** + * + * + * @generated + */ + private EClass lifelineEClass = null; + + /** + * + * + * @generated + */ + private EClass partDecompositionEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionUseEClass = null; + + /** + * + * + * @generated + */ + private EClass gateEClass = null; + + /** + * + * + * @generated + */ + private EClass actionEClass = null; + + /** + * + * + * @generated + */ + private EClass executableNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass activityNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass activityEdgeEClass = null; + + /** + * + * + * @generated + */ + private EClass activityEClass = null; + + /** + * + * + * @generated + */ + private EClass activityPartitionEClass = null; + + /** + * + * + * @generated + */ + private EClass activityGroupEClass = null; + + /** + * + * + * @generated + */ + private EClass structuredActivityNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass variableEClass = null; + + /** + * + * + * @generated + */ + private EClass interruptibleActivityRegionEClass = null; + + /** + * + * + * @generated + */ + private EClass exceptionHandlerEClass = null; + + /** + * + * + * @generated + */ + private EClass objectNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass outputPinEClass = null; + + /** + * + * + * @generated + */ + private EClass pinEClass = null; + + /** + * + * + * @generated + */ + private EClass inputPinEClass = null; + + /** + * + * + * @generated + */ + private EClass generalOrderingEClass = null; + + /** + * + * + * @generated + */ + private EClass occurrenceSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionOperandEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionConstraintEClass = null; + + /** + * + * + * @generated + */ + private EClass executionSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass executionOccurrenceSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass executionEventEClass = null; + + /** + * + * + * @generated + */ + private EClass stateInvariantEClass = null; + + /** + * + * + * @generated + */ + private EClass actionExecutionSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass behaviorExecutionSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass creationEventEClass = null; + + /** + * + * + * @generated + */ + private EClass destructionEventEClass = null; + + /** + * + * + * @generated + */ + private EClass sendOperationEventEClass = null; + + /** + * + * + * @generated + */ + private EClass messageEventEClass = null; + + /** + * + * + * @generated + */ + private EClass sendSignalEventEClass = null; + + /** + * + * + * @generated + */ + private EClass messageOccurrenceSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass combinedFragmentEClass = null; + + /** + * + * + * @generated + */ + private EClass continuationEClass = null; + + /** + * + * + * @generated + */ + private EClass considerIgnoreFragmentEClass = null; + + /** + * + * + * @generated + */ + private EClass callEventEClass = null; + + /** + * + * + * @generated + */ + private EClass changeEventEClass = null; + + /** + * + * + * @generated + */ + private EClass signalEventEClass = null; + + /** + * + * + * @generated + */ + private EClass anyReceiveEventEClass = null; + + /** + * + * + * @generated + */ + private EClass createObjectActionEClass = null; + + /** + * + * + * @generated + */ + private EClass destroyObjectActionEClass = null; + + /** + * + * + * @generated + */ + private EClass testIdentityActionEClass = null; + + /** + * + * + * @generated + */ + private EClass readSelfActionEClass = null; + + /** + * + * + * @generated + */ + private EClass structuralFeatureActionEClass = null; + + /** + * + * + * @generated + */ + private EClass readStructuralFeatureActionEClass = null; + + /** + * + * + * @generated + */ + private EClass writeStructuralFeatureActionEClass = null; + + /** + * + * + * @generated + */ + private EClass clearStructuralFeatureActionEClass = null; + + /** + * + * + * @generated + */ + private EClass removeStructuralFeatureValueActionEClass = null; + + /** + * + * + * @generated + */ + private EClass addStructuralFeatureValueActionEClass = null; + + /** + * + * + * @generated + */ + private EClass linkActionEClass = null; + + /** + * + * + * @generated + */ + private EClass linkEndDataEClass = null; + + /** + * + * + * @generated + */ + private EClass qualifierValueEClass = null; + + /** + * + * + * @generated + */ + private EClass readLinkActionEClass = null; + + /** + * + * + * @generated + */ + private EClass linkEndCreationDataEClass = null; + + /** + * + * + * @generated + */ + private EClass createLinkActionEClass = null; + + /** + * + * + * @generated + */ + private EClass writeLinkActionEClass = null; + + /** + * + * + * @generated + */ + private EClass destroyLinkActionEClass = null; + + /** + * + * + * @generated + */ + private EClass linkEndDestructionDataEClass = null; + + /** + * + * + * @generated + */ + private EClass clearAssociationActionEClass = null; + + /** + * + * + * @generated + */ + private EClass broadcastSignalActionEClass = null; + + /** + * + * + * @generated + */ + private EClass invocationActionEClass = null; + + /** + * + * + * @generated + */ + private EClass sendObjectActionEClass = null; + + /** + * + * + * @generated + */ + private EClass valueSpecificationActionEClass = null; + + /** + * + * + * @generated + */ + private EClass timeExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass durationEClass = null; + + /** + * + * + * @generated + */ + private EClass timeObservationActionEClass = null; + + /** + * + * + * @generated + */ + private EClass valuePinEClass = null; + + /** + * + * + * @generated + */ + private EClass durationIntervalEClass = null; + + /** + * + * + * @generated + */ + private EClass intervalEClass = null; + + /** + * + * + * @generated + */ + private EClass timeConstraintEClass = null; + + /** + * + * + * @generated + */ + private EClass intervalConstraintEClass = null; + + /** + * + * + * @generated + */ + private EClass timeIntervalEClass = null; + + /** + * + * + * @generated + */ + private EClass durationObservationActionEClass = null; + + /** + * + * + * @generated + */ + private EClass durationConstraintEClass = null; + + /** + * + * + * @generated + */ + private EClass opaqueActionEClass = null; + + /** + * + * + * @generated + */ + private EClass callActionEClass = null; + + /** + * + * + * @generated + */ + private EClass sendSignalActionEClass = null; + + /** + * + * + * @generated + */ + private EClass callOperationActionEClass = null; + + /** + * + * + * @generated + */ + private EClass callBehaviorActionEClass = null; + + /** + * + * + * @generated + */ + private EClass informationItemEClass = null; + + /** + * + * + * @generated + */ + private EClass informationFlowEClass = null; + + /** + * + * + * @generated + */ + private EClass modelEClass = null; + + /** + * + * + * @generated + */ + private EClass variableActionEClass = null; + + /** + * + * + * @generated + */ + private EClass readVariableActionEClass = null; + + /** + * + * + * @generated + */ + private EClass writeVariableActionEClass = null; + + /** + * + * + * @generated + */ + private EClass clearVariableActionEClass = null; + + /** + * + * + * @generated + */ + private EClass addVariableValueActionEClass = null; + + /** + * + * + * @generated + */ + private EClass removeVariableValueActionEClass = null; + + /** + * + * + * @generated + */ + private EClass raiseExceptionActionEClass = null; + + /** + * + * + * @generated + */ + private EClass actionInputPinEClass = null; + + /** + * + * + * @generated + */ + private EClass readExtentActionEClass = null; + + /** + * + * + * @generated + */ + private EClass reclassifyObjectActionEClass = null; + + /** + * + * + * @generated + */ + private EClass readIsClassifiedObjectActionEClass = null; + + /** + * + * + * @generated + */ + private EClass startClassifierBehaviorActionEClass = null; + + /** + * + * + * @generated + */ + private EClass readLinkObjectEndActionEClass = null; + + /** + * + * + * @generated + */ + private EClass readLinkObjectEndQualifierActionEClass = null; + + /** + * + * + * @generated + */ + private EClass createLinkObjectActionEClass = null; + + /** + * + * + * @generated + */ + private EClass acceptEventActionEClass = null; + + /** + * + * + * @generated + */ + private EClass acceptCallActionEClass = null; + + /** + * + * + * @generated + */ + private EClass replyActionEClass = null; + + /** + * + * + * @generated + */ + private EClass unmarshallActionEClass = null; + + /** + * + * + * @generated + */ + private EClass controlNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass controlFlowEClass = null; + + /** + * + * + * @generated + */ + private EClass initialNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass activityParameterNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass forkNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass flowFinalNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass finalNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass centralBufferNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass mergeNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass decisionNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass activityFinalNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass joinNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass dataStoreNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass objectFlowEClass = null; + + /** + * + * + * @generated + */ + private EClass sequenceNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass conditionalNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass clauseEClass = null; + + /** + * + * + * @generated + */ + private EClass loopNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass expansionNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass expansionRegionEClass = null; + + /** + * + * + * @generated + */ + private EClass componentRealizationEClass = null; + + /** + * + * + * @generated + */ + private EClass componentEClass = null; + + /** + * + * + * @generated + */ + private EClass nodeEClass = null; + + /** + * + * + * @generated + */ + private EClass deviceEClass = null; + + /** + * + * + * @generated + */ + private EClass executionEnvironmentEClass = null; + + /** + * + * + * @generated + */ + private EClass communicationPathEClass = null; + + /** + * + * + * @generated + */ + private EClass finalStateEClass = null; + + /** + * + * + * @generated + */ + private EClass timeEventEClass = null; + + /** + * + * + * @generated + */ + private EClass protocolTransitionEClass = null; + + /** + * + * + * @generated + */ + private EClass associationClassEClass = null; + + /** + * + * + * @generated + */ + private EEnum visibilityKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum callConcurrencyKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum transitionKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum pseudostateKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum aggregationKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum parameterDirectionKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum parameterEffectKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum connectorKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum messageKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum messageSortEEnum = null; + + /** + * + * + * @generated + */ + private EEnum objectNodeOrderingKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum interactionOperatorKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum expansionKindEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.uml2.uml.UMLPackage#eNS_URI + * @see #init() + * @generated + */ + private UMLPackageImpl() { + super(eNS_URI, UMLFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this + * model, and for any others upon which it depends. Simple + * dependencies are satisfied by calling this method on all + * dependent packages before doing anything else. This method drives + * initialization for interdependent packages directly, in parallel + * with this package, itself. + *

Of this package and its interdependencies, all packages which + * have not yet been registered by their URI values are first created + * and registered. The packages are then initialized in two steps: + * meta-model objects for all of the packages are created before any + * are initialized, since one package's meta-model objects may refer to + * those of another. + *

Invocation of this method will not affect any packages that have + * already been initialized. + * + * + * @see #eNS_URI + * @generated + */ + public static UMLPackage init() { + if (isInited) + return (UMLPackage) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI); + + // Obtain or create and register package + UMLPackageImpl theUMLPackage = (UMLPackageImpl) (EPackage.Registry.INSTANCE + .getEPackage(eNS_URI) instanceof UMLPackageImpl + ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) + : new UMLPackageImpl()); + + isInited = true; + + // Load packages + theUMLPackage.loadPackage(); + + // Fix loaded packages + theUMLPackage.fixPackageContents(); + + // Register package validator + EValidator.Registry.INSTANCE.put(theUMLPackage, + new EValidator.Descriptor() { + + public EValidator getEValidator() { + return UMLValidator.INSTANCE; + } + }); + + // Mark meta-data to indicate it can't be changed + theUMLPackage.freeze(); + + return theUMLPackage; + } + + /** + * + * + * @generated + */ + public EClass getComment() { + if (commentEClass == null) { + commentEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(0); + } + return commentEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getComment_Body() { + return (EAttribute) getComment().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComment_AnnotatedElement() { + return (EReference) getComment().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getElement() { + if (elementEClass == null) { + elementEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(1); + } + return elementEClass; + } + + /** + * + * + * @generated + */ + public EReference getElement_OwnedElement() { + return (EReference) getElement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getElement_Owner() { + return (EReference) getElement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getElement_OwnedComment() { + return (EReference) getElement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getDirectedRelationship() { + if (directedRelationshipEClass == null) { + directedRelationshipEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(2); + } + return directedRelationshipEClass; + } + + /** + * + * + * @generated + */ + public EReference getDirectedRelationship_Source() { + return (EReference) getDirectedRelationship().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getDirectedRelationship_Target() { + return (EReference) getDirectedRelationship().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getRelationship() { + if (relationshipEClass == null) { + relationshipEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(3); + } + return relationshipEClass; + } + + /** + * + * + * @generated + */ + public EReference getRelationship_RelatedElement() { + return (EReference) getRelationship().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLiteralSpecification() { + if (literalSpecificationEClass == null) { + literalSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(5); + } + return literalSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EClass getValueSpecification() { + if (valueSpecificationEClass == null) { + valueSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(6); + } + return valueSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EClass getTypedElement() { + if (typedElementEClass == null) { + typedElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(7); + } + return typedElementEClass; + } + + /** + * + * + * @generated + */ + public EReference getTypedElement_Type() { + return (EReference) getTypedElement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNamedElement() { + if (namedElementEClass == null) { + namedElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(8); + } + return namedElementEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNamedElement_Name() { + return (EAttribute) getNamedElement().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getNamedElement_Visibility() { + return (EAttribute) getNamedElement().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getNamedElement_QualifiedName() { + return (EAttribute) getNamedElement().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getNamedElement_ClientDependency() { + return (EReference) getNamedElement().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getNamedElement_Namespace() { + return (EReference) getNamedElement().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getNamedElement_NameExpression() { + return (EReference) getNamedElement().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getDependency() { + if (dependencyEClass == null) { + dependencyEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(9); + } + return dependencyEClass; + } + + /** + * + * + * @generated + */ + public EReference getDependency_Supplier() { + return (EReference) getDependency().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDependency_Client() { + return (EReference) getDependency().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getPackageableElement() { + if (packageableElementEClass == null) { + packageableElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(10); + } + return packageableElementEClass; + } + + /** + * + * + * @generated + */ + public EClass getParameterableElement() { + if (parameterableElementEClass == null) { + parameterableElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(11); + } + return parameterableElementEClass; + } + + /** + * + * + * @generated + */ + public EReference getParameterableElement_TemplateParameter() { + return (EReference) getParameterableElement().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getParameterableElement_OwningTemplateParameter() { + return (EReference) getParameterableElement().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getTemplateParameter() { + if (templateParameterEClass == null) { + templateParameterEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(12); + } + return templateParameterEClass; + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameter_Signature() { + return (EReference) getTemplateParameter().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameter_OwnedParameteredElement() { + return (EReference) getTemplateParameter().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameter_Default() { + return (EReference) getTemplateParameter().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameter_OwnedDefault() { + return (EReference) getTemplateParameter().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameter_ParameteredElement() { + return (EReference) getTemplateParameter().getEStructuralFeatures() + .get(4); + } + + /** + * + * + * @generated + */ + public EClass getTemplateSignature() { + if (templateSignatureEClass == null) { + templateSignatureEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(13); + } + return templateSignatureEClass; + } + + /** + * + * + * @generated + */ + public EReference getTemplateSignature_Parameter() { + return (EReference) getTemplateSignature().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getTemplateSignature_Template() { + return (EReference) getTemplateSignature().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getTemplateSignature_OwnedParameter() { + return (EReference) getTemplateSignature().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getTemplateableElement() { + if (templateableElementEClass == null) { + templateableElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(14); + } + return templateableElementEClass; + } + + /** + * + * + * @generated + */ + public EReference getTemplateableElement_TemplateBinding() { + return (EReference) getTemplateableElement().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getTemplateableElement_OwnedTemplateSignature() { + return (EReference) getTemplateableElement().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getTemplateBinding() { + if (templateBindingEClass == null) { + templateBindingEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(15); + } + return templateBindingEClass; + } + + /** + * + * + * @generated + */ + public EReference getTemplateBinding_Signature() { + return (EReference) getTemplateBinding().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getTemplateBinding_ParameterSubstitution() { + return (EReference) getTemplateBinding().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getTemplateBinding_BoundElement() { + return (EReference) getTemplateBinding().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getTemplateParameterSubstitution() { + if (templateParameterSubstitutionEClass == null) { + templateParameterSubstitutionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(16); + } + return templateParameterSubstitutionEClass; + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameterSubstitution_Formal() { + return (EReference) getTemplateParameterSubstitution() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameterSubstitution_Actual() { + return (EReference) getTemplateParameterSubstitution() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameterSubstitution_OwnedActual() { + return (EReference) getTemplateParameterSubstitution() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getTemplateParameterSubstitution_TemplateBinding() { + return (EReference) getTemplateParameterSubstitution() + .getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getNamespace() { + if (namespaceEClass == null) { + namespaceEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(17); + } + return namespaceEClass; + } + + /** + * + * + * @generated + */ + public EReference getNamespace_ElementImport() { + return (EReference) getNamespace().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getNamespace_PackageImport() { + return (EReference) getNamespace().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getNamespace_OwnedRule() { + return (EReference) getNamespace().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getNamespace_Member() { + return (EReference) getNamespace().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getNamespace_ImportedMember() { + return (EReference) getNamespace().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getNamespace_OwnedMember() { + return (EReference) getNamespace().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getElementImport() { + if (elementImportEClass == null) { + elementImportEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(18); + } + return elementImportEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getElementImport_Visibility() { + return (EAttribute) getElementImport().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getElementImport_Alias() { + return (EAttribute) getElementImport().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getElementImport_ImportedElement() { + return (EReference) getElementImport().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getElementImport_ImportingNamespace() { + return (EReference) getElementImport().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getPackageImport() { + if (packageImportEClass == null) { + packageImportEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(19); + } + return packageImportEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getPackageImport_Visibility() { + return (EAttribute) getPackageImport().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPackageImport_ImportedPackage() { + return (EReference) getPackageImport().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPackageImport_ImportingNamespace() { + return (EReference) getPackageImport().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getPackage() { + if (packageEClass == null) { + packageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(20); + } + return packageEClass; + } + + /** + * + * + * @generated + */ + public EReference getPackage_PackageMerge() { + return (EReference) getPackage().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPackage_PackagedElement() { + return (EReference) getPackage().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPackage_OwnedType() { + return (EReference) getPackage().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getPackage_NestedPackage() { + return (EReference) getPackage().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getPackage_NestingPackage() { + return (EReference) getPackage().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getPackage_AppliedProfile() { + return (EReference) getPackage().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getPackageMerge() { + if (packageMergeEClass == null) { + packageMergeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(21); + } + return packageMergeEClass; + } + + /** + * + * + * @generated + */ + public EReference getPackageMerge_MergedPackage() { + return (EReference) getPackageMerge().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPackageMerge_ReceivingPackage() { + return (EReference) getPackageMerge().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getType() { + if (typeEClass == null) { + typeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(22); + } + return typeEClass; + } + + /** + * + * + * @generated + */ + public EReference getType_Package() { + return (EReference) getType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getProfileApplication() { + if (profileApplicationEClass == null) { + profileApplicationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(23); + } + return profileApplicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getProfileApplication_ImportedProfile() { + return (EReference) getProfileApplication().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getProfileApplication_IsStrict() { + return (EAttribute) getProfileApplication().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getProfile() { + if (profileEClass == null) { + profileEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(24); + } + return profileEClass; + } + + /** + * + * + * @generated + */ + public EReference getProfile_OwnedStereotype() { + return (EReference) getProfile().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getProfile_MetaclassReference() { + return (EReference) getProfile().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getProfile_MetamodelReference() { + return (EReference) getProfile().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getStereotype() { + if (stereotypeEClass == null) { + stereotypeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(25); + } + return stereotypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getStereotype_Icon() { + return (EReference) getStereotype().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getClass_() { + if (classEClass == null) { + classEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(26); + } + return classEClass; + } + + /** + * + * + * @generated + */ + public EReference getClass_OwnedOperation() { + return (EReference) getClass_().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClass_NestedClassifier() { + return (EReference) getClass_().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getClass_SuperClass() { + return (EReference) getClass_().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getClass_IsActive() { + return (EAttribute) getClass_().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getClass_OwnedReception() { + return (EReference) getClass_().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getClass_Extension() { + return (EReference) getClass_().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getBehavioredClassifier() { + if (behavioredClassifierEClass == null) { + behavioredClassifierEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(27); + } + return behavioredClassifierEClass; + } + + /** + * + * + * @generated + */ + public EReference getBehavioredClassifier_OwnedBehavior() { + return (EReference) getBehavioredClassifier().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getBehavioredClassifier_ClassifierBehavior() { + return (EReference) getBehavioredClassifier().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getBehavioredClassifier_InterfaceRealization() { + return (EReference) getBehavioredClassifier().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getBehavioredClassifier_OwnedTrigger() { + return (EReference) getBehavioredClassifier().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EClass getClassifier() { + if (classifierEClass == null) { + classifierEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(28); + } + return classifierEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getClassifier_IsAbstract() { + return (EAttribute) getClassifier().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_Generalization() { + return (EReference) getClassifier().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_PowertypeExtent() { + return (EReference) getClassifier().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_Feature() { + return (EReference) getClassifier().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_InheritedMember() { + return (EReference) getClassifier().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_RedefinedClassifier() { + return (EReference) getClassifier().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_General() { + return (EReference) getClassifier().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_OwnedUseCase() { + return (EReference) getClassifier().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_UseCase() { + return (EReference) getClassifier().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_Substitution() { + return (EReference) getClassifier().getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_Attribute() { + return (EReference) getClassifier().getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_Representation() { + return (EReference) getClassifier().getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_CollaborationUse() { + return (EReference) getClassifier().getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + public EReference getClassifier_OwnedSignature() { + return (EReference) getClassifier().getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + public EClass getRedefinableElement() { + if (redefinableElementEClass == null) { + redefinableElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(29); + } + return redefinableElementEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getRedefinableElement_IsLeaf() { + return (EAttribute) getRedefinableElement().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getRedefinableElement_RedefinedElement() { + return (EReference) getRedefinableElement().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getRedefinableElement_RedefinitionContext() { + return (EReference) getRedefinableElement().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getGeneralization() { + if (generalizationEClass == null) { + generalizationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(30); + } + return generalizationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getGeneralization_IsSubstitutable() { + return (EAttribute) getGeneralization().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getGeneralization_General() { + return (EReference) getGeneralization().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getGeneralization_GeneralizationSet() { + return (EReference) getGeneralization().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getGeneralization_Specific() { + return (EReference) getGeneralization().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getGeneralizationSet() { + if (generalizationSetEClass == null) { + generalizationSetEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(31); + } + return generalizationSetEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getGeneralizationSet_IsCovering() { + return (EAttribute) getGeneralizationSet().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getGeneralizationSet_IsDisjoint() { + return (EAttribute) getGeneralizationSet().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getGeneralizationSet_Powertype() { + return (EReference) getGeneralizationSet().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getGeneralizationSet_Generalization() { + return (EReference) getGeneralizationSet().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EClass getFeature() { + if (featureEClass == null) { + featureEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(32); + } + return featureEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getFeature_IsStatic() { + return (EAttribute) getFeature().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getFeature_FeaturingClassifier() { + return (EReference) getFeature().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getUseCase() { + if (useCaseEClass == null) { + useCaseEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(33); + } + return useCaseEClass; + } + + /** + * + * + * @generated + */ + public EReference getUseCase_Include() { + return (EReference) getUseCase().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getUseCase_Extend() { + return (EReference) getUseCase().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getUseCase_ExtensionPoint() { + return (EReference) getUseCase().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getUseCase_Subject() { + return (EReference) getUseCase().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getInclude() { + if (includeEClass == null) { + includeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(34); + } + return includeEClass; + } + + /** + * + * + * @generated + */ + public EReference getInclude_Addition() { + return (EReference) getInclude().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInclude_IncludingCase() { + return (EReference) getInclude().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExtend() { + if (extendEClass == null) { + extendEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(35); + } + return extendEClass; + } + + /** + * + * + * @generated + */ + public EReference getExtend_ExtendedCase() { + return (EReference) getExtend().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExtend_Condition() { + return (EReference) getExtend().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getExtend_ExtensionLocation() { + return (EReference) getExtend().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getExtend_Extension() { + return (EReference) getExtend().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getConstraint() { + if (constraintEClass == null) { + constraintEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(36); + } + return constraintEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstraint_ConstrainedElement() { + return (EReference) getConstraint().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConstraint_Specification() { + return (EReference) getConstraint().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getConstraint_Context() { + return (EReference) getConstraint().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getExtensionPoint() { + if (extensionPointEClass == null) { + extensionPointEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(37); + } + return extensionPointEClass; + } + + /** + * + * + * @generated + */ + public EReference getExtensionPoint_UseCase() { + return (EReference) getExtensionPoint().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getSubstitution() { + if (substitutionEClass == null) { + substitutionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(38); + } + return substitutionEClass; + } + + /** + * + * + * @generated + */ + public EReference getSubstitution_Contract() { + return (EReference) getSubstitution().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSubstitution_SubstitutingClassifier() { + return (EReference) getSubstitution().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRealization() { + if (realizationEClass == null) { + realizationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(39); + } + return realizationEClass; + } + + /** + * + * + * @generated + */ + public EClass getAbstraction() { + if (abstractionEClass == null) { + abstractionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(40); + } + return abstractionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAbstraction_Mapping() { + return (EReference) getAbstraction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getOpaqueExpression() { + if (opaqueExpressionEClass == null) { + opaqueExpressionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(41); + } + return opaqueExpressionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getOpaqueExpression_Body() { + return (EAttribute) getOpaqueExpression().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EAttribute getOpaqueExpression_Language() { + return (EAttribute) getOpaqueExpression().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EReference getOpaqueExpression_Result() { + return (EReference) getOpaqueExpression().getEStructuralFeatures().get( + 2); + } + + /** + * + * + * @generated + */ + public EReference getOpaqueExpression_Behavior() { + return (EReference) getOpaqueExpression().getEStructuralFeatures().get( + 3); + } + + /** + * + * + * @generated + */ + public EClass getParameter() { + if (parameterEClass == null) { + parameterEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(42); + } + return parameterEClass; + } + + /** + * + * + * @generated + */ + public EReference getParameter_ParameterSet() { + return (EReference) getParameter().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getParameter_Operation() { + return (EReference) getParameter().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getParameter_Direction() { + return (EAttribute) getParameter().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getParameter_Default() { + return (EAttribute) getParameter().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getParameter_DefaultValue() { + return (EReference) getParameter().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EAttribute getParameter_IsException() { + return (EAttribute) getParameter().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EAttribute getParameter_IsStream() { + return (EAttribute) getParameter().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EAttribute getParameter_Effect() { + return (EAttribute) getParameter().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EClass getMultiplicityElement() { + if (multiplicityElementEClass == null) { + multiplicityElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(43); + } + return multiplicityElementEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getMultiplicityElement_IsOrdered() { + return (EAttribute) getMultiplicityElement().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getMultiplicityElement_IsUnique() { + return (EAttribute) getMultiplicityElement().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getMultiplicityElement_Upper() { + return (EAttribute) getMultiplicityElement().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getMultiplicityElement_Lower() { + return (EAttribute) getMultiplicityElement().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EReference getMultiplicityElement_UpperValue() { + return (EReference) getMultiplicityElement().getEStructuralFeatures() + .get(4); + } + + /** + * + * + * @generated + */ + public EReference getMultiplicityElement_LowerValue() { + return (EReference) getMultiplicityElement().getEStructuralFeatures() + .get(5); + } + + /** + * + * + * @generated + */ + public EClass getConnectableElement() { + if (connectableElementEClass == null) { + connectableElementEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(44); + } + return connectableElementEClass; + } + + /** + * + * + * @generated + */ + public EReference getConnectableElement_End() { + return (EReference) getConnectableElement().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getConnectorEnd() { + if (connectorEndEClass == null) { + connectorEndEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(45); + } + return connectorEndEClass; + } + + /** + * + * + * @generated + */ + public EReference getConnectorEnd_DefiningEnd() { + return (EReference) getConnectorEnd().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConnectorEnd_PartWithPort() { + return (EReference) getConnectorEnd().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getConnectorEnd_Role() { + return (EReference) getConnectorEnd().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getProperty() { + if (propertyEClass == null) { + propertyEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(46); + } + return propertyEClass; + } + + /** + * + * + * @generated + */ + public EReference getProperty_Datatype() { + return (EReference) getProperty().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getProperty_IsDerived() { + return (EAttribute) getProperty().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getProperty_IsDerivedUnion() { + return (EAttribute) getProperty().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getProperty_Default() { + return (EAttribute) getProperty().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EAttribute getProperty_Aggregation() { + return (EAttribute) getProperty().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EAttribute getProperty_IsComposite() { + return (EAttribute) getProperty().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getProperty_Class_() { + return (EReference) getProperty().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getProperty_RedefinedProperty() { + return (EReference) getProperty().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getProperty_OwningAssociation() { + return (EReference) getProperty().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EReference getProperty_Association() { + return (EReference) getProperty().getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + public EReference getProperty_DefaultValue() { + return (EReference) getProperty().getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + public EReference getProperty_Opposite() { + return (EReference) getProperty().getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + public EReference getProperty_SubsettedProperty() { + return (EReference) getProperty().getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + public EReference getProperty_Qualifier() { + return (EReference) getProperty().getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + public EReference getProperty_AssociationEnd() { + return (EReference) getProperty().getEStructuralFeatures().get(14); + } + + /** + * + * + * @generated + */ + public EClass getDeploymentTarget() { + if (deploymentTargetEClass == null) { + deploymentTargetEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(47); + } + return deploymentTargetEClass; + } + + /** + * + * + * @generated + */ + public EReference getDeploymentTarget_Deployment() { + return (EReference) getDeploymentTarget().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getDeploymentTarget_DeployedElement() { + return (EReference) getDeploymentTarget().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getDeployment() { + if (deploymentEClass == null) { + deploymentEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(48); + } + return deploymentEClass; + } + + /** + * + * + * @generated + */ + public EReference getDeployment_DeployedArtifact() { + return (EReference) getDeployment().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDeployment_Configuration() { + return (EReference) getDeployment().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getDeployment_Location() { + return (EReference) getDeployment().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getDeployedArtifact() { + if (deployedArtifactEClass == null) { + deployedArtifactEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(49); + } + return deployedArtifactEClass; + } + + /** + * + * + * @generated + */ + public EClass getDeploymentSpecification() { + if (deploymentSpecificationEClass == null) { + deploymentSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(50); + } + return deploymentSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getDeploymentSpecification_DeploymentLocation() { + return (EAttribute) getDeploymentSpecification() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getDeploymentSpecification_ExecutionLocation() { + return (EAttribute) getDeploymentSpecification() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getDeploymentSpecification_Deployment() { + return (EReference) getDeploymentSpecification() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getArtifact() { + if (artifactEClass == null) { + artifactEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(51); + } + return artifactEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getArtifact_FileName() { + return (EAttribute) getArtifact().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getArtifact_NestedArtifact() { + return (EReference) getArtifact().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getArtifact_Manifestation() { + return (EReference) getArtifact().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getArtifact_OwnedOperation() { + return (EReference) getArtifact().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getArtifact_OwnedAttribute() { + return (EReference) getArtifact().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getManifestation() { + if (manifestationEClass == null) { + manifestationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(52); + } + return manifestationEClass; + } + + /** + * + * + * @generated + */ + public EReference getManifestation_UtilizedElement() { + return (EReference) getManifestation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getOperation() { + if (operationEClass == null) { + operationEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(53); + } + return operationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getOperation_IsQuery() { + return (EAttribute) getOperation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getOperation_IsOrdered() { + return (EAttribute) getOperation().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getOperation_IsUnique() { + return (EAttribute) getOperation().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getOperation_Lower() { + return (EAttribute) getOperation().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EAttribute getOperation_Upper() { + return (EAttribute) getOperation().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getOperation_Class_() { + return (EReference) getOperation().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getOperation_Precondition() { + return (EReference) getOperation().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getOperation_Postcondition() { + return (EReference) getOperation().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getOperation_RedefinedOperation() { + return (EReference) getOperation().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EReference getOperation_Datatype() { + return (EReference) getOperation().getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + public EReference getOperation_BodyCondition() { + return (EReference) getOperation().getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + public EReference getOperation_Type() { + return (EReference) getOperation().getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + public EReference getOperation_Interface() { + return (EReference) getOperation().getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + public EClass getBehavioralFeature() { + if (behavioralFeatureEClass == null) { + behavioralFeatureEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(54); + } + return behavioralFeatureEClass; + } + + /** + * + * + * @generated + */ + public EReference getBehavioralFeature_OwnedParameter() { + return (EReference) getBehavioralFeature().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getBehavioralFeature_IsAbstract() { + return (EAttribute) getBehavioralFeature().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getBehavioralFeature_Method() { + return (EReference) getBehavioralFeature().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getBehavioralFeature_Concurrency() { + return (EAttribute) getBehavioralFeature().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EReference getBehavioralFeature_RaisedException() { + return (EReference) getBehavioralFeature().getEStructuralFeatures() + .get(4); + } + + /** + * + * + * @generated + */ + public EReference getBehavioralFeature_OwnedParameterSet() { + return (EReference) getBehavioralFeature().getEStructuralFeatures() + .get(5); + } + + /** + * + * + * @generated + */ + public EClass getBehavior() { + if (behaviorEClass == null) { + behaviorEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(55); + } + return behaviorEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getBehavior_IsReentrant() { + return (EAttribute) getBehavior().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getBehavior_RedefinedBehavior() { + return (EReference) getBehavior().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getBehavior_OwnedParameter() { + return (EReference) getBehavior().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getBehavior_Context() { + return (EReference) getBehavior().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getBehavior_OwnedParameterSet() { + return (EReference) getBehavior().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getBehavior_Specification() { + return (EReference) getBehavior().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getParameterSet() { + if (parameterSetEClass == null) { + parameterSetEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(56); + } + return parameterSetEClass; + } + + /** + * + * + * @generated + */ + public EReference getParameterSet_Parameter() { + return (EReference) getParameterSet().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getParameterSet_Condition() { + return (EReference) getParameterSet().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDataType() { + if (dataTypeEClass == null) { + dataTypeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(58); + } + return dataTypeEClass; + } + + /** + * + * + * @generated + */ + public EReference getDataType_OwnedAttribute() { + return (EReference) getDataType().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDataType_OwnedOperation() { + return (EReference) getDataType().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getInterface() { + if (interfaceEClass == null) { + interfaceEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(59); + } + return interfaceEClass; + } + + /** + * + * + * @generated + */ + public EReference getInterface_OwnedAttribute() { + return (EReference) getInterface().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInterface_NestedClassifier() { + return (EReference) getInterface().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getInterface_RedefinedInterface() { + return (EReference) getInterface().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getInterface_OwnedReception() { + return (EReference) getInterface().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getInterface_Protocol() { + return (EReference) getInterface().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getInterface_OwnedOperation() { + return (EReference) getInterface().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getReception() { + if (receptionEClass == null) { + receptionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(60); + } + return receptionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReception_Signal() { + return (EReference) getReception().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getSignal() { + if (signalEClass == null) { + signalEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(61); + } + return signalEClass; + } + + /** + * + * + * @generated + */ + public EReference getSignal_OwnedAttribute() { + return (EReference) getSignal().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getProtocolStateMachine() { + if (protocolStateMachineEClass == null) { + protocolStateMachineEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(62); + } + return protocolStateMachineEClass; + } + + /** + * + * + * @generated + */ + public EReference getProtocolStateMachine_Conformance() { + return (EReference) getProtocolStateMachine().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getStateMachine() { + if (stateMachineEClass == null) { + stateMachineEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(63); + } + return stateMachineEClass; + } + + /** + * + * + * @generated + */ + public EReference getStateMachine_Region() { + return (EReference) getStateMachine().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getStateMachine_ConnectionPoint() { + return (EReference) getStateMachine().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getStateMachine_ExtendedStateMachine() { + return (EReference) getStateMachine().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getRegion() { + if (regionEClass == null) { + regionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(64); + } + return regionEClass; + } + + /** + * + * + * @generated + */ + public EReference getRegion_Subvertex() { + return (EReference) getRegion().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRegion_Transition() { + return (EReference) getRegion().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getRegion_State() { + return (EReference) getRegion().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getRegion_ExtendedRegion() { + return (EReference) getRegion().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getRegion_StateMachine() { + return (EReference) getRegion().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getVertex() { + if (vertexEClass == null) { + vertexEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(65); + } + return vertexEClass; + } + + /** + * + * + * @generated + */ + public EReference getVertex_Outgoing() { + return (EReference) getVertex().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVertex_Incoming() { + return (EReference) getVertex().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getVertex_Container() { + return (EReference) getVertex().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getTransition() { + if (transitionEClass == null) { + transitionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(66); + } + return transitionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getTransition_Kind() { + return (EAttribute) getTransition().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Container() { + return (EReference) getTransition().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Target() { + return (EReference) getTransition().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getTransition_RedefinedTransition() { + return (EReference) getTransition().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Guard() { + return (EReference) getTransition().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Effect() { + return (EReference) getTransition().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Trigger() { + return (EReference) getTransition().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getTransition_Source() { + return (EReference) getTransition().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EClass getTrigger() { + if (triggerEClass == null) { + triggerEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(68); + } + return triggerEClass; + } + + /** + * + * + * @generated + */ + public EReference getTrigger_Event() { + return (EReference) getTrigger().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTrigger_Port() { + return (EReference) getTrigger().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getEvent() { + if (eventEClass == null) { + eventEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(69); + } + return eventEClass; + } + + /** + * + * + * @generated + */ + public EClass getPort() { + if (portEClass == null) { + portEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(70); + } + return portEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getPort_IsBehavior() { + return (EAttribute) getPort().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getPort_IsService() { + return (EAttribute) getPort().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPort_Required() { + return (EReference) getPort().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getPort_RedefinedPort() { + return (EReference) getPort().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getPort_Provided() { + return (EReference) getPort().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getPort_Protocol() { + return (EReference) getPort().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getState() { + if (stateEClass == null) { + stateEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(71); + } + return stateEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getState_IsComposite() { + return (EAttribute) getState().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getState_IsOrthogonal() { + return (EAttribute) getState().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getState_IsSimple() { + return (EAttribute) getState().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getState_IsSubmachineState() { + return (EAttribute) getState().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getState_Submachine() { + return (EReference) getState().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getState_Connection() { + return (EReference) getState().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getState_ConnectionPoint() { + return (EReference) getState().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getState_RedefinedState() { + return (EReference) getState().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getState_StateInvariant() { + return (EReference) getState().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EReference getState_Entry() { + return (EReference) getState().getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + public EReference getState_Exit() { + return (EReference) getState().getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + public EReference getState_DoActivity() { + return (EReference) getState().getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + public EReference getState_DeferrableTrigger() { + return (EReference) getState().getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + public EReference getState_Region() { + return (EReference) getState().getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + public EClass getConnectionPointReference() { + if (connectionPointReferenceEClass == null) { + connectionPointReferenceEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(72); + } + return connectionPointReferenceEClass; + } + + /** + * + * + * @generated + */ + public EReference getConnectionPointReference_Entry() { + return (EReference) getConnectionPointReference() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConnectionPointReference_Exit() { + return (EReference) getConnectionPointReference() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getConnectionPointReference_State() { + return (EReference) getConnectionPointReference() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getPseudostate() { + if (pseudostateEClass == null) { + pseudostateEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(73); + } + return pseudostateEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getPseudostate_Kind() { + return (EAttribute) getPseudostate().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPseudostate_StateMachine() { + return (EReference) getPseudostate().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPseudostate_State() { + return (EReference) getPseudostate().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getProtocolConformance() { + if (protocolConformanceEClass == null) { + protocolConformanceEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(75); + } + return protocolConformanceEClass; + } + + /** + * + * + * @generated + */ + public EReference getProtocolConformance_GeneralMachine() { + return (EReference) getProtocolConformance().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getProtocolConformance_SpecificMachine() { + return (EReference) getProtocolConformance().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getOperationTemplateParameter() { + if (operationTemplateParameterEClass == null) { + operationTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(76); + } + return operationTemplateParameterEClass; + } + + /** + * + * + * @generated + */ + public EClass getStructuralFeature() { + if (structuralFeatureEClass == null) { + structuralFeatureEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(77); + } + return structuralFeatureEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getStructuralFeature_IsReadOnly() { + return (EAttribute) getStructuralFeature().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getAssociation() { + if (associationEClass == null) { + associationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(79); + } + return associationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getAssociation_IsDerived() { + return (EAttribute) getAssociation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAssociation_EndType() { + return (EReference) getAssociation().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getAssociation_MemberEnd() { + return (EReference) getAssociation().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getAssociation_NavigableOwnedEnd() { + return (EReference) getAssociation().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getAssociation_OwnedEnd() { + return (EReference) getAssociation().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getConnectableElementTemplateParameter() { + if (connectableElementTemplateParameterEClass == null) { + connectableElementTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(80); + } + return connectableElementTemplateParameterEClass; + } + + /** + * + * + * @generated + */ + public EClass getCollaborationUse() { + if (collaborationUseEClass == null) { + collaborationUseEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(83); + } + return collaborationUseEClass; + } + + /** + * + * + * @generated + */ + public EReference getCollaborationUse_Type() { + return (EReference) getCollaborationUse().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getCollaborationUse_RoleBinding() { + return (EReference) getCollaborationUse().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getCollaboration() { + if (collaborationEClass == null) { + collaborationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(84); + } + return collaborationEClass; + } + + /** + * + * + * @generated + */ + public EReference getCollaboration_CollaborationRole() { + return (EReference) getCollaboration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStructuredClassifier() { + if (structuredClassifierEClass == null) { + structuredClassifierEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(85); + } + return structuredClassifierEClass; + } + + /** + * + * + * @generated + */ + public EReference getStructuredClassifier_OwnedAttribute() { + return (EReference) getStructuredClassifier().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getStructuredClassifier_Part() { + return (EReference) getStructuredClassifier().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getStructuredClassifier_Role() { + return (EReference) getStructuredClassifier().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getStructuredClassifier_OwnedConnector() { + return (EReference) getStructuredClassifier().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EClass getConnector() { + if (connectorEClass == null) { + connectorEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(86); + } + return connectorEClass; + } + + /** + * + * + * @generated + */ + public EReference getConnector_Type() { + return (EReference) getConnector().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getConnector_RedefinedConnector() { + return (EReference) getConnector().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getConnector_End() { + return (EReference) getConnector().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getConnector_Kind() { + return (EAttribute) getConnector().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getConnector_Contract() { + return (EReference) getConnector().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getRedefinableTemplateSignature() { + if (redefinableTemplateSignatureEClass == null) { + redefinableTemplateSignatureEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(88); + } + return redefinableTemplateSignatureEClass; + } + + /** + * + * + * @generated + */ + public EReference getRedefinableTemplateSignature_ExtendedSignature() { + return (EReference) getRedefinableTemplateSignature() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRedefinableTemplateSignature_InheritedParameter() { + return (EReference) getRedefinableTemplateSignature() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getRedefinableTemplateSignature_Classifier() { + return (EReference) getRedefinableTemplateSignature() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getClassifierTemplateParameter() { + if (classifierTemplateParameterEClass == null) { + classifierTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(89); + } + return classifierTemplateParameterEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getClassifierTemplateParameter_AllowSubstitutable() { + return (EAttribute) getClassifierTemplateParameter() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClassifierTemplateParameter_DefaultClassifier() { + return (EReference) getClassifierTemplateParameter() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getClassifierTemplateParameter_ConstrainingClassifier() { + return (EReference) getClassifierTemplateParameter() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getInterfaceRealization() { + if (interfaceRealizationEClass == null) { + interfaceRealizationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(90); + } + return interfaceRealizationEClass; + } + + /** + * + * + * @generated + */ + public EReference getInterfaceRealization_Contract() { + return (EReference) getInterfaceRealization().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getInterfaceRealization_ImplementingClassifier() { + return (EReference) getInterfaceRealization().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getEncapsulatedClassifier() { + if (encapsulatedClassifierEClass == null) { + encapsulatedClassifierEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(91); + } + return encapsulatedClassifierEClass; + } + + /** + * + * + * @generated + */ + public EReference getEncapsulatedClassifier_OwnedPort() { + return (EReference) getEncapsulatedClassifier() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getExtension() { + if (extensionEClass == null) { + extensionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(92); + } + return extensionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getExtension_IsRequired() { + return (EAttribute) getExtension().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExtension_Metaclass() { + return (EReference) getExtension().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExtensionEnd() { + if (extensionEndEClass == null) { + extensionEndEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(93); + } + return extensionEndEClass; + } + + /** + * + * + * @generated + */ + public EClass getImage() { + if (imageEClass == null) { + imageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(94); + } + return imageEClass; + } + + /** + * + * + * @generated + */ + public EClass getStringExpression() { + if (stringExpressionEClass == null) { + stringExpressionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(95); + } + return stringExpressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getStringExpression_SubExpression() { + return (EReference) getStringExpression().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getStringExpression_OwningExpression() { + return (EReference) getStringExpression().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getExpression() { + if (expressionEClass == null) { + expressionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(96); + } + return expressionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getExpression_Symbol() { + return (EAttribute) getExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExpression_Operand() { + return (EReference) getExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLiteralInteger() { + if (literalIntegerEClass == null) { + literalIntegerEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(97); + } + return literalIntegerEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLiteralInteger_Value() { + return (EAttribute) getLiteralInteger().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLiteralString() { + if (literalStringEClass == null) { + literalStringEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(98); + } + return literalStringEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLiteralString_Value() { + return (EAttribute) getLiteralString().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLiteralBoolean() { + if (literalBooleanEClass == null) { + literalBooleanEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(99); + } + return literalBooleanEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLiteralBoolean_Value() { + return (EAttribute) getLiteralBoolean().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLiteralNull() { + if (literalNullEClass == null) { + literalNullEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(100); + } + return literalNullEClass; + } + + /** + * + * + * @generated + */ + public EClass getSlot() { + if (slotEClass == null) { + slotEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(101); + } + return slotEClass; + } + + /** + * + * + * @generated + */ + public EReference getSlot_OwningInstance() { + return (EReference) getSlot().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSlot_DefiningFeature() { + return (EReference) getSlot().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getSlot_Value() { + return (EReference) getSlot().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getInstanceSpecification() { + if (instanceSpecificationEClass == null) { + instanceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(102); + } + return instanceSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EReference getInstanceSpecification_Classifier() { + return (EReference) getInstanceSpecification().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getInstanceSpecification_Specification() { + return (EReference) getInstanceSpecification().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getInstanceSpecification_Slot() { + return (EReference) getInstanceSpecification().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getEnumeration() { + if (enumerationEClass == null) { + enumerationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(103); + } + return enumerationEClass; + } + + /** + * + * + * @generated + */ + public EReference getEnumeration_OwnedLiteral() { + return (EReference) getEnumeration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getEnumerationLiteral() { + if (enumerationLiteralEClass == null) { + enumerationLiteralEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(104); + } + return enumerationLiteralEClass; + } + + /** + * + * + * @generated + */ + public EReference getEnumerationLiteral_Enumeration() { + return (EReference) getEnumerationLiteral().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getPrimitiveType() { + if (primitiveTypeEClass == null) { + primitiveTypeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(105); + } + return primitiveTypeEClass; + } + + /** + * + * + * @generated + */ + public EClass getInstanceValue() { + if (instanceValueEClass == null) { + instanceValueEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(106); + } + return instanceValueEClass; + } + + /** + * + * + * @generated + */ + public EReference getInstanceValue_Instance() { + return (EReference) getInstanceValue().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLiteralUnlimitedNatural() { + if (literalUnlimitedNaturalEClass == null) { + literalUnlimitedNaturalEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(107); + } + return literalUnlimitedNaturalEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLiteralUnlimitedNatural_Value() { + return (EAttribute) getLiteralUnlimitedNatural() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getOpaqueBehavior() { + if (opaqueBehaviorEClass == null) { + opaqueBehaviorEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(108); + } + return opaqueBehaviorEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getOpaqueBehavior_Body() { + return (EAttribute) getOpaqueBehavior().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getOpaqueBehavior_Language() { + return (EAttribute) getOpaqueBehavior().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getFunctionBehavior() { + if (functionBehaviorEClass == null) { + functionBehaviorEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(109); + } + return functionBehaviorEClass; + } + + /** + * + * + * @generated + */ + public EClass getActor() { + if (actorEClass == null) { + actorEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(110); + } + return actorEClass; + } + + /** + * + * + * @generated + */ + public EClass getUsage() { + if (usageEClass == null) { + usageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(111); + } + return usageEClass; + } + + /** + * + * + * @generated + */ + public EClass getMessage() { + if (messageEClass == null) { + messageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(112); + } + return messageEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getMessage_MessageKind() { + return (EAttribute) getMessage().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getMessage_MessageSort() { + return (EAttribute) getMessage().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getMessage_ReceiveEvent() { + return (EReference) getMessage().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getMessage_SendEvent() { + return (EReference) getMessage().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getMessage_Connector() { + return (EReference) getMessage().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getMessage_Interaction() { + return (EReference) getMessage().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getMessage_Argument() { + return (EReference) getMessage().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getMessage_Signature() { + return (EReference) getMessage().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EClass getMessageEnd() { + if (messageEndEClass == null) { + messageEndEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(115); + } + return messageEndEClass; + } + + /** + * + * + * @generated + */ + public EReference getMessageEnd_Message() { + return (EReference) getMessageEnd().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getInteraction() { + if (interactionEClass == null) { + interactionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(116); + } + return interactionEClass; + } + + /** + * + * + * @generated + */ + public EReference getInteraction_Lifeline() { + return (EReference) getInteraction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInteraction_Fragment() { + return (EReference) getInteraction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getInteraction_Action() { + return (EReference) getInteraction().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getInteraction_FormalGate() { + return (EReference) getInteraction().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getInteraction_Message() { + return (EReference) getInteraction().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getInteractionFragment() { + if (interactionFragmentEClass == null) { + interactionFragmentEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(117); + } + return interactionFragmentEClass; + } + + /** + * + * + * @generated + */ + public EReference getInteractionFragment_Covered() { + return (EReference) getInteractionFragment().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getInteractionFragment_GeneralOrdering() { + return (EReference) getInteractionFragment().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getInteractionFragment_EnclosingInteraction() { + return (EReference) getInteractionFragment().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getInteractionFragment_EnclosingOperand() { + return (EReference) getInteractionFragment().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EClass getLifeline() { + if (lifelineEClass == null) { + lifelineEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(118); + } + return lifelineEClass; + } + + /** + * + * + * @generated + */ + public EReference getLifeline_Represents() { + return (EReference) getLifeline().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLifeline_Interaction() { + return (EReference) getLifeline().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLifeline_Selector() { + return (EReference) getLifeline().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getLifeline_DecomposedAs() { + return (EReference) getLifeline().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getLifeline_CoveredBy() { + return (EReference) getLifeline().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getPartDecomposition() { + if (partDecompositionEClass == null) { + partDecompositionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(119); + } + return partDecompositionEClass; + } + + /** + * + * + * @generated + */ + public EClass getInteractionUse() { + if (interactionUseEClass == null) { + interactionUseEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(120); + } + return interactionUseEClass; + } + + /** + * + * + * @generated + */ + public EReference getInteractionUse_RefersTo() { + return (EReference) getInteractionUse().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInteractionUse_ActualGate() { + return (EReference) getInteractionUse().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getInteractionUse_Argument() { + return (EReference) getInteractionUse().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getGate() { + if (gateEClass == null) { + gateEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(121); + } + return gateEClass; + } + + /** + * + * + * @generated + */ + public EClass getAction() { + if (actionEClass == null) { + actionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(122); + } + return actionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAction_Output() { + return (EReference) getAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAction_Input() { + return (EReference) getAction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getAction_Context() { + return (EReference) getAction().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getAction_LocalPrecondition() { + return (EReference) getAction().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getAction_LocalPostcondition() { + return (EReference) getAction().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getExecutableNode() { + if (executableNodeEClass == null) { + executableNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(123); + } + return executableNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getExecutableNode_Handler() { + return (EReference) getExecutableNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getActivityNode() { + if (activityNodeEClass == null) { + activityNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(124); + } + return activityNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_Outgoing() { + return (EReference) getActivityNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_InGroup() { + return (EReference) getActivityNode().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_InPartition() { + return (EReference) getActivityNode().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_InStructuredNode() { + return (EReference) getActivityNode().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_Activity() { + return (EReference) getActivityNode().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_Incoming() { + return (EReference) getActivityNode().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_InInterruptibleRegion() { + return (EReference) getActivityNode().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getActivityNode_RedefinedNode() { + return (EReference) getActivityNode().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EClass getActivityEdge() { + if (activityEdgeEClass == null) { + activityEdgeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(125); + } + return activityEdgeEClass; + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_Activity() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_InGroup() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_InPartition() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_InStructuredNode() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_Target() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_RedefinedEdge() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_Guard() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_Weight() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_Interrupts() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EReference getActivityEdge_Source() { + return (EReference) getActivityEdge().getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + public EClass getActivity() { + if (activityEClass == null) { + activityEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(126); + } + return activityEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getActivity_IsReadOnly() { + return (EAttribute) getActivity().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getActivity_Partition() { + return (EReference) getActivity().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getActivity_Group() { + return (EReference) getActivity().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getActivity_IsSingleExecution() { + return (EAttribute) getActivity().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getActivity_StructuredNode() { + return (EReference) getActivity().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getActivity_Variable() { + return (EReference) getActivity().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getActivity_Node() { + return (EReference) getActivity().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getActivity_Edge() { + return (EReference) getActivity().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EClass getActivityPartition() { + if (activityPartitionEClass == null) { + activityPartitionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(127); + } + return activityPartitionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getActivityPartition_IsDimension() { + return (EAttribute) getActivityPartition().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getActivityPartition_IsExternal() { + return (EAttribute) getActivityPartition().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getActivityPartition_Edge() { + return (EReference) getActivityPartition().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getActivityPartition_Node() { + return (EReference) getActivityPartition().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EReference getActivityPartition_Subpartition() { + return (EReference) getActivityPartition().getEStructuralFeatures() + .get(4); + } + + /** + * + * + * @generated + */ + public EReference getActivityPartition_SuperPartition() { + return (EReference) getActivityPartition().getEStructuralFeatures() + .get(5); + } + + /** + * + * + * @generated + */ + public EReference getActivityPartition_Represents() { + return (EReference) getActivityPartition().getEStructuralFeatures() + .get(6); + } + + /** + * + * + * @generated + */ + public EClass getActivityGroup() { + if (activityGroupEClass == null) { + activityGroupEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(128); + } + return activityGroupEClass; + } + + /** + * + * + * @generated + */ + public EReference getActivityGroup_Subgroup() { + return (EReference) getActivityGroup().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getActivityGroup_SuperGroup() { + return (EReference) getActivityGroup().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getActivityGroup_ContainedNode() { + return (EReference) getActivityGroup().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getActivityGroup_InActivity() { + return (EReference) getActivityGroup().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getActivityGroup_ContainedEdge() { + return (EReference) getActivityGroup().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getStructuredActivityNode() { + if (structuredActivityNodeEClass == null) { + structuredActivityNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(129); + } + return structuredActivityNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getStructuredActivityNode_Variable() { + return (EReference) getStructuredActivityNode() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getStructuredActivityNode_Node() { + return (EReference) getStructuredActivityNode() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getStructuredActivityNode_MustIsolate() { + return (EAttribute) getStructuredActivityNode() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getStructuredActivityNode_Edge() { + return (EReference) getStructuredActivityNode() + .getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getVariable() { + if (variableEClass == null) { + variableEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(130); + } + return variableEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariable_ActivityScope() { + return (EReference) getVariable().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVariable_Scope() { + return (EReference) getVariable().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getInterruptibleActivityRegion() { + if (interruptibleActivityRegionEClass == null) { + interruptibleActivityRegionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(131); + } + return interruptibleActivityRegionEClass; + } + + /** + * + * + * @generated + */ + public EReference getInterruptibleActivityRegion_Node() { + return (EReference) getInterruptibleActivityRegion() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInterruptibleActivityRegion_InterruptingEdge() { + return (EReference) getInterruptibleActivityRegion() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExceptionHandler() { + if (exceptionHandlerEClass == null) { + exceptionHandlerEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(132); + } + return exceptionHandlerEClass; + } + + /** + * + * + * @generated + */ + public EReference getExceptionHandler_HandlerBody() { + return (EReference) getExceptionHandler().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getExceptionHandler_ExceptionInput() { + return (EReference) getExceptionHandler().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EReference getExceptionHandler_ExceptionType() { + return (EReference) getExceptionHandler().getEStructuralFeatures().get( + 2); + } + + /** + * + * + * @generated + */ + public EReference getExceptionHandler_ProtectedNode() { + return (EReference) getExceptionHandler().getEStructuralFeatures().get( + 3); + } + + /** + * + * + * @generated + */ + public EClass getObjectNode() { + if (objectNodeEClass == null) { + objectNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(133); + } + return objectNodeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getObjectNode_Ordering() { + return (EAttribute) getObjectNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getObjectNode_IsControlType() { + return (EAttribute) getObjectNode().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getObjectNode_UpperBound() { + return (EReference) getObjectNode().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getObjectNode_InState() { + return (EReference) getObjectNode().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getObjectNode_Selection() { + return (EReference) getObjectNode().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getOutputPin() { + if (outputPinEClass == null) { + outputPinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(135); + } + return outputPinEClass; + } + + /** + * + * + * @generated + */ + public EClass getPin() { + if (pinEClass == null) { + pinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(136); + } + return pinEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getPin_IsControl() { + return (EAttribute) getPin().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getInputPin() { + if (inputPinEClass == null) { + inputPinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(137); + } + return inputPinEClass; + } + + /** + * + * + * @generated + */ + public EClass getGeneralOrdering() { + if (generalOrderingEClass == null) { + generalOrderingEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(138); + } + return generalOrderingEClass; + } + + /** + * + * + * @generated + */ + public EReference getGeneralOrdering_Before() { + return (EReference) getGeneralOrdering().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getGeneralOrdering_After() { + return (EReference) getGeneralOrdering().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getOccurrenceSpecification() { + if (occurrenceSpecificationEClass == null) { + occurrenceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(139); + } + return occurrenceSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EReference getOccurrenceSpecification_ToBefore() { + return (EReference) getOccurrenceSpecification() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getOccurrenceSpecification_Event() { + return (EReference) getOccurrenceSpecification() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getOccurrenceSpecification_ToAfter() { + return (EReference) getOccurrenceSpecification() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getInteractionOperand() { + if (interactionOperandEClass == null) { + interactionOperandEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(140); + } + return interactionOperandEClass; + } + + /** + * + * + * @generated + */ + public EReference getInteractionOperand_Guard() { + return (EReference) getInteractionOperand().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getInteractionOperand_Fragment() { + return (EReference) getInteractionOperand().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getInteractionConstraint() { + if (interactionConstraintEClass == null) { + interactionConstraintEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(141); + } + return interactionConstraintEClass; + } + + /** + * + * + * @generated + */ + public EReference getInteractionConstraint_Minint() { + return (EReference) getInteractionConstraint().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getInteractionConstraint_Maxint() { + return (EReference) getInteractionConstraint().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getExecutionSpecification() { + if (executionSpecificationEClass == null) { + executionSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(142); + } + return executionSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EReference getExecutionSpecification_Start() { + return (EReference) getExecutionSpecification() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExecutionSpecification_Finish() { + return (EReference) getExecutionSpecification() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExecutionOccurrenceSpecification() { + if (executionOccurrenceSpecificationEClass == null) { + executionOccurrenceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(143); + } + return executionOccurrenceSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EReference getExecutionOccurrenceSpecification_Execution() { + return (EReference) getExecutionOccurrenceSpecification() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getExecutionEvent() { + if (executionEventEClass == null) { + executionEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(144); + } + return executionEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getStateInvariant() { + if (stateInvariantEClass == null) { + stateInvariantEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(145); + } + return stateInvariantEClass; + } + + /** + * + * + * @generated + */ + public EReference getStateInvariant_Invariant() { + return (EReference) getStateInvariant().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getActionExecutionSpecification() { + if (actionExecutionSpecificationEClass == null) { + actionExecutionSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(146); + } + return actionExecutionSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EReference getActionExecutionSpecification_Action() { + return (EReference) getActionExecutionSpecification() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getBehaviorExecutionSpecification() { + if (behaviorExecutionSpecificationEClass == null) { + behaviorExecutionSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(147); + } + return behaviorExecutionSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EReference getBehaviorExecutionSpecification_Behavior() { + return (EReference) getBehaviorExecutionSpecification() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getCreationEvent() { + if (creationEventEClass == null) { + creationEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(148); + } + return creationEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getDestructionEvent() { + if (destructionEventEClass == null) { + destructionEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(149); + } + return destructionEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getSendOperationEvent() { + if (sendOperationEventEClass == null) { + sendOperationEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(150); + } + return sendOperationEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getSendOperationEvent_Operation() { + return (EReference) getSendOperationEvent().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getMessageEvent() { + if (messageEventEClass == null) { + messageEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(151); + } + return messageEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getSendSignalEvent() { + if (sendSignalEventEClass == null) { + sendSignalEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(152); + } + return sendSignalEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getSendSignalEvent_Signal() { + return (EReference) getSendSignalEvent().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getMessageOccurrenceSpecification() { + if (messageOccurrenceSpecificationEClass == null) { + messageOccurrenceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(153); + } + return messageOccurrenceSpecificationEClass; + } + + /** + * + * + * @generated + */ + public EClass getCombinedFragment() { + if (combinedFragmentEClass == null) { + combinedFragmentEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(155); + } + return combinedFragmentEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getCombinedFragment_InteractionOperator() { + return (EAttribute) getCombinedFragment().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getCombinedFragment_Operand() { + return (EReference) getCombinedFragment().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EReference getCombinedFragment_CfragmentGate() { + return (EReference) getCombinedFragment().getEStructuralFeatures().get( + 2); + } + + /** + * + * + * @generated + */ + public EClass getContinuation() { + if (continuationEClass == null) { + continuationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(156); + } + return continuationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getContinuation_Setting() { + return (EAttribute) getContinuation().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getConsiderIgnoreFragment() { + if (considerIgnoreFragmentEClass == null) { + considerIgnoreFragmentEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(157); + } + return considerIgnoreFragmentEClass; + } + + /** + * + * + * @generated + */ + public EReference getConsiderIgnoreFragment_Message() { + return (EReference) getConsiderIgnoreFragment() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getCallEvent() { + if (callEventEClass == null) { + callEventEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(158); + } + return callEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getCallEvent_Operation() { + return (EReference) getCallEvent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getChangeEvent() { + if (changeEventEClass == null) { + changeEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(159); + } + return changeEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getChangeEvent_ChangeExpression() { + return (EReference) getChangeEvent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getSignalEvent() { + if (signalEventEClass == null) { + signalEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(160); + } + return signalEventEClass; + } + + /** + * + * + * @generated + */ + public EReference getSignalEvent_Signal() { + return (EReference) getSignalEvent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAnyReceiveEvent() { + if (anyReceiveEventEClass == null) { + anyReceiveEventEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(161); + } + return anyReceiveEventEClass; + } + + /** + * + * + * @generated + */ + public EClass getCreateObjectAction() { + if (createObjectActionEClass == null) { + createObjectActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(162); + } + return createObjectActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getCreateObjectAction_Classifier() { + return (EReference) getCreateObjectAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getCreateObjectAction_Result() { + return (EReference) getCreateObjectAction().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getDestroyObjectAction() { + if (destroyObjectActionEClass == null) { + destroyObjectActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(163); + } + return destroyObjectActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getDestroyObjectAction_IsDestroyLinks() { + return (EAttribute) getDestroyObjectAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getDestroyObjectAction_IsDestroyOwnedObjects() { + return (EAttribute) getDestroyObjectAction().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getDestroyObjectAction_Target() { + return (EReference) getDestroyObjectAction().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getTestIdentityAction() { + if (testIdentityActionEClass == null) { + testIdentityActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(164); + } + return testIdentityActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getTestIdentityAction_First() { + return (EReference) getTestIdentityAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getTestIdentityAction_Second() { + return (EReference) getTestIdentityAction().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getTestIdentityAction_Result() { + return (EReference) getTestIdentityAction().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getReadSelfAction() { + if (readSelfActionEClass == null) { + readSelfActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(165); + } + return readSelfActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadSelfAction_Result() { + return (EReference) getReadSelfAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStructuralFeatureAction() { + if (structuralFeatureActionEClass == null) { + structuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(166); + } + return structuralFeatureActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getStructuralFeatureAction_StructuralFeature() { + return (EReference) getStructuralFeatureAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getStructuralFeatureAction_Object() { + return (EReference) getStructuralFeatureAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getReadStructuralFeatureAction() { + if (readStructuralFeatureActionEClass == null) { + readStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(167); + } + return readStructuralFeatureActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadStructuralFeatureAction_Result() { + return (EReference) getReadStructuralFeatureAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getWriteStructuralFeatureAction() { + if (writeStructuralFeatureActionEClass == null) { + writeStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(168); + } + return writeStructuralFeatureActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getWriteStructuralFeatureAction_Value() { + return (EReference) getWriteStructuralFeatureAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getClearStructuralFeatureAction() { + if (clearStructuralFeatureActionEClass == null) { + clearStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(169); + } + return clearStructuralFeatureActionEClass; + } + + /** + * + * + * @generated + */ + public EClass getRemoveStructuralFeatureValueAction() { + if (removeStructuralFeatureValueActionEClass == null) { + removeStructuralFeatureValueActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(170); + } + return removeStructuralFeatureValueActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getRemoveStructuralFeatureValueAction_IsRemoveDuplicates() { + return (EAttribute) getRemoveStructuralFeatureValueAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRemoveStructuralFeatureValueAction_RemoveAt() { + return (EReference) getRemoveStructuralFeatureValueAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getAddStructuralFeatureValueAction() { + if (addStructuralFeatureValueActionEClass == null) { + addStructuralFeatureValueActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(171); + } + return addStructuralFeatureValueActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getAddStructuralFeatureValueAction_IsReplaceAll() { + return (EAttribute) getAddStructuralFeatureValueAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAddStructuralFeatureValueAction_InsertAt() { + return (EReference) getAddStructuralFeatureValueAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLinkAction() { + if (linkActionEClass == null) { + linkActionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(172); + } + return linkActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getLinkAction_EndData() { + return (EReference) getLinkAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLinkAction_InputValue() { + return (EReference) getLinkAction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLinkEndData() { + if (linkEndDataEClass == null) { + linkEndDataEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(173); + } + return linkEndDataEClass; + } + + /** + * + * + * @generated + */ + public EReference getLinkEndData_Value() { + return (EReference) getLinkEndData().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLinkEndData_End() { + return (EReference) getLinkEndData().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLinkEndData_Qualifier() { + return (EReference) getLinkEndData().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getQualifierValue() { + if (qualifierValueEClass == null) { + qualifierValueEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(174); + } + return qualifierValueEClass; + } + + /** + * + * + * @generated + */ + public EReference getQualifierValue_Qualifier() { + return (EReference) getQualifierValue().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getQualifierValue_Value() { + return (EReference) getQualifierValue().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getReadLinkAction() { + if (readLinkActionEClass == null) { + readLinkActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(175); + } + return readLinkActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadLinkAction_Result() { + return (EReference) getReadLinkAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLinkEndCreationData() { + if (linkEndCreationDataEClass == null) { + linkEndCreationDataEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(176); + } + return linkEndCreationDataEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLinkEndCreationData_IsReplaceAll() { + return (EAttribute) getLinkEndCreationData().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getLinkEndCreationData_InsertAt() { + return (EReference) getLinkEndCreationData().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getCreateLinkAction() { + if (createLinkActionEClass == null) { + createLinkActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(177); + } + return createLinkActionEClass; + } + + /** + * + * + * @generated + */ + public EClass getWriteLinkAction() { + if (writeLinkActionEClass == null) { + writeLinkActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(178); + } + return writeLinkActionEClass; + } + + /** + * + * + * @generated + */ + public EClass getDestroyLinkAction() { + if (destroyLinkActionEClass == null) { + destroyLinkActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(179); + } + return destroyLinkActionEClass; + } + + /** + * + * + * @generated + */ + public EClass getLinkEndDestructionData() { + if (linkEndDestructionDataEClass == null) { + linkEndDestructionDataEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(180); + } + return linkEndDestructionDataEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLinkEndDestructionData_IsDestroyDuplicates() { + return (EAttribute) getLinkEndDestructionData() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLinkEndDestructionData_DestroyAt() { + return (EReference) getLinkEndDestructionData() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getClearAssociationAction() { + if (clearAssociationActionEClass == null) { + clearAssociationActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(181); + } + return clearAssociationActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getClearAssociationAction_Object() { + return (EReference) getClearAssociationAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClearAssociationAction_Association() { + return (EReference) getClearAssociationAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getBroadcastSignalAction() { + if (broadcastSignalActionEClass == null) { + broadcastSignalActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(182); + } + return broadcastSignalActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getBroadcastSignalAction_Signal() { + return (EReference) getBroadcastSignalAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getInvocationAction() { + if (invocationActionEClass == null) { + invocationActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(183); + } + return invocationActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getInvocationAction_Argument() { + return (EReference) getInvocationAction().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getInvocationAction_OnPort() { + return (EReference) getInvocationAction().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getSendObjectAction() { + if (sendObjectActionEClass == null) { + sendObjectActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(184); + } + return sendObjectActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getSendObjectAction_Target() { + return (EReference) getSendObjectAction().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getSendObjectAction_Request() { + return (EReference) getSendObjectAction().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getValueSpecificationAction() { + if (valueSpecificationActionEClass == null) { + valueSpecificationActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(185); + } + return valueSpecificationActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getValueSpecificationAction_Value() { + return (EReference) getValueSpecificationAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getValueSpecificationAction_Result() { + return (EReference) getValueSpecificationAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getTimeExpression() { + if (timeExpressionEClass == null) { + timeExpressionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(186); + } + return timeExpressionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getTimeExpression_FirstTime() { + return (EAttribute) getTimeExpression().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTimeExpression_Event() { + return (EReference) getTimeExpression().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDuration() { + if (durationEClass == null) { + durationEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(187); + } + return durationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getDuration_FirstTime() { + return (EAttribute) getDuration().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDuration_Event() { + return (EReference) getDuration().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getTimeObservationAction() { + if (timeObservationActionEClass == null) { + timeObservationActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(188); + } + return timeObservationActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getTimeObservationAction_Now() { + return (EReference) getTimeObservationAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getValuePin() { + if (valuePinEClass == null) { + valuePinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(189); + } + return valuePinEClass; + } + + /** + * + * + * @generated + */ + public EReference getValuePin_Value() { + return (EReference) getValuePin().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDurationInterval() { + if (durationIntervalEClass == null) { + durationIntervalEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(190); + } + return durationIntervalEClass; + } + + /** + * + * + * @generated + */ + public EClass getInterval() { + if (intervalEClass == null) { + intervalEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(191); + } + return intervalEClass; + } + + /** + * + * + * @generated + */ + public EReference getInterval_Min() { + return (EReference) getInterval().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getInterval_Max() { + return (EReference) getInterval().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getTimeConstraint() { + if (timeConstraintEClass == null) { + timeConstraintEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(192); + } + return timeConstraintEClass; + } + + /** + * + * + * @generated + */ + public EClass getIntervalConstraint() { + if (intervalConstraintEClass == null) { + intervalConstraintEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(193); + } + return intervalConstraintEClass; + } + + /** + * + * + * @generated + */ + public EClass getTimeInterval() { + if (timeIntervalEClass == null) { + timeIntervalEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(194); + } + return timeIntervalEClass; + } + + /** + * + * + * @generated + */ + public EClass getDurationObservationAction() { + if (durationObservationActionEClass == null) { + durationObservationActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(195); + } + return durationObservationActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getDurationObservationAction_Duration() { + return (EReference) getDurationObservationAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDurationConstraint() { + if (durationConstraintEClass == null) { + durationConstraintEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(196); + } + return durationConstraintEClass; + } + + /** + * + * + * @generated + */ + public EClass getOpaqueAction() { + if (opaqueActionEClass == null) { + opaqueActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(197); + } + return opaqueActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getOpaqueAction_Body() { + return (EAttribute) getOpaqueAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getOpaqueAction_Language() { + return (EAttribute) getOpaqueAction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getOpaqueAction_InputValue() { + return (EReference) getOpaqueAction().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getOpaqueAction_OutputValue() { + return (EReference) getOpaqueAction().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getCallAction() { + if (callActionEClass == null) { + callActionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(198); + } + return callActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getCallAction_IsSynchronous() { + return (EAttribute) getCallAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getCallAction_Result() { + return (EReference) getCallAction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSendSignalAction() { + if (sendSignalActionEClass == null) { + sendSignalActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(199); + } + return sendSignalActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getSendSignalAction_Target() { + return (EReference) getSendSignalAction().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getSendSignalAction_Signal() { + return (EReference) getSendSignalAction().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getCallOperationAction() { + if (callOperationActionEClass == null) { + callOperationActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(200); + } + return callOperationActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getCallOperationAction_Operation() { + return (EReference) getCallOperationAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getCallOperationAction_Target() { + return (EReference) getCallOperationAction().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getCallBehaviorAction() { + if (callBehaviorActionEClass == null) { + callBehaviorActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(201); + } + return callBehaviorActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getCallBehaviorAction_Behavior() { + return (EReference) getCallBehaviorAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getInformationItem() { + if (informationItemEClass == null) { + informationItemEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(202); + } + return informationItemEClass; + } + + /** + * + * + * @generated + */ + public EReference getInformationItem_Represented() { + return (EReference) getInformationItem().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getInformationFlow() { + if (informationFlowEClass == null) { + informationFlowEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(203); + } + return informationFlowEClass; + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_Realization() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_Conveyed() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_InformationSource() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_InformationTarget() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_RealizingActivityEdge() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(4); + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_RealizingConnector() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(5); + } + + /** + * + * + * @generated + */ + public EReference getInformationFlow_RealizingMessage() { + return (EReference) getInformationFlow().getEStructuralFeatures() + .get(6); + } + + /** + * + * + * @generated + */ + public EClass getModel() { + if (modelEClass == null) { + modelEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(204); + } + return modelEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getModel_Viewpoint() { + return (EAttribute) getModel().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVariableAction() { + if (variableActionEClass == null) { + variableActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(205); + } + return variableActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariableAction_Variable() { + return (EReference) getVariableAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getReadVariableAction() { + if (readVariableActionEClass == null) { + readVariableActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(206); + } + return readVariableActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadVariableAction_Result() { + return (EReference) getReadVariableAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getWriteVariableAction() { + if (writeVariableActionEClass == null) { + writeVariableActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(207); + } + return writeVariableActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getWriteVariableAction_Value() { + return (EReference) getWriteVariableAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getClearVariableAction() { + if (clearVariableActionEClass == null) { + clearVariableActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(208); + } + return clearVariableActionEClass; + } + + /** + * + * + * @generated + */ + public EClass getAddVariableValueAction() { + if (addVariableValueActionEClass == null) { + addVariableValueActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(209); + } + return addVariableValueActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getAddVariableValueAction_IsReplaceAll() { + return (EAttribute) getAddVariableValueAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAddVariableValueAction_InsertAt() { + return (EReference) getAddVariableValueAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRemoveVariableValueAction() { + if (removeVariableValueActionEClass == null) { + removeVariableValueActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(210); + } + return removeVariableValueActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getRemoveVariableValueAction_IsRemoveDuplicates() { + return (EAttribute) getRemoveVariableValueAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRemoveVariableValueAction_RemoveAt() { + return (EReference) getRemoveVariableValueAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRaiseExceptionAction() { + if (raiseExceptionActionEClass == null) { + raiseExceptionActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(211); + } + return raiseExceptionActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getRaiseExceptionAction_Exception() { + return (EReference) getRaiseExceptionAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getActionInputPin() { + if (actionInputPinEClass == null) { + actionInputPinEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(212); + } + return actionInputPinEClass; + } + + /** + * + * + * @generated + */ + public EReference getActionInputPin_FromAction() { + return (EReference) getActionInputPin().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getReadExtentAction() { + if (readExtentActionEClass == null) { + readExtentActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(213); + } + return readExtentActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadExtentAction_Result() { + return (EReference) getReadExtentAction().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getReadExtentAction_Classifier() { + return (EReference) getReadExtentAction().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EClass getReclassifyObjectAction() { + if (reclassifyObjectActionEClass == null) { + reclassifyObjectActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(214); + } + return reclassifyObjectActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getReclassifyObjectAction_IsReplaceAll() { + return (EAttribute) getReclassifyObjectAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReclassifyObjectAction_OldClassifier() { + return (EReference) getReclassifyObjectAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getReclassifyObjectAction_NewClassifier() { + return (EReference) getReclassifyObjectAction() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getReclassifyObjectAction_Object() { + return (EReference) getReclassifyObjectAction() + .getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getReadIsClassifiedObjectAction() { + if (readIsClassifiedObjectActionEClass == null) { + readIsClassifiedObjectActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(215); + } + return readIsClassifiedObjectActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getReadIsClassifiedObjectAction_IsDirect() { + return (EAttribute) getReadIsClassifiedObjectAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReadIsClassifiedObjectAction_Classifier() { + return (EReference) getReadIsClassifiedObjectAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getReadIsClassifiedObjectAction_Result() { + return (EReference) getReadIsClassifiedObjectAction() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getReadIsClassifiedObjectAction_Object() { + return (EReference) getReadIsClassifiedObjectAction() + .getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getStartClassifierBehaviorAction() { + if (startClassifierBehaviorActionEClass == null) { + startClassifierBehaviorActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(216); + } + return startClassifierBehaviorActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getStartClassifierBehaviorAction_Object() { + return (EReference) getStartClassifierBehaviorAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getReadLinkObjectEndAction() { + if (readLinkObjectEndActionEClass == null) { + readLinkObjectEndActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(217); + } + return readLinkObjectEndActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadLinkObjectEndAction_Object() { + return (EReference) getReadLinkObjectEndAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReadLinkObjectEndAction_End() { + return (EReference) getReadLinkObjectEndAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getReadLinkObjectEndAction_Result() { + return (EReference) getReadLinkObjectEndAction() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getReadLinkObjectEndQualifierAction() { + if (readLinkObjectEndQualifierActionEClass == null) { + readLinkObjectEndQualifierActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(218); + } + return readLinkObjectEndQualifierActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReadLinkObjectEndQualifierAction_Object() { + return (EReference) getReadLinkObjectEndQualifierAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReadLinkObjectEndQualifierAction_Result() { + return (EReference) getReadLinkObjectEndQualifierAction() + .getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getReadLinkObjectEndQualifierAction_Qualifier() { + return (EReference) getReadLinkObjectEndQualifierAction() + .getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getCreateLinkObjectAction() { + if (createLinkObjectActionEClass == null) { + createLinkObjectActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(219); + } + return createLinkObjectActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getCreateLinkObjectAction_Result() { + return (EReference) getCreateLinkObjectAction() + .getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAcceptEventAction() { + if (acceptEventActionEClass == null) { + acceptEventActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(220); + } + return acceptEventActionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getAcceptEventAction_IsUnmarshall() { + return (EAttribute) getAcceptEventAction().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getAcceptEventAction_Result() { + return (EReference) getAcceptEventAction().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getAcceptEventAction_Trigger() { + return (EReference) getAcceptEventAction().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getAcceptCallAction() { + if (acceptCallActionEClass == null) { + acceptCallActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(221); + } + return acceptCallActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAcceptCallAction_ReturnInformation() { + return (EReference) getAcceptCallAction().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EClass getReplyAction() { + if (replyActionEClass == null) { + replyActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(222); + } + return replyActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getReplyAction_ReplyToCall() { + return (EReference) getReplyAction().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReplyAction_ReturnInformation() { + return (EReference) getReplyAction().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getReplyAction_ReplyValue() { + return (EReference) getReplyAction().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getUnmarshallAction() { + if (unmarshallActionEClass == null) { + unmarshallActionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(223); + } + return unmarshallActionEClass; + } + + /** + * + * + * @generated + */ + public EReference getUnmarshallAction_Result() { + return (EReference) getUnmarshallAction().getEStructuralFeatures().get( + 0); + } + + /** + * + * + * @generated + */ + public EReference getUnmarshallAction_UnmarshallType() { + return (EReference) getUnmarshallAction().getEStructuralFeatures().get( + 1); + } + + /** + * + * + * @generated + */ + public EReference getUnmarshallAction_Object() { + return (EReference) getUnmarshallAction().getEStructuralFeatures().get( + 2); + } + + /** + * + * + * @generated + */ + public EClass getControlNode() { + if (controlNodeEClass == null) { + controlNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(224); + } + return controlNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getControlFlow() { + if (controlFlowEClass == null) { + controlFlowEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(225); + } + return controlFlowEClass; + } + + /** + * + * + * @generated + */ + public EClass getInitialNode() { + if (initialNodeEClass == null) { + initialNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(226); + } + return initialNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getActivityParameterNode() { + if (activityParameterNodeEClass == null) { + activityParameterNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(227); + } + return activityParameterNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getActivityParameterNode_Parameter() { + return (EReference) getActivityParameterNode().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EClass getForkNode() { + if (forkNodeEClass == null) { + forkNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(228); + } + return forkNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getFlowFinalNode() { + if (flowFinalNodeEClass == null) { + flowFinalNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(229); + } + return flowFinalNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getFinalNode() { + if (finalNodeEClass == null) { + finalNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(230); + } + return finalNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getCentralBufferNode() { + if (centralBufferNodeEClass == null) { + centralBufferNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(231); + } + return centralBufferNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getMergeNode() { + if (mergeNodeEClass == null) { + mergeNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(232); + } + return mergeNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getDecisionNode() { + if (decisionNodeEClass == null) { + decisionNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(233); + } + return decisionNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getDecisionNode_DecisionInput() { + return (EReference) getDecisionNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getActivityFinalNode() { + if (activityFinalNodeEClass == null) { + activityFinalNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(234); + } + return activityFinalNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getJoinNode() { + if (joinNodeEClass == null) { + joinNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(235); + } + return joinNodeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getJoinNode_IsCombineDuplicate() { + return (EAttribute) getJoinNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getJoinNode_JoinSpec() { + return (EReference) getJoinNode().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDataStoreNode() { + if (dataStoreNodeEClass == null) { + dataStoreNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(236); + } + return dataStoreNodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getObjectFlow() { + if (objectFlowEClass == null) { + objectFlowEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(237); + } + return objectFlowEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getObjectFlow_IsMulticast() { + return (EAttribute) getObjectFlow().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getObjectFlow_IsMultireceive() { + return (EAttribute) getObjectFlow().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getObjectFlow_Transformation() { + return (EReference) getObjectFlow().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getObjectFlow_Selection() { + return (EReference) getObjectFlow().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getSequenceNode() { + if (sequenceNodeEClass == null) { + sequenceNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(238); + } + return sequenceNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getSequenceNode_ExecutableNode() { + return (EReference) getSequenceNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getConditionalNode() { + if (conditionalNodeEClass == null) { + conditionalNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(239); + } + return conditionalNodeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getConditionalNode_IsDeterminate() { + return (EAttribute) getConditionalNode().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getConditionalNode_IsAssured() { + return (EAttribute) getConditionalNode().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getConditionalNode_Clause() { + return (EReference) getConditionalNode().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EReference getConditionalNode_Result() { + return (EReference) getConditionalNode().getEStructuralFeatures() + .get(3); + } + + /** + * + * + * @generated + */ + public EClass getClause() { + if (clauseEClass == null) { + clauseEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(240); + } + return clauseEClass; + } + + /** + * + * + * @generated + */ + public EReference getClause_Test() { + return (EReference) getClause().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClause_Body() { + return (EReference) getClause().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getClause_PredecessorClause() { + return (EReference) getClause().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getClause_SuccessorClause() { + return (EReference) getClause().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getClause_Decider() { + return (EReference) getClause().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getClause_BodyOutput() { + return (EReference) getClause().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getLoopNode() { + if (loopNodeEClass == null) { + loopNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(241); + } + return loopNodeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLoopNode_IsTestedFirst() { + return (EAttribute) getLoopNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_BodyPart() { + return (EReference) getLoopNode().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_SetupPart() { + return (EReference) getLoopNode().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_Decider() { + return (EReference) getLoopNode().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_Test() { + return (EReference) getLoopNode().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_Result() { + return (EReference) getLoopNode().getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_LoopVariable() { + return (EReference) getLoopNode().getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_BodyOutput() { + return (EReference) getLoopNode().getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + public EReference getLoopNode_LoopVariableInput() { + return (EReference) getLoopNode().getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + public EClass getExpansionNode() { + if (expansionNodeEClass == null) { + expansionNodeEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(242); + } + return expansionNodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getExpansionNode_RegionAsOutput() { + return (EReference) getExpansionNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExpansionNode_RegionAsInput() { + return (EReference) getExpansionNode().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExpansionRegion() { + if (expansionRegionEClass == null) { + expansionRegionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(243); + } + return expansionRegionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getExpansionRegion_Mode() { + return (EAttribute) getExpansionRegion().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getExpansionRegion_InputElement() { + return (EReference) getExpansionRegion().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getExpansionRegion_OutputElement() { + return (EReference) getExpansionRegion().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getComponentRealization() { + if (componentRealizationEClass == null) { + componentRealizationEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(245); + } + return componentRealizationEClass; + } + + /** + * + * + * @generated + */ + public EReference getComponentRealization_Abstraction() { + return (EReference) getComponentRealization().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getComponentRealization_RealizingClassifier() { + return (EReference) getComponentRealization().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EClass getComponent() { + if (componentEClass == null) { + componentEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(246); + } + return componentEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getComponent_IsIndirectlyInstantiated() { + return (EAttribute) getComponent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getComponent_Required() { + return (EReference) getComponent().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getComponent_Provided() { + return (EReference) getComponent().getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getComponent_PackagedElement() { + return (EReference) getComponent().getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getComponent_Realization() { + return (EReference) getComponent().getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getNode() { + if (nodeEClass == null) { + nodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(247); + } + return nodeEClass; + } + + /** + * + * + * @generated + */ + public EReference getNode_NestedNode() { + return (EReference) getNode().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDevice() { + if (deviceEClass == null) { + deviceEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(248); + } + return deviceEClass; + } + + /** + * + * + * @generated + */ + public EClass getExecutionEnvironment() { + if (executionEnvironmentEClass == null) { + executionEnvironmentEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(249); + } + return executionEnvironmentEClass; + } + + /** + * + * + * @generated + */ + public EClass getCommunicationPath() { + if (communicationPathEClass == null) { + communicationPathEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(250); + } + return communicationPathEClass; + } + + /** + * + * + * @generated + */ + public EClass getFinalState() { + if (finalStateEClass == null) { + finalStateEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(251); + } + return finalStateEClass; + } + + /** + * + * + * @generated + */ + public EClass getTimeEvent() { + if (timeEventEClass == null) { + timeEventEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(252); + } + return timeEventEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getTimeEvent_IsRelative() { + return (EAttribute) getTimeEvent().getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTimeEvent_When() { + return (EReference) getTimeEvent().getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getProtocolTransition() { + if (protocolTransitionEClass == null) { + protocolTransitionEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(253); + } + return protocolTransitionEClass; + } + + /** + * + * + * @generated + */ + public EReference getProtocolTransition_PostCondition() { + return (EReference) getProtocolTransition().getEStructuralFeatures() + .get(0); + } + + /** + * + * + * @generated + */ + public EReference getProtocolTransition_Referred() { + return (EReference) getProtocolTransition().getEStructuralFeatures() + .get(1); + } + + /** + * + * + * @generated + */ + public EReference getProtocolTransition_PreCondition() { + return (EReference) getProtocolTransition().getEStructuralFeatures() + .get(2); + } + + /** + * + * + * @generated + */ + public EClass getAssociationClass() { + if (associationClassEClass == null) { + associationClassEClass = (EClass) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(254); + } + return associationClassEClass; + } + + /** + * + * + * @generated + */ + public EEnum getVisibilityKind() { + if (visibilityKindEEnum == null) { + visibilityKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(4); + } + return visibilityKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getCallConcurrencyKind() { + if (callConcurrencyKindEEnum == null) { + callConcurrencyKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(57); + } + return callConcurrencyKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getTransitionKind() { + if (transitionKindEEnum == null) { + transitionKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(67); + } + return transitionKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getPseudostateKind() { + if (pseudostateKindEEnum == null) { + pseudostateKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(74); + } + return pseudostateKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getAggregationKind() { + if (aggregationKindEEnum == null) { + aggregationKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(78); + } + return aggregationKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getParameterDirectionKind() { + if (parameterDirectionKindEEnum == null) { + parameterDirectionKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(81); + } + return parameterDirectionKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getParameterEffectKind() { + if (parameterEffectKindEEnum == null) { + parameterEffectKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(82); + } + return parameterEffectKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getConnectorKind() { + if (connectorKindEEnum == null) { + connectorKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(87); + } + return connectorKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getMessageKind() { + if (messageKindEEnum == null) { + messageKindEEnum = (EEnum) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(113); + } + return messageKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getMessageSort() { + if (messageSortEEnum == null) { + messageSortEEnum = (EEnum) EPackage.Registry.INSTANCE.getEPackage( + UMLPackage.eNS_URI).getEClassifiers().get(114); + } + return messageSortEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getObjectNodeOrderingKind() { + if (objectNodeOrderingKindEEnum == null) { + objectNodeOrderingKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(134); + } + return objectNodeOrderingKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getInteractionOperatorKind() { + if (interactionOperatorKindEEnum == null) { + interactionOperatorKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(154); + } + return interactionOperatorKindEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getExpansionKind() { + if (expansionKindEEnum == null) { + expansionKindEEnum = (EEnum) EPackage.Registry.INSTANCE + .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(244); + } + return expansionKindEEnum; + } + + /** + * + * + * @generated + */ + public UMLFactory getUMLFactory() { + return (UMLFactory) getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isLoaded = false; + + /** + * Laods the package and any sub-packages from their serialized form. + * + * + * @generated + */ + public void loadPackage() { + if (isLoaded) + return; + isLoaded = true; + + URL url = getClass().getResource(packageFilename); + if (url == null) { + throw new RuntimeException( + "Missing serialized package: " + packageFilename); //$NON-NLS-1$ + } + URI uri = URI.createURI(url.toString()); + Resource resource = new EcoreResourceFactoryImpl().createResource(uri); + try { + resource.load(null); + } catch (IOException exception) { + throw new WrappedException(exception); + } + initializeFromLoadedEPackage(this, (EPackage) resource.getContents() + .get(0)); + createResource(eNS_URI); + } + + /** + * + * + * @generated + */ + private boolean isFixed = false; + + /** + * Fixes up the loaded package, to make it appear as if it had been programmatically built. + * + * + * @generated + */ + public void fixPackageContents() { + if (isFixed) + return; + isFixed = true; + fixEClassifiers(); + } +} //UMLPackageImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java new file mode 100644 index 00000000..b9232ea7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java @@ -0,0 +1,763 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UnmarshallActionImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UnmarshallAction; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.UnmarshallActionOperations; + +/** + * + * An implementation of the model object 'Unmarshall Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getResults Result}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getUnmarshallType Unmarshall Type}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getObject Object}
  • + *
+ *

+ * + * @generated + */ +public class UnmarshallActionImpl + extends ActionImpl + implements UnmarshallAction { + + /** + * + * + * @generated + */ + protected UnmarshallActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getUnmarshallAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.UNMARSHALL_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.UNMARSHALL_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getUnmarshallAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.UNMARSHALL_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.UNMARSHALL_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getUnmarshallAction_Object()})); + } + return input; + } + + /** + * + * + * @generated + */ + public List getResults() { + List result = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__RESULT); + if (result == null) { + eVirtualSet(UMLPackage.UNMARSHALL_ACTION__RESULT, + result = new EObjectResolvingEList(OutputPin.class, this, + UMLPackage.UNMARSHALL_ACTION__RESULT)); + } + return result; + } + + /** + * + * + * @generated + */ + public OutputPin getResult(String name) { + for (Iterator i = getResults().iterator(); i.hasNext();) { + OutputPin result = (OutputPin) i.next(); + if (name.equals(result.getName())) { + return result; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Classifier getUnmarshallType() { + Classifier unmarshallType = (Classifier) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE); + if (unmarshallType != null && unmarshallType.eIsProxy()) { + Classifier oldUnmarshallType = unmarshallType; + unmarshallType = (Classifier) eResolveProxy((InternalEObject) unmarshallType); + if (unmarshallType != oldUnmarshallType) { + eVirtualSet(UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE, + unmarshallType); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE, + oldUnmarshallType, unmarshallType)); + } + } + return unmarshallType; + } + + /** + * + * + * @generated + */ + public Classifier basicGetUnmarshallType() { + return (Classifier) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE); + } + + /** + * + * + * @generated + */ + public void setUnmarshallType(Classifier newUnmarshallType) { + Classifier unmarshallType = newUnmarshallType; + Object oldUnmarshallType = eVirtualSet( + UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE, unmarshallType); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE, + oldUnmarshallType == EVIRTUAL_NO_VALUE + ? null + : oldUnmarshallType, unmarshallType)); + + } + + /** + * + * + * @generated + */ + public InputPin getObject() { + InputPin object = (InputPin) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OBJECT); + return object; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObject(InputPin newObject, + NotificationChain msgs) { + Object oldObject = eVirtualSet(UMLPackage.UNMARSHALL_ACTION__OBJECT, + newObject); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.UNMARSHALL_ACTION__OBJECT, + oldObject == EVIRTUAL_NO_VALUE + ? null + : oldObject, newObject); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setObject(InputPin newObject) { + InputPin object = (InputPin) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OBJECT); + if (newObject != object) { + NotificationChain msgs = null; + if (object != null) + msgs = ((InternalEObject) object).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.UNMARSHALL_ACTION__OBJECT, null, msgs); + if (newObject != null) + msgs = ((InternalEObject) newObject).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.UNMARSHALL_ACTION__OBJECT, null, msgs); + msgs = basicSetObject(newObject, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.UNMARSHALL_ACTION__OBJECT, newObject, newObject)); + + } + + /** + * + * + * @generated + */ + public InputPin createObject(EClass eClass) { + InputPin newObject = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public InputPin createObject() { + InputPin newObject = UMLFactory.eINSTANCE.createInputPin(); + setObject(newObject); + return newObject; + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return UnmarshallActionOperations.validateSameType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfObject(DiagnosticChain diagnostics, + Map context) { + return UnmarshallActionOperations.validateMultiplicityOfObject(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNumberOfResult(DiagnosticChain diagnostics, + Map context) { + return UnmarshallActionOperations.validateNumberOfResult(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTypeAndOrdering(DiagnosticChain diagnostics, + Map context) { + return UnmarshallActionOperations.validateTypeAndOrdering(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics, + Map context) { + return UnmarshallActionOperations.validateMultiplicityOfResult(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStructuralFeature(DiagnosticChain diagnostics, + Map context) { + return UnmarshallActionOperations.validateStructuralFeature(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUnmarshallTypeIsClassifier( + DiagnosticChain diagnostics, Map context) { + return UnmarshallActionOperations.validateUnmarshallTypeIsClassifier( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.UNMARSHALL_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.UNMARSHALL_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE, msgs); + case UMLPackage.UNMARSHALL_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.UNMARSHALL_ACTION__ACTIVITY, msgs); + case UMLPackage.UNMARSHALL_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.UNMARSHALL_ACTION__OBJECT : + return basicSetObject(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.UNMARSHALL_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.UNMARSHALL_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.UNMARSHALL_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.UNMARSHALL_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.UNMARSHALL_ACTION__NAME : + return getName(); + case UMLPackage.UNMARSHALL_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.UNMARSHALL_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.UNMARSHALL_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.UNMARSHALL_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.UNMARSHALL_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.UNMARSHALL_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.UNMARSHALL_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.UNMARSHALL_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.UNMARSHALL_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.UNMARSHALL_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.UNMARSHALL_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.UNMARSHALL_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.UNMARSHALL_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.UNMARSHALL_ACTION__INPUT : + return getInputs(); + case UMLPackage.UNMARSHALL_ACTION__CONTEXT : + return getContext(); + case UMLPackage.UNMARSHALL_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.UNMARSHALL_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.UNMARSHALL_ACTION__RESULT : + return getResults(); + case UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE : + if (resolve) + return getUnmarshallType(); + return basicGetUnmarshallType(); + case UMLPackage.UNMARSHALL_ACTION__OBJECT : + return getObject(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.UNMARSHALL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.UNMARSHALL_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__RESULT : + getResults().clear(); + getResults().addAll((Collection) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE : + setUnmarshallType((Classifier) newValue); + return; + case UMLPackage.UNMARSHALL_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.UNMARSHALL_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.UNMARSHALL_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.UNMARSHALL_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.UNMARSHALL_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.UNMARSHALL_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.UNMARSHALL_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.UNMARSHALL_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__RESULT : + getResults().clear(); + return; + case UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE : + setUnmarshallType((Classifier) null); + return; + case UMLPackage.UNMARSHALL_ACTION__OBJECT : + setObject((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.UNMARSHALL_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.UNMARSHALL_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.UNMARSHALL_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.UNMARSHALL_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.UNMARSHALL_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.UNMARSHALL_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.UNMARSHALL_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.UNMARSHALL_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.UNMARSHALL_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.UNMARSHALL_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.UNMARSHALL_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.UNMARSHALL_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.UNMARSHALL_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.UNMARSHALL_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.UNMARSHALL_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.UNMARSHALL_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.UNMARSHALL_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.UNMARSHALL_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.UNMARSHALL_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.UNMARSHALL_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__RESULT : + List result = (List) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__RESULT); + return result != null && !result.isEmpty(); + case UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE : + return eVirtualGet(UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE) != null; + case UMLPackage.UNMARSHALL_ACTION__OBJECT : + return eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OBJECT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getUnmarshallAction_Result()); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getUnmarshallAction_Object()); + } + +} //UnmarshallActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UsageImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UsageImpl.java new file mode 100644 index 00000000..10f7e05d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UsageImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UsageImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Usage; + +/** + * + * An implementation of the model object 'Usage'. + * + *

+ *

+ * + * @generated + */ +public class UsageImpl + extends DependencyImpl + implements Usage { + + /** + * + * + * @generated + */ + protected UsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getUsage(); + } + +} //UsageImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java new file mode 100644 index 00000000..dab8d4ff --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java @@ -0,0 +1,1039 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UseCaseImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.Extend; +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.Include; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.UseCaseOperations; + +/** + * + * An implementation of the model object 'Use Case'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getOwnedMembers Owned Member}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getIncludes Include}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getExtends Extend}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getExtensionPoints Extension Point}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getSubjects Subject}
  • + *
+ *

+ * + * @generated + */ +public class UseCaseImpl + extends BehavioredClassifierImpl + implements UseCase { + + /** + * + * + * @generated + */ + protected UseCaseImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getUseCase(); + } + + /** + * + * + * @generated + */ + public List getOwnedMembers() { + List ownedMember = (List) eVirtualGet(UMLPackage.USE_CASE__OWNED_MEMBER); + if (ownedMember == null) { + eVirtualSet(UMLPackage.USE_CASE__OWNED_MEMBER, + ownedMember = new DerivedUnionEObjectEList(NamedElement.class, + this, UMLPackage.USE_CASE__OWNED_MEMBER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getNamespace_OwnedRule(), + UMLPackage.eINSTANCE.getClassifier_OwnedUseCase(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedBehavior(), + UMLPackage.eINSTANCE + .getBehavioredClassifier_OwnedTrigger(), + UMLPackage.eINSTANCE.getUseCase_Include(), + UMLPackage.eINSTANCE.getUseCase_Extend(), + UMLPackage.eINSTANCE.getUseCase_ExtensionPoint()})); + } + return ownedMember; + } + + /** + * + * + * @generated + */ + public List getIncludes() { + List include = (List) eVirtualGet(UMLPackage.USE_CASE__INCLUDE); + if (include == null) { + eVirtualSet(UMLPackage.USE_CASE__INCLUDE, + include = new EObjectContainmentWithInverseEList(Include.class, + this, UMLPackage.USE_CASE__INCLUDE, + UMLPackage.INCLUDE__INCLUDING_CASE)); + } + return include; + } + + /** + * + * + * @generated + */ + public Include createInclude() { + Include newInclude = UMLFactory.eINSTANCE.createInclude(); + getIncludes().add(newInclude); + return newInclude; + } + + /** + * + * + * @generated + */ + public Include getInclude(String name) { + for (Iterator i = getIncludes().iterator(); i.hasNext();) { + Include include = (Include) i.next(); + if (name.equals(include.getName())) { + return include; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getExtends() { + List extend = (List) eVirtualGet(UMLPackage.USE_CASE__EXTEND); + if (extend == null) { + eVirtualSet(UMLPackage.USE_CASE__EXTEND, + extend = new EObjectContainmentWithInverseEList(Extend.class, + this, UMLPackage.USE_CASE__EXTEND, + UMLPackage.EXTEND__EXTENSION)); + } + return extend; + } + + /** + * + * + * @generated + */ + public Extend createExtend() { + Extend newExtend = UMLFactory.eINSTANCE.createExtend(); + getExtends().add(newExtend); + return newExtend; + } + + /** + * + * + * @generated + */ + public Extend getExtend(String name) { + for (Iterator i = getExtends().iterator(); i.hasNext();) { + Extend extend = (Extend) i.next(); + if (name.equals(extend.getName())) { + return extend; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getExtensionPoints() { + List extensionPoint = (List) eVirtualGet(UMLPackage.USE_CASE__EXTENSION_POINT); + if (extensionPoint == null) { + eVirtualSet(UMLPackage.USE_CASE__EXTENSION_POINT, + extensionPoint = new EObjectContainmentWithInverseEList( + ExtensionPoint.class, this, + UMLPackage.USE_CASE__EXTENSION_POINT, + UMLPackage.EXTENSION_POINT__USE_CASE)); + } + return extensionPoint; + } + + /** + * + * + * @generated + */ + public ExtensionPoint createExtensionPoint() { + ExtensionPoint newExtensionPoint = UMLFactory.eINSTANCE + .createExtensionPoint(); + getExtensionPoints().add(newExtensionPoint); + return newExtensionPoint; + } + + /** + * + * + * @generated + */ + public ExtensionPoint getExtensionPoint(String name) { + for (Iterator i = getExtensionPoints().iterator(); i.hasNext();) { + ExtensionPoint extensionPoint = (ExtensionPoint) i.next(); + if (name.equals(extensionPoint.getName())) { + return extensionPoint; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getSubjects() { + List subject = (List) eVirtualGet(UMLPackage.USE_CASE__SUBJECT); + if (subject == null) { + eVirtualSet(UMLPackage.USE_CASE__SUBJECT, + subject = new EObjectWithInverseResolvingEList.ManyInverse( + Classifier.class, this, UMLPackage.USE_CASE__SUBJECT, + UMLPackage.CLASSIFIER__USE_CASE)); + } + return subject; + } + + /** + * + * + * @generated + */ + public Classifier getSubject(String name) { + for (Iterator i = getSubjects().iterator(); i.hasNext();) { + Classifier subject = (Classifier) i.next(); + if (name.equals(subject.getName())) { + return subject; + } + } + return null; + } + + /** + * + * + * @generated + */ + public boolean validateMustHaveName(DiagnosticChain diagnostics, Map context) { + return UseCaseOperations.validateMustHaveName(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateBinaryAssociations(DiagnosticChain diagnostics, + Map context) { + return UseCaseOperations.validateBinaryAssociations(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateNoAssociationToUseCase(DiagnosticChain diagnostics, + Map context) { + return UseCaseOperations.validateNoAssociationToUseCase(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCannotIncludeSelf(DiagnosticChain diagnostics, + Map context) { + return UseCaseOperations.validateCannotIncludeSelf(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public List allIncludedUseCases() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(this, UMLPackage.eINSTANCE + .getUseCase().getEOperations().get(4)); + if (result == null) { + cache.put(this, UMLPackage.eINSTANCE.getUseCase() + .getEOperations().get(4), result = UseCaseOperations + .allIncludedUseCases(this)); + } + return result; + } + return UseCaseOperations.allIncludedUseCases(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.USE_CASE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.USE_CASE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.USE_CASE__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.USE_CASE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.USE_CASE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__USE_CASE : + return ((InternalEList) getUseCases()).basicAdd(otherEnd, + msgs); + case UMLPackage.USE_CASE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_SIGNATURE : + RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.USE_CASE__OWNED_SIGNATURE); + if (ownedSignature != null) + msgs = ((InternalEObject) ownedSignature) + .eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - UMLPackage.USE_CASE__OWNED_SIGNATURE, null, + msgs); + return basicSetOwnedSignature( + (RedefinableTemplateSignature) otherEnd, msgs); + case UMLPackage.USE_CASE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.USE_CASE__INCLUDE : + return ((InternalEList) getIncludes()).basicAdd(otherEnd, + msgs); + case UMLPackage.USE_CASE__EXTEND : + return ((InternalEList) getExtends()).basicAdd(otherEnd, + msgs); + case UMLPackage.USE_CASE__EXTENSION_POINT : + return ((InternalEList) getExtensionPoints()).basicAdd( + otherEnd, msgs); + case UMLPackage.USE_CASE__SUBJECT : + return ((InternalEList) getSubjects()).basicAdd(otherEnd, + msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.USE_CASE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.USE_CASE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.USE_CASE__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.USE_CASE__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.USE_CASE__GENERALIZATION : + return ((InternalEList) getGeneralizations()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__POWERTYPE_EXTENT : + return ((InternalEList) getPowertypeExtents()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_USE_CASE : + return ((InternalEList) getOwnedUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__USE_CASE : + return ((InternalEList) getUseCases()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__SUBSTITUTION : + return ((InternalEList) getSubstitutions()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__COLLABORATION_USE : + return ((InternalEList) getCollaborationUses()) + .basicRemove(otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_SIGNATURE : + return basicSetOwnedSignature(null, msgs); + case UMLPackage.USE_CASE__OWNED_BEHAVIOR : + return ((InternalEList) getOwnedBehaviors()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__INTERFACE_REALIZATION : + return ((InternalEList) getInterfaceRealizations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.USE_CASE__OWNED_TRIGGER : + return ((InternalEList) getOwnedTriggers()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__INCLUDE : + return ((InternalEList) getIncludes()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__EXTEND : + return ((InternalEList) getExtends()).basicRemove(otherEnd, + msgs); + case UMLPackage.USE_CASE__EXTENSION_POINT : + return ((InternalEList) getExtensionPoints()).basicRemove( + otherEnd, msgs); + case UMLPackage.USE_CASE__SUBJECT : + return ((InternalEList) getSubjects()).basicRemove( + otherEnd, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.USE_CASE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.USE_CASE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.USE_CASE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.USE_CASE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.USE_CASE__NAME : + return getName(); + case UMLPackage.USE_CASE__VISIBILITY : + return getVisibility(); + case UMLPackage.USE_CASE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.USE_CASE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.USE_CASE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.USE_CASE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.USE_CASE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.USE_CASE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.USE_CASE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.USE_CASE__MEMBER : + return getMembers(); + case UMLPackage.USE_CASE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.USE_CASE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.USE_CASE__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.USE_CASE__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.USE_CASE__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.USE_CASE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.USE_CASE__PACKAGE : + return getPackage(); + case UMLPackage.USE_CASE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.USE_CASE__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.USE_CASE__GENERALIZATION : + return getGeneralizations(); + case UMLPackage.USE_CASE__POWERTYPE_EXTENT : + return getPowertypeExtents(); + case UMLPackage.USE_CASE__FEATURE : + return getFeatures(); + case UMLPackage.USE_CASE__INHERITED_MEMBER : + return getInheritedMembers(); + case UMLPackage.USE_CASE__REDEFINED_CLASSIFIER : + return getRedefinedClassifiers(); + case UMLPackage.USE_CASE__GENERAL : + return getGenerals(); + case UMLPackage.USE_CASE__OWNED_USE_CASE : + return getOwnedUseCases(); + case UMLPackage.USE_CASE__USE_CASE : + return getUseCases(); + case UMLPackage.USE_CASE__SUBSTITUTION : + return getSubstitutions(); + case UMLPackage.USE_CASE__ATTRIBUTE : + return getAttributes(); + case UMLPackage.USE_CASE__REPRESENTATION : + return getRepresentation(); + case UMLPackage.USE_CASE__COLLABORATION_USE : + return getCollaborationUses(); + case UMLPackage.USE_CASE__OWNED_SIGNATURE : + return getOwnedSignature(); + case UMLPackage.USE_CASE__OWNED_BEHAVIOR : + return getOwnedBehaviors(); + case UMLPackage.USE_CASE__CLASSIFIER_BEHAVIOR : + return getClassifierBehavior(); + case UMLPackage.USE_CASE__INTERFACE_REALIZATION : + return getInterfaceRealizations(); + case UMLPackage.USE_CASE__OWNED_TRIGGER : + return getOwnedTriggers(); + case UMLPackage.USE_CASE__INCLUDE : + return getIncludes(); + case UMLPackage.USE_CASE__EXTEND : + return getExtends(); + case UMLPackage.USE_CASE__EXTENSION_POINT : + return getExtensionPoints(); + case UMLPackage.USE_CASE__SUBJECT : + return getSubjects(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.USE_CASE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__NAME : + setName((String) newValue); + return; + case UMLPackage.USE_CASE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.USE_CASE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.USE_CASE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.USE_CASE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.USE_CASE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.USE_CASE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.USE_CASE__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.USE_CASE__GENERALIZATION : + getGeneralizations().clear(); + getGeneralizations().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + getPowertypeExtents().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__INHERITED_MEMBER : + getInheritedMembers().clear(); + getInheritedMembers().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + getRedefinedClassifiers().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__GENERAL : + getGenerals().clear(); + getGenerals().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + getOwnedUseCases().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__USE_CASE : + getUseCases().clear(); + getUseCases().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__SUBSTITUTION : + getSubstitutions().clear(); + getSubstitutions().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__REPRESENTATION : + setRepresentation((CollaborationUse) newValue); + return; + case UMLPackage.USE_CASE__COLLABORATION_USE : + getCollaborationUses().clear(); + getCollaborationUses().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) newValue); + return; + case UMLPackage.USE_CASE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + getOwnedBehaviors().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) newValue); + return; + case UMLPackage.USE_CASE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + getInterfaceRealizations().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + getOwnedTriggers().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__INCLUDE : + getIncludes().clear(); + getIncludes().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__EXTEND : + getExtends().clear(); + getExtends().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__EXTENSION_POINT : + getExtensionPoints().clear(); + getExtensionPoints().addAll((Collection) newValue); + return; + case UMLPackage.USE_CASE__SUBJECT : + getSubjects().clear(); + getSubjects().addAll((Collection) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.USE_CASE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.USE_CASE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.USE_CASE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.USE_CASE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.USE_CASE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.USE_CASE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.USE_CASE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.USE_CASE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.USE_CASE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.USE_CASE__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.USE_CASE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.USE_CASE__PACKAGE : + setPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.USE_CASE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.USE_CASE__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.USE_CASE__GENERALIZATION : + getGeneralizations().clear(); + return; + case UMLPackage.USE_CASE__POWERTYPE_EXTENT : + getPowertypeExtents().clear(); + return; + case UMLPackage.USE_CASE__INHERITED_MEMBER : + getInheritedMembers().clear(); + return; + case UMLPackage.USE_CASE__REDEFINED_CLASSIFIER : + getRedefinedClassifiers().clear(); + return; + case UMLPackage.USE_CASE__GENERAL : + getGenerals().clear(); + return; + case UMLPackage.USE_CASE__OWNED_USE_CASE : + getOwnedUseCases().clear(); + return; + case UMLPackage.USE_CASE__USE_CASE : + getUseCases().clear(); + return; + case UMLPackage.USE_CASE__SUBSTITUTION : + getSubstitutions().clear(); + return; + case UMLPackage.USE_CASE__REPRESENTATION : + setRepresentation((CollaborationUse) null); + return; + case UMLPackage.USE_CASE__COLLABORATION_USE : + getCollaborationUses().clear(); + return; + case UMLPackage.USE_CASE__OWNED_SIGNATURE : + setOwnedSignature((RedefinableTemplateSignature) null); + return; + case UMLPackage.USE_CASE__OWNED_BEHAVIOR : + getOwnedBehaviors().clear(); + return; + case UMLPackage.USE_CASE__CLASSIFIER_BEHAVIOR : + setClassifierBehavior((Behavior) null); + return; + case UMLPackage.USE_CASE__INTERFACE_REALIZATION : + getInterfaceRealizations().clear(); + return; + case UMLPackage.USE_CASE__OWNED_TRIGGER : + getOwnedTriggers().clear(); + return; + case UMLPackage.USE_CASE__INCLUDE : + getIncludes().clear(); + return; + case UMLPackage.USE_CASE__EXTEND : + getExtends().clear(); + return; + case UMLPackage.USE_CASE__EXTENSION_POINT : + getExtensionPoints().clear(); + return; + case UMLPackage.USE_CASE__SUBJECT : + getSubjects().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.USE_CASE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.USE_CASE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.USE_CASE__OWNER : + return isSetOwner(); + case UMLPackage.USE_CASE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.USE_CASE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.USE_CASE__NAME : + String name = eVirtualIsSet(UMLPackage.USE_CASE__NAME) + ? (String) eVirtualGet(UMLPackage.USE_CASE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.USE_CASE__VISIBILITY : + return eVirtualIsSet(UMLPackage.USE_CASE__VISIBILITY) + && eVirtualGet(UMLPackage.USE_CASE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.USE_CASE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.USE_CASE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.USE_CASE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.USE_CASE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.USE_CASE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.USE_CASE__NAME_EXPRESSION) != null; + case UMLPackage.USE_CASE__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.USE_CASE__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.USE_CASE__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.USE_CASE__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.USE_CASE__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.USE_CASE__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.USE_CASE__MEMBER : + return isSetMembers(); + case UMLPackage.USE_CASE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.USE_CASE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.USE_CASE__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.USE_CASE__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.USE_CASE__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.USE_CASE__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.USE_CASE__TEMPLATE_PARAMETER) != null; + case UMLPackage.USE_CASE__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.USE_CASE__PACKAGE : + return getPackage() != null; + case UMLPackage.USE_CASE__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.USE_CASE__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.USE_CASE__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.USE_CASE__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.USE_CASE__GENERALIZATION : + List generalization = (List) eVirtualGet(UMLPackage.USE_CASE__GENERALIZATION); + return generalization != null && !generalization.isEmpty(); + case UMLPackage.USE_CASE__POWERTYPE_EXTENT : + List powertypeExtent = (List) eVirtualGet(UMLPackage.USE_CASE__POWERTYPE_EXTENT); + return powertypeExtent != null && !powertypeExtent.isEmpty(); + case UMLPackage.USE_CASE__FEATURE : + return isSetFeatures(); + case UMLPackage.USE_CASE__INHERITED_MEMBER : + return !getInheritedMembers().isEmpty(); + case UMLPackage.USE_CASE__REDEFINED_CLASSIFIER : + List redefinedClassifier = (List) eVirtualGet(UMLPackage.USE_CASE__REDEFINED_CLASSIFIER); + return redefinedClassifier != null + && !redefinedClassifier.isEmpty(); + case UMLPackage.USE_CASE__GENERAL : + return !getGenerals().isEmpty(); + case UMLPackage.USE_CASE__OWNED_USE_CASE : + List ownedUseCase = (List) eVirtualGet(UMLPackage.USE_CASE__OWNED_USE_CASE); + return ownedUseCase != null && !ownedUseCase.isEmpty(); + case UMLPackage.USE_CASE__USE_CASE : + List useCase = (List) eVirtualGet(UMLPackage.USE_CASE__USE_CASE); + return useCase != null && !useCase.isEmpty(); + case UMLPackage.USE_CASE__SUBSTITUTION : + List substitution = (List) eVirtualGet(UMLPackage.USE_CASE__SUBSTITUTION); + return substitution != null && !substitution.isEmpty(); + case UMLPackage.USE_CASE__ATTRIBUTE : + return isSetAttributes(); + case UMLPackage.USE_CASE__REPRESENTATION : + return eVirtualGet(UMLPackage.USE_CASE__REPRESENTATION) != null; + case UMLPackage.USE_CASE__COLLABORATION_USE : + List collaborationUse = (List) eVirtualGet(UMLPackage.USE_CASE__COLLABORATION_USE); + return collaborationUse != null && !collaborationUse.isEmpty(); + case UMLPackage.USE_CASE__OWNED_SIGNATURE : + return eVirtualGet(UMLPackage.USE_CASE__OWNED_SIGNATURE) != null; + case UMLPackage.USE_CASE__OWNED_BEHAVIOR : + List ownedBehavior = (List) eVirtualGet(UMLPackage.USE_CASE__OWNED_BEHAVIOR); + return ownedBehavior != null && !ownedBehavior.isEmpty(); + case UMLPackage.USE_CASE__CLASSIFIER_BEHAVIOR : + return eVirtualGet(UMLPackage.USE_CASE__CLASSIFIER_BEHAVIOR) != null; + case UMLPackage.USE_CASE__INTERFACE_REALIZATION : + List interfaceRealization = (List) eVirtualGet(UMLPackage.USE_CASE__INTERFACE_REALIZATION); + return interfaceRealization != null + && !interfaceRealization.isEmpty(); + case UMLPackage.USE_CASE__OWNED_TRIGGER : + List ownedTrigger = (List) eVirtualGet(UMLPackage.USE_CASE__OWNED_TRIGGER); + return ownedTrigger != null && !ownedTrigger.isEmpty(); + case UMLPackage.USE_CASE__INCLUDE : + List include = (List) eVirtualGet(UMLPackage.USE_CASE__INCLUDE); + return include != null && !include.isEmpty(); + case UMLPackage.USE_CASE__EXTEND : + List extend = (List) eVirtualGet(UMLPackage.USE_CASE__EXTEND); + return extend != null && !extend.isEmpty(); + case UMLPackage.USE_CASE__EXTENSION_POINT : + List extensionPoint = (List) eVirtualGet(UMLPackage.USE_CASE__EXTENSION_POINT); + return extensionPoint != null && !extensionPoint.isEmpty(); + case UMLPackage.USE_CASE__SUBJECT : + List subject = (List) eVirtualGet(UMLPackage.USE_CASE__SUBJECT); + return subject != null && !subject.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.eINSTANCE.getUseCase_Include()) + || eIsSet(UMLPackage.eINSTANCE.getUseCase_Extend()) + || eIsSet(UMLPackage.eINSTANCE.getUseCase_ExtensionPoint()); + } + +} //UseCaseImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java new file mode 100644 index 00000000..ec9de4e3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java @@ -0,0 +1,545 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValuePinImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.ObjectNodeOrderingKind; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValuePin; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ValuePinOperations; + +/** + * + * An implementation of the model object 'Value Pin'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ValuePinImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public class ValuePinImpl + extends InputPinImpl + implements ValuePin { + + /** + * + * + * @generated + */ + protected ValuePinImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getValuePin(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getValue() { + ValueSpecification value = (ValueSpecification) eVirtualGet(UMLPackage.VALUE_PIN__VALUE); + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(ValueSpecification newValue, + NotificationChain msgs) { + Object oldValue = eVirtualSet(UMLPackage.VALUE_PIN__VALUE, newValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.VALUE_PIN__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(ValueSpecification newValue) { + ValueSpecification value = (ValueSpecification) eVirtualGet(UMLPackage.VALUE_PIN__VALUE); + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.VALUE_PIN__VALUE, null, + msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.VALUE_PIN__VALUE, null, + msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VALUE_PIN__VALUE, newValue, newValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createValue(EClass eClass) { + ValueSpecification newValue = (ValueSpecification) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public boolean validateCompatibleType(DiagnosticChain diagnostics, + Map context) { + return ValuePinOperations.validateCompatibleType(this, diagnostics, + context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.VALUE_PIN__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_PIN__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_PIN__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VALUE_PIN__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.VALUE_PIN__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_PIN__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE, msgs); + case UMLPackage.VALUE_PIN__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.VALUE_PIN__ACTIVITY, msgs); + case UMLPackage.VALUE_PIN__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_PIN__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VALUE_PIN__UPPER_BOUND : + return basicSetUpperBound(null, msgs); + case UMLPackage.VALUE_PIN__VALUE : + return basicSetValue(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_PIN__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.VALUE_PIN__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.VALUE_PIN__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.VALUE_PIN__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.VALUE_PIN__NAME : + return getName(); + case UMLPackage.VALUE_PIN__VISIBILITY : + return getVisibility(); + case UMLPackage.VALUE_PIN__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.VALUE_PIN__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.VALUE_PIN__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.VALUE_PIN__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.VALUE_PIN__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VALUE_PIN__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.VALUE_PIN__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.VALUE_PIN__OUTGOING : + return getOutgoings(); + case UMLPackage.VALUE_PIN__IN_GROUP : + return getInGroups(); + case UMLPackage.VALUE_PIN__IN_PARTITION : + return getInPartitions(); + case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.VALUE_PIN__ACTIVITY : + return getActivity(); + case UMLPackage.VALUE_PIN__INCOMING : + return getIncomings(); + case UMLPackage.VALUE_PIN__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.VALUE_PIN__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.VALUE_PIN__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.VALUE_PIN__ORDERING : + return getOrdering(); + case UMLPackage.VALUE_PIN__IS_CONTROL_TYPE : + return isControlType() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VALUE_PIN__UPPER_BOUND : + return getUpperBound(); + case UMLPackage.VALUE_PIN__IN_STATE : + return getInStates(); + case UMLPackage.VALUE_PIN__SELECTION : + if (resolve) + return getSelection(); + return basicGetSelection(); + case UMLPackage.VALUE_PIN__IS_CONTROL : + return isControl() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VALUE_PIN__VALUE : + return getValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_PIN__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__NAME : + setName((String) newValue); + return; + case UMLPackage.VALUE_PIN__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.VALUE_PIN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.VALUE_PIN__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VALUE_PIN__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.VALUE_PIN__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.VALUE_PIN__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__TYPE : + setType((Type) newValue); + return; + case UMLPackage.VALUE_PIN__ORDERING : + setOrdering((ObjectNodeOrderingKind) newValue); + return; + case UMLPackage.VALUE_PIN__IS_CONTROL_TYPE : + setIsControlType(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VALUE_PIN__UPPER_BOUND : + setUpperBound((ValueSpecification) newValue); + return; + case UMLPackage.VALUE_PIN__IN_STATE : + getInStates().clear(); + getInStates().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_PIN__SELECTION : + setSelection((Behavior) newValue); + return; + case UMLPackage.VALUE_PIN__IS_CONTROL : + setIsControl(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VALUE_PIN__VALUE : + setValue((ValueSpecification) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_PIN__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.VALUE_PIN__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.VALUE_PIN__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.VALUE_PIN__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.VALUE_PIN__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.VALUE_PIN__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.VALUE_PIN__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.VALUE_PIN__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.VALUE_PIN__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.VALUE_PIN__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.VALUE_PIN__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.VALUE_PIN__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.VALUE_PIN__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.VALUE_PIN__TYPE : + setType((Type) null); + return; + case UMLPackage.VALUE_PIN__ORDERING : + setOrdering(ORDERING_EDEFAULT); + return; + case UMLPackage.VALUE_PIN__IS_CONTROL_TYPE : + setIsControlType(IS_CONTROL_TYPE_EDEFAULT); + return; + case UMLPackage.VALUE_PIN__UPPER_BOUND : + setUpperBound((ValueSpecification) null); + return; + case UMLPackage.VALUE_PIN__IN_STATE : + getInStates().clear(); + return; + case UMLPackage.VALUE_PIN__SELECTION : + setSelection((Behavior) null); + return; + case UMLPackage.VALUE_PIN__IS_CONTROL : + setIsControl(IS_CONTROL_EDEFAULT); + return; + case UMLPackage.VALUE_PIN__VALUE : + setValue((ValueSpecification) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_PIN__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.VALUE_PIN__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.VALUE_PIN__OWNER : + return isSetOwner(); + case UMLPackage.VALUE_PIN__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.VALUE_PIN__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.VALUE_PIN__NAME : + String name = eVirtualIsSet(UMLPackage.VALUE_PIN__NAME) + ? (String) eVirtualGet(UMLPackage.VALUE_PIN__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.VALUE_PIN__VISIBILITY : + return eVirtualIsSet(UMLPackage.VALUE_PIN__VISIBILITY) + && eVirtualGet(UMLPackage.VALUE_PIN__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.VALUE_PIN__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.VALUE_PIN__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.VALUE_PIN__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.VALUE_PIN__NAMESPACE : + return isSetNamespace(); + case UMLPackage.VALUE_PIN__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.VALUE_PIN__NAME_EXPRESSION) != null; + case UMLPackage.VALUE_PIN__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.VALUE_PIN__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.VALUE_PIN__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.VALUE_PIN__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.VALUE_PIN__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.VALUE_PIN__IN_GROUP : + return isSetInGroups(); + case UMLPackage.VALUE_PIN__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.VALUE_PIN__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.VALUE_PIN__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.VALUE_PIN__ACTIVITY : + return getActivity() != null; + case UMLPackage.VALUE_PIN__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.VALUE_PIN__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.VALUE_PIN__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.VALUE_PIN__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.VALUE_PIN__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.VALUE_PIN__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.VALUE_PIN__TYPE : + return eVirtualGet(UMLPackage.VALUE_PIN__TYPE) != null; + case UMLPackage.VALUE_PIN__ORDERING : + return eVirtualIsSet(UMLPackage.VALUE_PIN__ORDERING) + && eVirtualGet(UMLPackage.VALUE_PIN__ORDERING) != ORDERING_EDEFAULT; + case UMLPackage.VALUE_PIN__IS_CONTROL_TYPE : + return ((eFlags & IS_CONTROL_TYPE_EFLAG) != 0) != IS_CONTROL_TYPE_EDEFAULT; + case UMLPackage.VALUE_PIN__UPPER_BOUND : + return eVirtualGet(UMLPackage.VALUE_PIN__UPPER_BOUND) != null; + case UMLPackage.VALUE_PIN__IN_STATE : + List inState = (List) eVirtualGet(UMLPackage.VALUE_PIN__IN_STATE); + return inState != null && !inState.isEmpty(); + case UMLPackage.VALUE_PIN__SELECTION : + return eVirtualGet(UMLPackage.VALUE_PIN__SELECTION) != null; + case UMLPackage.VALUE_PIN__IS_CONTROL : + return ((eFlags & IS_CONTROL_EFLAG) != 0) != IS_CONTROL_EDEFAULT; + case UMLPackage.VALUE_PIN__VALUE : + return eVirtualGet(UMLPackage.VALUE_PIN__VALUE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //ValuePinImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java new file mode 100644 index 00000000..9e1b49fe --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java @@ -0,0 +1,654 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValueSpecificationActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.ValueSpecificationAction; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ValueSpecificationActionOperations; + +/** + * + * An implementation of the model object 'Value Specification Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl#getOutputs Output}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl#getValue Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl#getResult Result}
  • + *
+ *

+ * + * @generated + */ +public class ValueSpecificationActionImpl + extends ActionImpl + implements ValueSpecificationAction { + + /** + * + * + * @generated + */ + protected ValueSpecificationActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getValueSpecificationAction(); + } + + /** + * + * + * @generated + */ + public List getOutputs() { + List output = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__OUTPUT); + if (output == null) { + eVirtualSet(UMLPackage.VALUE_SPECIFICATION_ACTION__OUTPUT, + output = new DerivedUnionEObjectEList(OutputPin.class, this, + UMLPackage.VALUE_SPECIFICATION_ACTION__OUTPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getValueSpecificationAction_Result()})); + } + return output; + } + + /** + * + * + * @generated + */ + public ValueSpecification getValue() { + ValueSpecification value = (ValueSpecification) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE); + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(ValueSpecification newValue, + NotificationChain msgs) { + Object oldValue = eVirtualSet( + UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE, newValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(ValueSpecification newValue) { + ValueSpecification value = (ValueSpecification) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE); + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE, null, + msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE, null, + msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE, newValue, + newValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createValue(EClass eClass) { + ValueSpecification newValue = (ValueSpecification) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public OutputPin getResult() { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT); + return result; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetResult(OutputPin newResult, + NotificationChain msgs) { + Object oldResult = eVirtualSet( + UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT, newResult); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT, + oldResult == EVIRTUAL_NO_VALUE + ? null + : oldResult, newResult); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setResult(OutputPin newResult) { + OutputPin result = (OutputPin) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT); + if (newResult != result) { + NotificationChain msgs = null; + if (result != null) + msgs = ((InternalEObject) result).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT, null, + msgs); + if (newResult != null) + msgs = ((InternalEObject) newResult).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT, null, + msgs); + msgs = basicSetResult(newResult, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT, newResult, + newResult)); + + } + + /** + * + * + * @generated + */ + public OutputPin createResult() { + OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin(); + setResult(newResult); + return newResult; + } + + /** + * + * + * @generated + */ + public boolean validateCompatibleType(DiagnosticChain diagnostics, + Map context) { + return ValueSpecificationActionOperations.validateCompatibleType(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return ValueSpecificationActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.VALUE_SPECIFICATION_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE : + return basicSetValue(null, msgs); + case UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT : + return basicSetResult(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME : + return getName(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__INPUT : + return getInputs(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__CONTEXT : + return getContext(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE : + return getValue(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT : + return getResult(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE : + setValue((ValueSpecification) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT : + setResult((OutputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE : + setValue((ValueSpecification) null); + return; + case UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT : + setResult((OutputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.VALUE_SPECIFICATION_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.VALUE_SPECIFICATION_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.VALUE_SPECIFICATION_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.VALUE_SPECIFICATION_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.VALUE_SPECIFICATION_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.VALUE_SPECIFICATION_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE : + return eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE) != null; + case UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT : + return eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetOutputs() { + return super.isSetOutputs() + || eIsSet(UMLPackage.eINSTANCE.getValueSpecificationAction_Result()); + } + +} //ValueSpecificationActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java new file mode 100644 index 00000000..333112ea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValueSpecificationImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.ValueSpecificationOperations; + +/** + * + * An implementation of the model object 'Value Specification'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationImpl#getType Type}
  • + *
+ *

+ * + * @generated + */ +public abstract class ValueSpecificationImpl + extends PackageableElementImpl + implements ValueSpecification { + + /** + * + * + * @generated + */ + protected ValueSpecificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getValueSpecification(); + } + + /** + * + * + * @generated + */ + public Type getType() { + Type type = (Type) eVirtualGet(UMLPackage.VALUE_SPECIFICATION__TYPE); + if (type != null && type.eIsProxy()) { + Type oldType = type; + type = (Type) eResolveProxy((InternalEObject) type); + if (type != oldType) { + eVirtualSet(UMLPackage.VALUE_SPECIFICATION__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.VALUE_SPECIFICATION__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public Type basicGetType() { + return (Type) eVirtualGet(UMLPackage.VALUE_SPECIFICATION__TYPE); + } + + /** + * + * + * @generated + */ + public void setType(Type newType) { + Type type = newType; + Object oldType = eVirtualSet(UMLPackage.VALUE_SPECIFICATION__TYPE, type); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VALUE_SPECIFICATION__TYPE, + oldType == EVIRTUAL_NO_VALUE + ? null + : oldType, type)); + + } + + /** + * + * + * @generated + */ + public boolean isComputable() { + return ValueSpecificationOperations.isComputable(this); + } + + /** + * + * + * @generated + */ + public int integerValue() { + return ValueSpecificationOperations.integerValue(this); + } + + /** + * + * + * @generated + */ + public boolean booleanValue() { + return ValueSpecificationOperations.booleanValue(this); + } + + /** + * + * + * @generated + */ + public String stringValue() { + return ValueSpecificationOperations.stringValue(this); + } + + /** + * + * + * @generated + */ + public int unlimitedValue() { + return ValueSpecificationOperations.unlimitedValue(this); + } + + /** + * + * + * @generated + */ + public boolean isNull() { + return ValueSpecificationOperations.isNull(this); + } + + /** + * + * + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ValueSpecificationOperations.isCompatibleWith(this, p); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.VALUE_SPECIFICATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.VALUE_SPECIFICATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.VALUE_SPECIFICATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.VALUE_SPECIFICATION__NAME : + return getName(); + case UMLPackage.VALUE_SPECIFICATION__VISIBILITY : + return getVisibility(); + case UMLPackage.VALUE_SPECIFICATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.VALUE_SPECIFICATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.VALUE_SPECIFICATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.VALUE_SPECIFICATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.VALUE_SPECIFICATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.VALUE_SPECIFICATION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__NAME : + setName((String) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.VALUE_SPECIFICATION__TYPE : + setType((Type) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.VALUE_SPECIFICATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.VALUE_SPECIFICATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.VALUE_SPECIFICATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.VALUE_SPECIFICATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.VALUE_SPECIFICATION__TYPE : + setType((Type) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VALUE_SPECIFICATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.VALUE_SPECIFICATION__OWNER : + return isSetOwner(); + case UMLPackage.VALUE_SPECIFICATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION__NAME : + String name = eVirtualIsSet(UMLPackage.VALUE_SPECIFICATION__NAME) + ? (String) eVirtualGet(UMLPackage.VALUE_SPECIFICATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.VALUE_SPECIFICATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.VALUE_SPECIFICATION__VISIBILITY) + && eVirtualGet(UMLPackage.VALUE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.VALUE_SPECIFICATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.VALUE_SPECIFICATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.VALUE_SPECIFICATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.VALUE_SPECIFICATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.VALUE_SPECIFICATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.VALUE_SPECIFICATION__NAME_EXPRESSION) != null; + case UMLPackage.VALUE_SPECIFICATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.VALUE_SPECIFICATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.VALUE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.VALUE_SPECIFICATION__TYPE : + return eVirtualGet(UMLPackage.VALUE_SPECIFICATION__TYPE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == TypedElement.class) { + switch (derivedFeatureID) { + case UMLPackage.VALUE_SPECIFICATION__TYPE : + return UMLPackage.TYPED_ELEMENT__TYPE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == TypedElement.class) { + switch (baseFeatureID) { + case UMLPackage.TYPED_ELEMENT__TYPE : + return UMLPackage.VALUE_SPECIFICATION__TYPE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //ValueSpecificationImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java new file mode 100644 index 00000000..29fe7342 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VariableActionImpl.java,v 1.1 2005/11/14 22:26:04 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VariableAction; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.VariableActionOperations; + +/** + * + * An implementation of the model object 'Variable Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableActionImpl#getVariable Variable}
  • + *
+ *

+ * + * @generated + */ +public abstract class VariableActionImpl + extends ActionImpl + implements VariableAction { + + /** + * + * + * @generated + */ + protected VariableActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getVariableAction(); + } + + /** + * + * + * @generated + */ + public Variable getVariable() { + Variable variable = (Variable) eVirtualGet(UMLPackage.VARIABLE_ACTION__VARIABLE); + if (variable != null && variable.eIsProxy()) { + Variable oldVariable = variable; + variable = (Variable) eResolveProxy((InternalEObject) variable); + if (variable != oldVariable) { + eVirtualSet(UMLPackage.VARIABLE_ACTION__VARIABLE, variable); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.VARIABLE_ACTION__VARIABLE, oldVariable, + variable)); + } + } + return variable; + } + + /** + * + * + * @generated + */ + public Variable basicGetVariable() { + return (Variable) eVirtualGet(UMLPackage.VARIABLE_ACTION__VARIABLE); + } + + /** + * + * + * @generated + */ + public void setVariable(Variable newVariable) { + Variable variable = newVariable; + Object oldVariable = eVirtualSet(UMLPackage.VARIABLE_ACTION__VARIABLE, + variable); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE_ACTION__VARIABLE, + oldVariable == EVIRTUAL_NO_VALUE + ? null + : oldVariable, variable)); + + } + + /** + * + * + * @generated + */ + public boolean validateScopeOfVariable(DiagnosticChain diagnostics, + Map context) { + return VariableActionOperations.validateScopeOfVariable(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.VARIABLE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.VARIABLE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.VARIABLE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.VARIABLE_ACTION__NAME : + return getName(); + case UMLPackage.VARIABLE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.VARIABLE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.VARIABLE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.VARIABLE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.VARIABLE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.VARIABLE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VARIABLE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.VARIABLE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.VARIABLE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.VARIABLE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.VARIABLE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.VARIABLE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.VARIABLE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.VARIABLE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.VARIABLE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.VARIABLE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.VARIABLE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.VARIABLE_ACTION__INPUT : + return getInputs(); + case UMLPackage.VARIABLE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.VARIABLE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.VARIABLE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.VARIABLE_ACTION__VARIABLE : + if (resolve) + return getVariable(); + return basicGetVariable(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.VARIABLE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.VARIABLE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.VARIABLE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VARIABLE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.VARIABLE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.VARIABLE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE_ACTION__VARIABLE : + setVariable((Variable) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.VARIABLE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.VARIABLE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.VARIABLE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.VARIABLE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.VARIABLE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.VARIABLE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.VARIABLE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.VARIABLE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.VARIABLE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.VARIABLE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.VARIABLE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.VARIABLE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.VARIABLE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.VARIABLE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.VARIABLE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.VARIABLE_ACTION__VARIABLE : + setVariable((Variable) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.VARIABLE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.VARIABLE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.VARIABLE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.VARIABLE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.VARIABLE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.VARIABLE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.VARIABLE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.VARIABLE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.VARIABLE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.VARIABLE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.VARIABLE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.VARIABLE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.VARIABLE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.VARIABLE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.VARIABLE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.VARIABLE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.VARIABLE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.VARIABLE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.VARIABLE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.VARIABLE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.VARIABLE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.VARIABLE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.VARIABLE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.VARIABLE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.VARIABLE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.VARIABLE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.VARIABLE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.VARIABLE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.VARIABLE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.VARIABLE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.VARIABLE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.VARIABLE_ACTION__VARIABLE : + return eVirtualGet(UMLPackage.VARIABLE_ACTION__VARIABLE) != null; + } + return eDynamicIsSet(eFeature); + } + +} //VariableActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java new file mode 100644 index 00000000..7c34b3ea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java @@ -0,0 +1,1050 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VariableImpl.java,v 1.1 2005/11/14 22:26:05 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.MultiplicityElementOperations; +import org.eclipse.uml2.uml.internal.operations.VariableOperations; + +/** + * + * An implementation of the model object 'Variable'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getOwnedElements Owned Element}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#isOrdered Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#isUnique Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getUpper Upper}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getLower Lower}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getUpperValue Upper Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getLowerValue Lower Value}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getActivityScope Activity Scope}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getScope Scope}
  • + *
+ *

+ * + * @generated + */ +public class VariableImpl + extends TypedElementImpl + implements Variable { + + /** + * The default value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_ORDERED_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isOrdered() Is Ordered}' attribute. + * + * + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final int IS_ORDERED_EFLAG = 1 << 8; + + /** + * The default value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final boolean IS_UNIQUE_EDEFAULT = true; + + /** + * The flag representing the value of the '{@link #isUnique() Is Unique}' attribute. + * + * + * @see #isUnique() + * @generated + * @ordered + */ + protected static final int IS_UNIQUE_EFLAG = 1 << 9; + + /** + * The default value of the '{@link #getUpper() Upper}' attribute. + * + * + * @see #getUpper() + * @generated + * @ordered + */ + protected static final int UPPER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getLower() Lower}' attribute. + * + * + * @see #getLower() + * @generated + * @ordered + */ + protected static final int LOWER_EDEFAULT = 1; + + /** + * + * + * @generated + */ + protected VariableImpl() { + super(); + eFlags |= IS_UNIQUE_EFLAG; + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getVariable(); + } + + /** + * + * + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.VARIABLE__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.VARIABLE__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.VARIABLE__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE + .getMultiplicityElement_UpperValue(), + UMLPackage.eINSTANCE + .getMultiplicityElement_LowerValue()})); + } + return ownedElement; + } + + /** + * + * + * @generated + */ + public boolean isOrdered() { + return (eFlags & IS_ORDERED_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsOrdered(boolean newIsOrdered) { + boolean oldIsOrdered = (eFlags & IS_ORDERED_EFLAG) != 0; + if (newIsOrdered) + eFlags |= IS_ORDERED_EFLAG; + else + eFlags &= ~IS_ORDERED_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE__IS_ORDERED, oldIsOrdered, newIsOrdered)); + + } + + /** + * + * + * @generated + */ + public boolean isUnique() { + return (eFlags & IS_UNIQUE_EFLAG) != 0; + } + + /** + * + * + * @generated + */ + public void setIsUnique(boolean newIsUnique) { + boolean oldIsUnique = (eFlags & IS_UNIQUE_EFLAG) != 0; + if (newIsUnique) + eFlags |= IS_UNIQUE_EFLAG; + else + eFlags &= ~IS_UNIQUE_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE__IS_UNIQUE, oldIsUnique, newIsUnique)); + + } + + /** + * + * + * @generated + */ + public int getUpper() { + // TODO: implement this method to return the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setUpper(int newUpper) { + // TODO: implement this method to set the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + public ValueSpecification getUpperValue() { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.VARIABLE__UPPER_VALUE); + return upperValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpperValue( + ValueSpecification newUpperValue, NotificationChain msgs) { + Object oldUpperValue = eVirtualSet(UMLPackage.VARIABLE__UPPER_VALUE, + newUpperValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.VARIABLE__UPPER_VALUE, + oldUpperValue == EVIRTUAL_NO_VALUE + ? null + : oldUpperValue, newUpperValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setUpperValue(ValueSpecification newUpperValue) { + ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.VARIABLE__UPPER_VALUE); + if (newUpperValue != upperValue) { + NotificationChain msgs = null; + if (upperValue != null) + msgs = ((InternalEObject) upperValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.VARIABLE__UPPER_VALUE, + null, msgs); + if (newUpperValue != null) + msgs = ((InternalEObject) newUpperValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.VARIABLE__UPPER_VALUE, + null, msgs); + msgs = basicSetUpperValue(newUpperValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE__UPPER_VALUE, newUpperValue, newUpperValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createUpperValue(EClass eClass) { + ValueSpecification newUpperValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setUpperValue(newUpperValue); + return newUpperValue; + } + + /** + * + * + * @generated + */ + public ValueSpecification getLowerValue() { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.VARIABLE__LOWER_VALUE); + return lowerValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLowerValue( + ValueSpecification newLowerValue, NotificationChain msgs) { + Object oldLowerValue = eVirtualSet(UMLPackage.VARIABLE__LOWER_VALUE, + newLowerValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.VARIABLE__LOWER_VALUE, + oldLowerValue == EVIRTUAL_NO_VALUE + ? null + : oldLowerValue, newLowerValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setLowerValue(ValueSpecification newLowerValue) { + ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.VARIABLE__LOWER_VALUE); + if (newLowerValue != lowerValue) { + NotificationChain msgs = null; + if (lowerValue != null) + msgs = ((InternalEObject) lowerValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.VARIABLE__LOWER_VALUE, + null, msgs); + if (newLowerValue != null) + msgs = ((InternalEObject) newLowerValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - UMLPackage.VARIABLE__LOWER_VALUE, + null, msgs); + msgs = basicSetLowerValue(newLowerValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE__LOWER_VALUE, newLowerValue, newLowerValue)); + + } + + /** + * + * + * @generated + */ + public ValueSpecification createLowerValue(EClass eClass) { + ValueSpecification newLowerValue = (ValueSpecification) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setLowerValue(newLowerValue); + return newLowerValue; + } + + /** + * + * + * @generated + */ + public Activity getActivityScope() { + if (eContainerFeatureID != UMLPackage.VARIABLE__ACTIVITY_SCOPE) + return null; + return (Activity) eContainer; + } + + /** + * + * + * @generated + */ + public void setActivityScope(Activity newActivityScope) { + if (newActivityScope != eContainer + || (eContainerFeatureID != UMLPackage.VARIABLE__ACTIVITY_SCOPE && newActivityScope != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newActivityScope)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newActivityScope != null) + msgs = ((InternalEObject) newActivityScope).eInverseAdd(this, + UMLPackage.ACTIVITY__VARIABLE, Activity.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newActivityScope, + UMLPackage.VARIABLE__ACTIVITY_SCOPE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE__ACTIVITY_SCOPE, newActivityScope, + newActivityScope)); + + } + + /** + * + * + * @generated + */ + public StructuredActivityNode getScope() { + if (eContainerFeatureID != UMLPackage.VARIABLE__SCOPE) + return null; + return (StructuredActivityNode) eContainer; + } + + /** + * + * + * @generated + */ + public void setScope(StructuredActivityNode newScope) { + if (newScope != eContainer + || (eContainerFeatureID != UMLPackage.VARIABLE__SCOPE && newScope != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newScope)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newScope != null) + msgs = ((InternalEObject) newScope).eInverseAdd(this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE, + StructuredActivityNode.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newScope, + UMLPackage.VARIABLE__SCOPE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VARIABLE__SCOPE, newScope, newScope)); + + } + + /** + * + * + * @generated + */ + public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGt0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateLowerGe0(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations.validateUpperGeLower(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationNoSideEffects( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationNoSideEffects(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationConstant( + DiagnosticChain diagnostics, Map context) { + return MultiplicityElementOperations + .validateValueSpecificationConstant(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isMultivalued() { + return MultiplicityElementOperations.isMultivalued(this); + } + + /** + * + * + * @generated + */ + public boolean includesCardinality(int C) { + return MultiplicityElementOperations.includesCardinality(this, C); + } + + /** + * + * + * @generated + */ + public boolean includesMultiplicity(MultiplicityElement M) { + return MultiplicityElementOperations.includesMultiplicity(this, M); + } + + /** + * + * + * @generated + */ + public int lowerBound() { + return MultiplicityElementOperations.lowerBound(this); + } + + /** + * + * + * @generated + */ + public int upperBound() { + return MultiplicityElementOperations.upperBound(this); + } + + /** + * + * + * @generated + */ + public boolean validateOwned(DiagnosticChain diagnostics, Map context) { + return VariableOperations.validateOwned(this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean isAccessibleBy(Action a) { + return VariableOperations.isAccessibleBy(this, a); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.VARIABLE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.VARIABLE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.VARIABLE__ACTIVITY_SCOPE, msgs); + case UMLPackage.VARIABLE__SCOPE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.VARIABLE__SCOPE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.VARIABLE__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.VARIABLE__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.VARIABLE__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VARIABLE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.VARIABLE__UPPER_VALUE : + return basicSetUpperValue(null, msgs); + case UMLPackage.VARIABLE__LOWER_VALUE : + return basicSetLowerValue(null, msgs); + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + return eBasicSetContainer(null, + UMLPackage.VARIABLE__ACTIVITY_SCOPE, msgs); + case UMLPackage.VARIABLE__SCOPE : + return eBasicSetContainer(null, UMLPackage.VARIABLE__SCOPE, + msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + return eContainer.eInverseRemove(this, + UMLPackage.ACTIVITY__VARIABLE, Activity.class, msgs); + case UMLPackage.VARIABLE__SCOPE : + return eContainer.eInverseRemove(this, + UMLPackage.STRUCTURED_ACTIVITY_NODE__VARIABLE, + StructuredActivityNode.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.VARIABLE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.VARIABLE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.VARIABLE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.VARIABLE__NAME : + return getName(); + case UMLPackage.VARIABLE__VISIBILITY : + return getVisibility(); + case UMLPackage.VARIABLE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.VARIABLE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.VARIABLE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.VARIABLE__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.VARIABLE__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.VARIABLE__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VARIABLE__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.VARIABLE__UPPER : + return new Integer(getUpper()); + case UMLPackage.VARIABLE__LOWER : + return new Integer(getLower()); + case UMLPackage.VARIABLE__UPPER_VALUE : + return getUpperValue(); + case UMLPackage.VARIABLE__LOWER_VALUE : + return getLowerValue(); + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + return getActivityScope(); + case UMLPackage.VARIABLE__SCOPE : + return getScope(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE__NAME : + setName((String) newValue); + return; + case UMLPackage.VARIABLE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.VARIABLE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.VARIABLE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.VARIABLE__TYPE : + setType((Type) newValue); + return; + case UMLPackage.VARIABLE__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VARIABLE__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.VARIABLE__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.VARIABLE__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.VARIABLE__UPPER_VALUE : + setUpperValue((ValueSpecification) newValue); + return; + case UMLPackage.VARIABLE__LOWER_VALUE : + setLowerValue((ValueSpecification) newValue); + return; + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + setActivityScope((Activity) newValue); + return; + case UMLPackage.VARIABLE__SCOPE : + setScope((StructuredActivityNode) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.VARIABLE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.VARIABLE__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.VARIABLE__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.VARIABLE__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.VARIABLE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.VARIABLE__TYPE : + setType((Type) null); + return; + case UMLPackage.VARIABLE__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.VARIABLE__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.VARIABLE__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.VARIABLE__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.VARIABLE__UPPER_VALUE : + setUpperValue((ValueSpecification) null); + return; + case UMLPackage.VARIABLE__LOWER_VALUE : + setLowerValue((ValueSpecification) null); + return; + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + setActivityScope((Activity) null); + return; + case UMLPackage.VARIABLE__SCOPE : + setScope((StructuredActivityNode) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VARIABLE__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.VARIABLE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.VARIABLE__OWNER : + return isSetOwner(); + case UMLPackage.VARIABLE__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.VARIABLE__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.VARIABLE__NAME : + String name = eVirtualIsSet(UMLPackage.VARIABLE__NAME) + ? (String) eVirtualGet(UMLPackage.VARIABLE__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.VARIABLE__VISIBILITY : + return eVirtualIsSet(UMLPackage.VARIABLE__VISIBILITY) + && eVirtualGet(UMLPackage.VARIABLE__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.VARIABLE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.VARIABLE__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.VARIABLE__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.VARIABLE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.VARIABLE__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.VARIABLE__NAME_EXPRESSION) != null; + case UMLPackage.VARIABLE__TYPE : + return eVirtualGet(UMLPackage.VARIABLE__TYPE) != null; + case UMLPackage.VARIABLE__IS_ORDERED : + return ((eFlags & IS_ORDERED_EFLAG) != 0) != IS_ORDERED_EDEFAULT; + case UMLPackage.VARIABLE__IS_UNIQUE : + return ((eFlags & IS_UNIQUE_EFLAG) != 0) != IS_UNIQUE_EDEFAULT; + case UMLPackage.VARIABLE__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.VARIABLE__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.VARIABLE__UPPER_VALUE : + return eVirtualGet(UMLPackage.VARIABLE__UPPER_VALUE) != null; + case UMLPackage.VARIABLE__LOWER_VALUE : + return eVirtualGet(UMLPackage.VARIABLE__LOWER_VALUE) != null; + case UMLPackage.VARIABLE__ACTIVITY_SCOPE : + return getActivityScope() != null; + case UMLPackage.VARIABLE__SCOPE : + return getScope() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == MultiplicityElement.class) { + switch (derivedFeatureID) { + case UMLPackage.VARIABLE__IS_ORDERED : + return UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED; + case UMLPackage.VARIABLE__IS_UNIQUE : + return UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE; + case UMLPackage.VARIABLE__UPPER : + return UMLPackage.MULTIPLICITY_ELEMENT__UPPER; + case UMLPackage.VARIABLE__LOWER : + return UMLPackage.MULTIPLICITY_ELEMENT__LOWER; + case UMLPackage.VARIABLE__UPPER_VALUE : + return UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE; + case UMLPackage.VARIABLE__LOWER_VALUE : + return UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == MultiplicityElement.class) { + switch (baseFeatureID) { + case UMLPackage.MULTIPLICITY_ELEMENT__IS_ORDERED : + return UMLPackage.VARIABLE__IS_ORDERED; + case UMLPackage.MULTIPLICITY_ELEMENT__IS_UNIQUE : + return UMLPackage.VARIABLE__IS_UNIQUE; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER : + return UMLPackage.VARIABLE__UPPER; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER : + return UMLPackage.VARIABLE__LOWER; + case UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE : + return UMLPackage.VARIABLE__UPPER_VALUE; + case UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE : + return UMLPackage.VARIABLE__LOWER_VALUE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isOrdered: "); //$NON-NLS-1$ + result.append((eFlags & IS_ORDERED_EFLAG) != 0); + result.append(", isUnique: "); //$NON-NLS-1$ + result.append((eFlags & IS_UNIQUE_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue()) + || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue()); + } + + /** + * + * + * @generated + */ + public Element basicGetOwner() { + Activity activityScope = getActivityScope(); + if (activityScope != null) { + return activityScope; + } + StructuredActivityNode scope = getScope(); + if (scope != null) { + return scope; + } + return super.basicGetOwner(); + } + + /** + * + * + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE.getVariable_ActivityScope()) + || eIsSet(UMLPackage.eINSTANCE.getVariable_Scope()); + } + +} //VariableImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java new file mode 100644 index 00000000..6e292aa6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java @@ -0,0 +1,476 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VertexImpl.java,v 1.1 2005/11/14 22:26:06 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.VertexOperations; + +/** + * + * An implementation of the model object 'Vertex'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.VertexImpl#getOutgoings Outgoing}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VertexImpl#getIncomings Incoming}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.VertexImpl#getContainer Container}
  • + *
+ *

+ * + * @generated + */ +public abstract class VertexImpl + extends NamedElementImpl + implements Vertex { + + /** + * + * + * @generated + */ + protected VertexImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getVertex(); + } + + /** + * + * + * @generated + */ + public List getOutgoings() { + List outgoing = (List) eVirtualGet(UMLPackage.VERTEX__OUTGOING); + if (outgoing == null) { + eVirtualSet(UMLPackage.VERTEX__OUTGOING, + outgoing = new EObjectWithInverseResolvingEList( + Transition.class, this, UMLPackage.VERTEX__OUTGOING, + UMLPackage.TRANSITION__SOURCE)); + } + return outgoing; + } + + /** + * + * + * @generated + */ + public Transition getOutgoing(String name) { + for (Iterator i = getOutgoings().iterator(); i.hasNext();) { + Transition outgoing = (Transition) i.next(); + if (name.equals(outgoing.getName())) { + return outgoing; + } + } + return null; + } + + /** + * + * + * @generated + */ + public List getIncomings() { + List incoming = (List) eVirtualGet(UMLPackage.VERTEX__INCOMING); + if (incoming == null) { + eVirtualSet(UMLPackage.VERTEX__INCOMING, + incoming = new EObjectWithInverseResolvingEList( + Transition.class, this, UMLPackage.VERTEX__INCOMING, + UMLPackage.TRANSITION__TARGET)); + } + return incoming; + } + + /** + * + * + * @generated + */ + public Transition getIncoming(String name) { + for (Iterator i = getIncomings().iterator(); i.hasNext();) { + Transition incoming = (Transition) i.next(); + if (name.equals(incoming.getName())) { + return incoming; + } + } + return null; + } + + /** + * + * + * @generated + */ + public Region getContainer() { + if (eContainerFeatureID != UMLPackage.VERTEX__CONTAINER) + return null; + return (Region) eContainer; + } + + /** + * + * + * @generated + */ + public void setContainer(Region newContainer) { + if (newContainer != eContainer + || (eContainerFeatureID != UMLPackage.VERTEX__CONTAINER && newContainer != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newContainer)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newContainer != null) + msgs = ((InternalEObject) newContainer).eInverseAdd(this, + UMLPackage.REGION__SUBVERTEX, Region.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newContainer, + UMLPackage.VERTEX__CONTAINER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.VERTEX__CONTAINER, newContainer, newContainer)); + + } + + /** + * + * + * @generated + */ + public StateMachine containingStatemachine() { + return VertexOperations.containingStatemachine(this); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.VERTEX__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.VERTEX__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.VERTEX__OUTGOING : + return ((InternalEList) getOutgoings()).basicAdd(otherEnd, + msgs); + case UMLPackage.VERTEX__INCOMING : + return ((InternalEList) getIncomings()).basicAdd(otherEnd, + msgs); + case UMLPackage.VERTEX__CONTAINER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.VERTEX__CONTAINER, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.VERTEX__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.VERTEX__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.VERTEX__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.VERTEX__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.VERTEX__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.VERTEX__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.VERTEX__CONTAINER : + return eBasicSetContainer(null, + UMLPackage.VERTEX__CONTAINER, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.VERTEX__CONTAINER : + return eContainer.eInverseRemove(this, + UMLPackage.REGION__SUBVERTEX, Region.class, msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VERTEX__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.VERTEX__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.VERTEX__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.VERTEX__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.VERTEX__NAME : + return getName(); + case UMLPackage.VERTEX__VISIBILITY : + return getVisibility(); + case UMLPackage.VERTEX__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.VERTEX__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.VERTEX__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.VERTEX__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.VERTEX__OUTGOING : + return getOutgoings(); + case UMLPackage.VERTEX__INCOMING : + return getIncomings(); + case UMLPackage.VERTEX__CONTAINER : + return getContainer(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VERTEX__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.VERTEX__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.VERTEX__NAME : + setName((String) newValue); + return; + case UMLPackage.VERTEX__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.VERTEX__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.VERTEX__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.VERTEX__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.VERTEX__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.VERTEX__CONTAINER : + setContainer((Region) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VERTEX__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.VERTEX__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.VERTEX__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.VERTEX__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.VERTEX__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.VERTEX__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.VERTEX__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.VERTEX__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.VERTEX__CONTAINER : + setContainer((Region) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.VERTEX__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.VERTEX__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.VERTEX__OWNER : + return isSetOwner(); + case UMLPackage.VERTEX__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.VERTEX__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.VERTEX__NAME : + String name = eVirtualIsSet(UMLPackage.VERTEX__NAME) + ? (String) eVirtualGet(UMLPackage.VERTEX__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.VERTEX__VISIBILITY : + return eVirtualIsSet(UMLPackage.VERTEX__VISIBILITY) + && eVirtualGet(UMLPackage.VERTEX__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.VERTEX__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.VERTEX__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.VERTEX__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.VERTEX__NAMESPACE : + return isSetNamespace(); + case UMLPackage.VERTEX__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.VERTEX__NAME_EXPRESSION) != null; + case UMLPackage.VERTEX__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.VERTEX__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.VERTEX__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.VERTEX__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.VERTEX__CONTAINER : + return getContainer() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public Namespace basicGetNamespace() { + Region container = getContainer(); + if (container != null) { + return container; + } + return super.basicGetNamespace(); + } + + /** + * + * + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getVertex_Container()); + } + +} //VertexImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java new file mode 100644 index 00000000..bf3f1f88 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteLinkActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Map; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.WriteLinkAction; + +import org.eclipse.uml2.uml.internal.operations.WriteLinkActionOperations; + +/** + * + * An implementation of the model object 'Write Link Action'. + * + *

+ *

+ * + * @generated + */ +public abstract class WriteLinkActionImpl + extends LinkActionImpl + implements WriteLinkAction { + + /** + * + * + * @generated + */ + protected WriteLinkActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getWriteLinkAction(); + } + + /** + * + * + * @generated + */ + public boolean validateAllowAccess(DiagnosticChain diagnostics, Map context) { + return WriteLinkActionOperations.validateAllowAccess(this, diagnostics, + context); + } + +} //WriteLinkActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java new file mode 100644 index 00000000..3ae3baed --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java @@ -0,0 +1,606 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteStructuralFeatureActionImpl.java,v 1.1 2005/11/14 22:26:02 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; +import org.eclipse.uml2.uml.WriteStructuralFeatureAction; + +import org.eclipse.uml2.uml.internal.operations.WriteStructuralFeatureActionOperations; + +/** + * + * An implementation of the model object 'Write Structural Feature Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public abstract class WriteStructuralFeatureActionImpl + extends StructuralFeatureActionImpl + implements WriteStructuralFeatureAction { + + /** + * + * + * @generated + */ + protected WriteStructuralFeatureActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getWriteStructuralFeatureAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INPUT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE + .getStructuralFeatureAction_Object(), + UMLPackage.eINSTANCE + .getWriteStructuralFeatureAction_Value()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getValue() { + InputPin value = (InputPin) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE); + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(InputPin newValue, + NotificationChain msgs) { + Object oldValue = eVirtualSet( + UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE, newValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(InputPin newValue) { + InputPin value = (InputPin) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE); + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE, + null, msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE, + null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE, newValue, + newValue)); + + } + + /** + * + * + * @generated + */ + public InputPin createValue(EClass eClass) { + InputPin newValue = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public InputPin createValue() { + InputPin newValue = UMLFactory.eINSTANCE.createInputPin(); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public boolean validateInputPin(DiagnosticChain diagnostics, Map context) { + return WriteStructuralFeatureActionOperations.validateInputPin(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return WriteStructuralFeatureActionOperations.validateMultiplicity( + this, diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer( + null, + UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY, + msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT : + return basicSetObject(null, msgs); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE : + return basicSetValue(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME : + return getName(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INPUT : + return getInputs(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + if (resolve) + return getStructuralFeature(); + return basicGetStructuralFeature(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT : + return getObject(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE : + return getValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT : + setObject((InputPin) newValue); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE : + setValue((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + setStructuralFeature((StructuralFeature) null); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT : + setObject((InputPin) null); + return; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE : + setValue((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE : + return eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE) != null; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT : + return eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__OBJECT) != null; + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE : + return eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE + .getWriteStructuralFeatureAction_Value()); + } + +} //WriteStructuralFeatureActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java new file mode 100644 index 00000000..ae9fc882 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java @@ -0,0 +1,584 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteVariableActionImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; + +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VisibilityKind; +import org.eclipse.uml2.uml.WriteVariableAction; + +import org.eclipse.uml2.uml.internal.operations.WriteVariableActionOperations; + +/** + * + * An implementation of the model object 'Write Variable Action'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.uml2.uml.internal.impl.WriteVariableActionImpl#getInputs Input}
  • + *
  • {@link org.eclipse.uml2.uml.internal.impl.WriteVariableActionImpl#getValue Value}
  • + *
+ *

+ * + * @generated + */ +public abstract class WriteVariableActionImpl + extends VariableActionImpl + implements WriteVariableAction { + + /** + * + * + * @generated + */ + protected WriteVariableActionImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getWriteVariableAction(); + } + + /** + * + * + * @generated + */ + public List getInputs() { + List input = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__INPUT); + if (input == null) { + eVirtualSet(UMLPackage.WRITE_VARIABLE_ACTION__INPUT, + input = new DerivedUnionEObjectEList(InputPin.class, this, + UMLPackage.WRITE_VARIABLE_ACTION__INPUT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getWriteVariableAction_Value()})); + } + return input; + } + + /** + * + * + * @generated + */ + public InputPin getValue() { + InputPin value = (InputPin) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__VALUE); + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(InputPin newValue, + NotificationChain msgs) { + Object oldValue = eVirtualSet(UMLPackage.WRITE_VARIABLE_ACTION__VALUE, + newValue); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.WRITE_VARIABLE_ACTION__VALUE, + oldValue == EVIRTUAL_NO_VALUE + ? null + : oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(InputPin newValue) { + InputPin value = (InputPin) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__VALUE); + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.WRITE_VARIABLE_ACTION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.WRITE_VARIABLE_ACTION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.WRITE_VARIABLE_ACTION__VALUE, newValue, newValue)); + + } + + /** + * + * + * @generated + */ + public InputPin createValue(EClass eClass) { + InputPin newValue = (InputPin) eClass.getEPackage() + .getEFactoryInstance().create(eClass); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public InputPin createValue() { + InputPin newValue = UMLFactory.eINSTANCE.createInputPin(); + setValue(newValue); + return newValue; + } + + /** + * + * + * @generated + */ + public boolean validateSameType(DiagnosticChain diagnostics, Map context) { + return WriteVariableActionOperations.validateSameType(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) { + return WriteVariableActionOperations.validateMultiplicity(this, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.WRITE_VARIABLE_ACTION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__OUTGOING : + return ((InternalEList) getOutgoings()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION : + return ((InternalEList) getInPartitions()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE : + return eBasicSetContainer(null, + UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE, + msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY : + return eBasicSetContainer(null, + UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING : + return ((InternalEList) getIncomings()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + return ((InternalEList) getInInterruptibleRegions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER : + return ((InternalEList) getHandlers()).basicRemove( + otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION : + return ((InternalEList) getLocalPreconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION : + return ((InternalEList) getLocalPostconditions()) + .basicRemove(otherEnd, msgs); + case UMLPackage.WRITE_VARIABLE_ACTION__VALUE : + return basicSetValue(null, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_VARIABLE_ACTION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.WRITE_VARIABLE_ACTION__NAME : + return getName(); + case UMLPackage.WRITE_VARIABLE_ACTION__VISIBILITY : + return getVisibility(); + case UMLPackage.WRITE_VARIABLE_ACTION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.WRITE_VARIABLE_ACTION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.WRITE_VARIABLE_ACTION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.WRITE_VARIABLE_ACTION__OUTGOING : + return getOutgoings(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_GROUP : + return getInGroups(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION : + return getInPartitions(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode(); + case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY : + return getActivity(); + case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING : + return getIncomings(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + return getInInterruptibleRegions(); + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE : + return getRedefinedNodes(); + case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER : + return getHandlers(); + case UMLPackage.WRITE_VARIABLE_ACTION__OUTPUT : + return getOutputs(); + case UMLPackage.WRITE_VARIABLE_ACTION__INPUT : + return getInputs(); + case UMLPackage.WRITE_VARIABLE_ACTION__CONTEXT : + return getContext(); + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION : + return getLocalPreconditions(); + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION : + return getLocalPostconditions(); + case UMLPackage.WRITE_VARIABLE_ACTION__VARIABLE : + if (resolve) + return getVariable(); + return basicGetVariable(); + case UMLPackage.WRITE_VARIABLE_ACTION__VALUE : + return getValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_VARIABLE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__NAME : + setName((String) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__OUTGOING : + getOutgoings().clear(); + getOutgoings().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION : + getInPartitions().clear(); + getInPartitions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY : + setActivity((Activity) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING : + getIncomings().clear(); + getIncomings().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + getInInterruptibleRegions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + getRedefinedNodes().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER : + getHandlers().clear(); + getHandlers().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + getLocalPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + getLocalPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__VARIABLE : + setVariable((Variable) newValue); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__VALUE : + setValue((InputPin) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_VARIABLE_ACTION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__OUTGOING : + getOutgoings().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION : + getInPartitions().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE : + setInStructuredNode((StructuredActivityNode) null); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY : + setActivity((Activity) null); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING : + getIncomings().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + getInInterruptibleRegions().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE : + getRedefinedNodes().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER : + getHandlers().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION : + getLocalPreconditions().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION : + getLocalPostconditions().clear(); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__VARIABLE : + setVariable((Variable) null); + return; + case UMLPackage.WRITE_VARIABLE_ACTION__VALUE : + setValue((InputPin) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.WRITE_VARIABLE_ACTION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNER : + return isSetOwner(); + case UMLPackage.WRITE_VARIABLE_ACTION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__NAME : + String name = eVirtualIsSet(UMLPackage.WRITE_VARIABLE_ACTION__NAME) + ? (String) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.WRITE_VARIABLE_ACTION__VISIBILITY : + return eVirtualIsSet(UMLPackage.WRITE_VARIABLE_ACTION__VISIBILITY) + && eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.WRITE_VARIABLE_ACTION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__NAME_EXPRESSION) != null; + case UMLPackage.WRITE_VARIABLE_ACTION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.WRITE_VARIABLE_ACTION__OUTGOING : + List outgoing = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__OUTGOING); + return outgoing != null && !outgoing.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_GROUP : + return isSetInGroups(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION : + List inPartition = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__IN_PARTITION); + return inPartition != null && !inPartition.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_STRUCTURED_NODE : + return getInStructuredNode() != null; + case UMLPackage.WRITE_VARIABLE_ACTION__ACTIVITY : + return getActivity() != null; + case UMLPackage.WRITE_VARIABLE_ACTION__INCOMING : + List incoming = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__INCOMING); + return incoming != null && !incoming.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION : + List inInterruptibleRegion = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__IN_INTERRUPTIBLE_REGION); + return inInterruptibleRegion != null + && !inInterruptibleRegion.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE : + List redefinedNode = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__REDEFINED_NODE); + return redefinedNode != null && !redefinedNode.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__HANDLER : + List handler = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__HANDLER); + return handler != null && !handler.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__OUTPUT : + return isSetOutputs(); + case UMLPackage.WRITE_VARIABLE_ACTION__INPUT : + return isSetInputs(); + case UMLPackage.WRITE_VARIABLE_ACTION__CONTEXT : + return getContext() != null; + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION : + List localPrecondition = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_PRECONDITION); + return localPrecondition != null + && !localPrecondition.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION : + List localPostcondition = (List) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__LOCAL_POSTCONDITION); + return localPostcondition != null + && !localPostcondition.isEmpty(); + case UMLPackage.WRITE_VARIABLE_ACTION__VARIABLE : + return eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__VARIABLE) != null; + case UMLPackage.WRITE_VARIABLE_ACTION__VALUE : + return eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__VALUE) != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public boolean isSetInputs() { + return super.isSetInputs() + || eIsSet(UMLPackage.eINSTANCE.getWriteVariableAction_Value()); + } + +} //WriteVariableActionImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore new file mode 100644 index 00000000..b079e6ac --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore @@ -0,0 +1,9574 @@ + + + + +
+ + + +
+ + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + + +
+ + + + + + + +
+ + + + +
+ + + + + +
+ + + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + + + + + +
+ + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java new file mode 100644 index 00000000..6aab3b52 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptCallActionOperations.java @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AcceptCallActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.AcceptCallAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Accept Call Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AcceptCallAction#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result Pins}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptCallAction#validateTriggerCallEvent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Trigger Call Event}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptCallAction#validateIsUnmarshall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Is Unmarshall}
  • + *
+ *

+ * + * @generated + */ +public final class AcceptCallActionOperations { + + /** + * + * + * @generated + */ + private AcceptCallActionOperations() { + super(); + } + + /** + * + * + * + * The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order. + * true + * + * @generated + */ + public static boolean validateResultPins(AcceptCallAction acceptCallAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_CALL_ACTION__RESULT_PINS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultPins", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptCallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptCallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The trigger event must be a CallEvent. + * trigger.event.oclIsKindOf(CallEvent) + * + * @generated + */ + public static boolean validateTriggerCallEvent( + AcceptCallAction acceptCallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_CALL_ACTION__TRIGGER_CALL_EVENT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTriggerCallEvent", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptCallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptCallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * isUnmrashall must be true for an AcceptCallAction. + * isUnmarshall = true + * + * @generated + */ + public static boolean validateIsUnmarshall( + AcceptCallAction acceptCallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_CALL_ACTION__IS_UNMARSHALL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateIsUnmarshall", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptCallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptCallAction})); + } + return false; + } + return true; + } + +} // AcceptCallActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java new file mode 100644 index 00000000..42e0b190 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AcceptEventActionOperations.java @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AcceptEventActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.AcceptEventAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Accept Event Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#validateNoInputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Input Pins}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#validateNoOutputPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Output Pins}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#validateTriggerEvents(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Trigger Events}
  • + *
  • {@link org.eclipse.uml2.uml.AcceptEventAction#validateIsUnmarshall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Is Unmarshall}
  • + *
+ *

+ * + * @generated + */ +public final class AcceptEventActionOperations { + + /** + * + * + * @generated + */ + private AcceptEventActionOperations() { + super(); + } + + /** + * + * + * + * AcceptEventActions may have no input pins. + * true + * + * @generated + */ + public static boolean validateNoInputPins( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_EVENT_ACTION__NO_INPUT_PINS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoInputPins", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptEventAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptEventAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction). + * true + * + * @generated + */ + public static boolean validateNoOutputPins( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_EVENT_ACTION__NO_OUTPUT_PINS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoOutputPins", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptEventAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptEventAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * If the trigger events are all TimeEvents, there is exactly one output pin. + * true + * + * @generated + */ + public static boolean validateTriggerEvents( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_EVENT_ACTION__TRIGGER_EVENTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTriggerEvents", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptEventAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptEventAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute. + * true + * + * @generated + */ + public static boolean validateIsUnmarshall( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACCEPT_EVENT_ACTION__IS_UNMARSHALL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateIsUnmarshall", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(acceptEventAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptEventAction})); + } + return false; + } + return true; + } + +} // AcceptEventActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionExecutionSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionExecutionSpecificationOperations.java new file mode 100644 index 00000000..d6eb21e7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionExecutionSpecificationOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionExecutionSpecificationOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActionExecutionSpecification; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Action Execution Specification' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActionExecutionSpecification#validateActionReferenced(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Action Referenced}
  • + *
+ *

+ * + * @generated + */ +public final class ActionExecutionSpecificationOperations { + + /** + * + * + * @generated + */ + private ActionExecutionSpecificationOperations() { + super(); + } + + /** + * + * + * + * The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence. + * true + * + * @generated + */ + public static boolean validateActionReferenced( + ActionExecutionSpecification actionExecutionSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTION_EXECUTION_SPECIFICATION__ACTION_REFERENCED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateActionReferenced", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actionExecutionSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{actionExecutionSpecification})); + } + return false; + } + return true; + } + +} // ActionExecutionSpecificationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java new file mode 100644 index 00000000..7f116115 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActionInputPinOperations.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActionInputPinOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActionInputPin; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Action Input Pin' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActionInputPin#validateOneOutputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Output Pin}
  • + *
  • {@link org.eclipse.uml2.uml.ActionInputPin#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Pin}
  • + *
  • {@link org.eclipse.uml2.uml.ActionInputPin#validateNoControlOrDataFlow(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Control Or Data Flow}
  • + *
+ *

+ * + * @generated + */ +public final class ActionInputPinOperations { + + /** + * + * + * @generated + */ + private ActionInputPinOperations() { + super(); + } + + /** + * + * + * + * The fromAction of an action input pin must have exactly one output pin. + * true + * + * @generated + */ + public static boolean validateOneOutputPin(ActionInputPin actionInputPin, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTION_INPUT_PIN__ONE_OUTPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneOutputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actionInputPin, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{actionInputPin})); + } + return false; + } + return true; + } + + /** + * + * + * + * The fromAction of an action input pin must only have action input pins as input pins. + * true + * + * @generated + */ + public static boolean validateInputPin(ActionInputPin actionInputPin, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTION_INPUT_PIN__INPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actionInputPin, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{actionInputPin})); + } + return false; + } + return true; + } + + /** + * + * + * + * The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins. + * true + * + * @generated + */ + public static boolean validateNoControlOrDataFlow( + ActionInputPin actionInputPin, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTION_INPUT_PIN__NO_CONTROL_OR_DATA_FLOW, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoControlOrDataFlow", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actionInputPin, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{actionInputPin})); + } + return false; + } + return true; + } + +} // ActionInputPinOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityEdgeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityEdgeOperations.java new file mode 100644 index 00000000..91398a55 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityEdgeOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityEdgeOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActivityEdge; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Activity Edge' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#validateSourceAndTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Source And Target}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Owned}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityEdge#validateStructuredNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Structured Node}
  • + *
+ *

+ * + * @generated + */ +public final class ActivityEdgeOperations { + + /** + * + * + * @generated + */ + private ActivityEdgeOperations() { + super(); + } + + /** + * + * + * + * The source and target of an edge must be in the same activity as the edge. + * true + * + * @generated + */ + public static boolean validateSourceAndTarget(ActivityEdge activityEdge, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_EDGE__SOURCE_AND_TARGET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSourceAndTarget", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityEdge, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityEdge})); + } + return false; + } + return true; + } + + /** + * + * + * + * Activity edges may be owned only by activities or groups. + * true + * + * @generated + */ + public static boolean validateOwned(ActivityEdge activityEdge, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_EDGE__OWNED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOwned", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityEdge, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityEdge})); + } + return false; + } + return true; + } + + /** + * + * + * + * Activity edges may be owned by at most one structured node. + * true + * + * @generated + */ + public static boolean validateStructuredNode(ActivityEdge activityEdge, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_EDGE__STRUCTURED_NODE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateStructuredNode", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityEdge, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityEdge})); + } + return false; + } + return true; + } + +} // ActivityEdgeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java new file mode 100644 index 00000000..33bad43b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityGroupOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityGroupOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActivityGroup; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Activity Group' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#validateNodesAndEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Nodes And Edges}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#validateNotContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Contained}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityGroup#validateGroupOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Group Owned}
  • + *
+ *

+ * + * @generated + */ +public final class ActivityGroupOperations { + + /** + * + * + * @generated + */ + private ActivityGroupOperations() { + super(); + } + + /** + * + * + * + * All nodes and edges of the group must be in the same activity as the group. + * true + * + * @generated + */ + public static boolean validateNodesAndEdges(ActivityGroup activityGroup, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_GROUP__NODES_AND_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNodesAndEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityGroup, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityGroup})); + } + return false; + } + return true; + } + + /** + * + * + * + * No node or edge in a group may be contained by its subgroups or its containing groups, transitively. + * true + * + * @generated + */ + public static boolean validateNotContained(ActivityGroup activityGroup, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_GROUP__NOT_CONTAINED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotContained", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityGroup, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityGroup})); + } + return false; + } + return true; + } + + /** + * + * + * + * Groups may only be owned by activities or groups. + * true + * + * @generated + */ + public static boolean validateGroupOwned(ActivityGroup activityGroup, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_GROUP__GROUP_OWNED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGroupOwned", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityGroup, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityGroup})); + } + return false; + } + return true; + } + +} // ActivityGroupOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityNodeOperations.java new file mode 100644 index 00000000..f1a86945 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityNodeOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityNodeOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActivityNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Activity Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityNode#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Owned}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityNode#validateOwnedStructuredNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Owned Structured Node}
  • + *
+ *

+ * + * @generated + */ +public final class ActivityNodeOperations { + + /** + * + * + * @generated + */ + private ActivityNodeOperations() { + super(); + } + + /** + * + * + * + * Activity nodes can only be owned by activities or groups. + * true + * + * @generated + */ + public static boolean validateOwned(ActivityNode activityNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_NODE__OWNED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOwned", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * Activity nodes may be owned by at most one structured node. + * true + * + * @generated + */ + public static boolean validateOwnedStructuredNode( + ActivityNode activityNode, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_NODE__OWNED_STRUCTURED_NODE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOwnedStructuredNode", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityNode})); + } + return false; + } + return true; + } + +} // ActivityNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java new file mode 100644 index 00000000..9f7025e6 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Activity; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Activity' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Activity#validateNoSupergroups(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Supergroups}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#validateActivityParameterNode(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Activity Parameter Node}
  • + *
  • {@link org.eclipse.uml2.uml.Activity#validateAutonomous(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Autonomous}
  • + *
+ *

+ * + * @generated + */ +public final class ActivityOperations { + + /** + * + * + * @generated + */ + private ActivityOperations() { + super(); + } + + /** + * + * + * + * The groups of an activity have no supergroups. + * true + * + * @generated + */ + public static boolean validateNoSupergroups(Activity activity, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY__NO_SUPERGROUPS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoSupergroups", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activity, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activity})); + } + return false; + } + return true; + } + + /** + * + * + * + * The nodes of the activity must include one ActivityParameterNode for each parameter. + * true + * + * @generated + */ + public static boolean validateActivityParameterNode(Activity activity, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY__ACTIVITY_PARAMETER_NODE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateActivityParameterNode", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activity, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activity})); + } + return false; + } + return true; + } + + /** + * + * + * + * An activity cannot be autonomous and have a classifier or behavioral feature context at the same time. + * true + * + * @generated + */ + public static boolean validateAutonomous(Activity activity, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY__AUTONOMOUS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAutonomous", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activity, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activity})); + } + return false; + } + return true; + } + +} // ActivityOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java new file mode 100644 index 00000000..2bc9677b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityParameterNodeOperations.java @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityParameterNodeOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActivityParameterNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Activity Parameter Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityParameterNode#validateParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityParameterNode#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Edges}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Incoming Edges}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityParameterNode#validateNoOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Outgoing Edges}
  • + *
+ *

+ * + * @generated + */ +public final class ActivityParameterNodeOperations { + + /** + * + * + * @generated + */ + private ActivityParameterNodeOperations() { + super(); + } + + /** + * + * + * + * Activity parameter nodes must have parameters from the containing activity. + * true + * + * @generated + */ + public static boolean validateParameter( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARAMETER_NODE__PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityParameterNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityParameterNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of an activity parameter node is the same as the type of its parameter. + * true + * + * @generated + */ + public static boolean validateSameType( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARAMETER_NODE__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityParameterNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityParameterNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges. + * true + * + * @generated + */ + public static boolean validateNoEdges( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARAMETER_NODE__NO_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityParameterNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityParameterNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction. + * + * + * true + * + * @generated + */ + public static boolean validateNoIncomingEdges( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARAMETER_NODE__NO_INCOMING_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoIncomingEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityParameterNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityParameterNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction. + * + * + * true + * + * @generated + */ + public static boolean validateNoOutgoingEdges( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARAMETER_NODE__NO_OUTGOING_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoOutgoingEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityParameterNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityParameterNode})); + } + return false; + } + return true; + } + +} // ActivityParameterNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java new file mode 100644 index 00000000..aef44584 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActivityPartitionOperations.java @@ -0,0 +1,219 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActivityPartitionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ActivityPartition; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Activity Partition' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#validateIsDimension(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Is Dimension}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#validateNodeOrEdge(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Node Or Edge}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPart(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Represents Part}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Represents Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.ActivityPartition#validateRepresentsPartAndIsContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Represents Part And Is Contained}
  • + *
+ *

+ * + * @generated + */ +public final class ActivityPartitionOperations { + + /** + * + * + * @generated + */ + private ActivityPartitionOperations() { + super(); + } + + /** + * + * + * + * A partition with isDimension = true may not be contained by another partition. + * true + * + * @generated + */ + public static boolean validateIsDimension( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARTITION__IS_DIMENSION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateIsDimension", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityPartition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityPartition})); + } + return false; + } + return true; + } + + /** + * + * + * + * No node or edge of a partition may be in another partition in the same dimension. + * true + * + * @generated + */ + public static boolean validateNodeOrEdge( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARTITION__NODE_OR_EDGE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNodeOrEdge", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityPartition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityPartition})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier. + * true + * + * @generated + */ + public static boolean validateRepresentsPart( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARTITION__REPRESENTS_PART, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRepresentsPart", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityPartition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityPartition})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition. + * true + * + * @generated + */ + public static boolean validateRepresentsClassifier( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARTITION__REPRESENTS_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRepresentsClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityPartition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityPartition})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition. + * true + * + * @generated + */ + public static boolean validateRepresentsPartAndIsContained( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTIVITY_PARTITION__REPRESENTS_PART_AND_IS_CONTAINED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRepresentsPartAndIsContained", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(activityPartition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{activityPartition})); + } + return false; + } + return true; + } + +} // ActivityPartitionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java new file mode 100644 index 00000000..63e8b785 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ActorOperations.java @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ActorOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Actor; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Actor' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Actor#validateAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Associations}
  • + *
  • {@link org.eclipse.uml2.uml.Actor#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Have Name}
  • + *
+ *

+ * + * @generated + */ +public final class ActorOperations { + + /** + * + * + * @generated + */ + private ActorOperations() { + super(); + } + + /** + * + * + * + * An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary. + * self.ownedAttribute->forAll ( a | + * (a.association->notEmpty()) implies + * ((a.association.memberEnd.size() = 2) and + * (a.opposite.class.oclIsKindOf(UseCase) or + * (a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior)))) + * + * + * @generated + */ + public static boolean validateAssociations(Actor actor, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTOR__ASSOCIATIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociations", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actor, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{actor})); + } + return false; + } + return true; + } + + /** + * + * + * + * An actor must have a name. + * name->notEmpty() + * + * @generated + */ + public static boolean validateMustHaveName(Actor actor, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ACTOR__MUST_HAVE_NAME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustHaveName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(actor, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{actor})); + } + return false; + } + return true; + } + +} // ActorOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java new file mode 100644 index 00000000..8234a2d4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddStructuralFeatureValueActionOperations.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AddStructuralFeatureValueActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Add Structural Feature Value Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Unlimited Natural And Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class AddStructuralFeatureValueActionOperations { + + /** + * + * + * @generated + */ + private AddStructuralFeatureValueActionOperations() { + super(); + } + + /** + * + * + * + * Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + * let insertAtPins : Collection = self.insertAt in + * if self.structuralFeature.isOrdered = #false + * then insertAtPins->size() = 0 + * else let insertAtPin : InputPin= insertAt->asSequence()->first() in + * insertAtPins->size() = 1 + * and insertAtPin.type = UnlimitedNatural + * and insertAtPin.multiplicity.is(1,1)) + * endif + * + * + * @generated + */ + public static boolean validateUnlimitedNaturalAndMultiplicity( + AddStructuralFeatureValueAction addStructuralFeatureValueAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__UNLIMITED_NATURAL_AND_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUnlimitedNaturalAndMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(addStructuralFeatureValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{addStructuralFeatureValueAction})); + } + return false; + } + return true; + } + +} // AddStructuralFeatureValueActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java new file mode 100644 index 00000000..3f88e06d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AddVariableValueActionOperations.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AddVariableValueActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.AddVariableValueAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Add Variable Value Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AddVariableValueAction#validateSingleInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Single Input Pin}
  • + *
+ *

+ * + * @generated + */ +public final class AddVariableValueActionOperations { + + /** + * + * + * @generated + */ + private AddVariableValueActionOperations() { + super(); + } + + /** + * + * + * + * Actions adding values to ordered variables must have a single input pin for the insertion point with type UnlimtedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + * let insertAtPins : Collection = self.insertAt in + * if self.variable.ordering = #unordered + * then insertAtPins->size() = 0 + * else let insertAtPin : InputPin = insertAt->asSequence()->first() in + * insertAtPins->size() = 1 + * and insertAtPin.type = UnlimitedNatural + * and insertAtPin.multiplicity.is(1,1)) + * endif + * + * + * @generated + */ + public static boolean validateSingleInputPin( + AddVariableValueAction addVariableValueAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ADD_VARIABLE_VALUE_ACTION__SINGLE_INPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSingleInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(addVariableValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{addVariableValueAction})); + } + return false; + } + return true; + } + +} // AddVariableValueActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java new file mode 100644 index 00000000..b38ad26a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationClassOperations.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AssociationClassOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.AssociationClass; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Association Class' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.AssociationClass#validateCannotBeDefined(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Cannot Be Defined}
  • + *
  • {@link org.eclipse.uml2.uml.AssociationClass#allConnections() All Connections}
  • + *
+ *

+ * + * @generated + */ +public final class AssociationClassOperations { + + /** + * + * + * @generated + */ + private AssociationClassOperations() { + super(); + } + + /** + * + * + * + * An AssociationClass cannot be defined between itself and something else. + * self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self)) + * + * @generated + */ + public static boolean validateCannotBeDefined( + AssociationClass associationClass, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ASSOCIATION_CLASS__CANNOT_BE_DEFINED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotBeDefined", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(associationClass, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{associationClass})); + } + return false; + } + return true; + } + + /** + * + * + * + * The operation allConnections results in the set of all AssociationEnds of the Association. + * result = memberEnd->union ( self.parents ()->collect (p | p.allConnections () ) + * + * @generated + */ + public static List allConnections(AssociationClass associationClass) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // AssociationClassOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java new file mode 100644 index 00000000..22dac340 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/AssociationOperations.java @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: AssociationOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Association; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Association' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Association#validateSpecializedEndNumber(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Specialized End Number}
  • + *
  • {@link org.eclipse.uml2.uml.Association#validateSpecializedEndTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Specialized End Types}
  • + *
  • {@link org.eclipse.uml2.uml.Association#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Binary Associations}
  • + *
  • {@link org.eclipse.uml2.uml.Association#validateAssociationEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Association Ends}
  • + *
  • {@link org.eclipse.uml2.uml.Association#endType() End Type}
  • + *
+ *

+ * + * @generated + */ +public final class AssociationOperations { + + /** + * + * + * @generated + */ + private AssociationOperations() { + super(); + } + + /** + * + * + * + * An association specializing another association has the same number of ends as the other association. + * self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size()) + * + * @generated + */ + public static boolean validateSpecializedEndNumber(Association association, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ASSOCIATION__SPECIALIZED_END_NUMBER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSpecializedEndNumber", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(association, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{association})); + } + return false; + } + return true; + } + + /** + * + * + * + * When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end. + * true + * + * @generated + */ + public static boolean validateSpecializedEndTypes(Association association, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ASSOCIATION__SPECIALIZED_END_TYPES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSpecializedEndTypes", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(association, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{association})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only binary associations can be aggregations. + * self.memberEnd->exists(aggregation <> Aggregation::none) implies self.memberEnd->size() = 2 + * + * @generated + */ + public static boolean validateBinaryAssociations(Association association, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ASSOCIATION__BINARY_ASSOCIATIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBinaryAssociations", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(association, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{association})); + } + return false; + } + return true; + } + + /** + * + * + * + * Association ends of associations with more than two ends must be owned by the association. + * if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd) + * + * @generated + */ + public static boolean validateAssociationEnds(Association association, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ASSOCIATION__ASSOCIATION_ENDS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociationEnds", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(association, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{association})); + } + return false; + } + return true; + } + + /** + * + * + * + * endType is derived from the types of the member ends. + * result = self.memberEnd->collect(e | e.type) + * + * @generated + */ + public static List endType(Association association) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // AssociationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java new file mode 100644 index 00000000..22820c6a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehaviorOperations.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehaviorOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Behavior; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Behavior' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Behavior#validateParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Parameters}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#validateFeatureOfContextClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Feature Of Context Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#validateMustRealize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Realize}
  • + *
  • {@link org.eclipse.uml2.uml.Behavior#validateMostOneBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Most One Behaviour}
  • + *
+ *

+ * + * @generated + */ +public final class BehaviorOperations { + + /** + * + * + * @generated + */ + private BehaviorOperations() { + super(); + } + + /** + * + * + * + * The parameters of the behavior must match the parameters of the implemented behavioral feature. + * true + * + * @generated + */ + public static boolean validateParameters(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BEHAVIOR__PARAMETERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateParameters", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(behavior, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{behavior})); + } + return false; + } + return true; + } + + /** + * + * + * + * The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior. + * true + * + * @generated + */ + public static boolean validateFeatureOfContextClassifier(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BEHAVIOR__FEATURE_OF_CONTEXT_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateFeatureOfContextClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(behavior, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{behavior})); + } + return false; + } + return true; + } + + /** + * + * + * + * If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature. + * true + * + * @generated + */ + public static boolean validateMustRealize(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BEHAVIOR__MUST_REALIZE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustRealize", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(behavior, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{behavior})); + } + return false; + } + return true; + } + + /** + * + * + * + * There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior). + * true + * + * @generated + */ + public static boolean validateMostOneBehaviour(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BEHAVIOR__MOST_ONE_BEHAVIOUR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMostOneBehaviour", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(behavior, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{behavior})); + } + return false; + } + return true; + } + +} // BehaviorOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioralFeatureOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioralFeatureOperations.java new file mode 100644 index 00000000..f3c19c66 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioralFeatureOperations.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehavioralFeatureOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; + +/** + * + * A static utility class that provides operations related to 'Behavioral Feature' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BehavioralFeature#isDistinguishableFrom(org.eclipse.uml2.uml.NamedElement, org.eclipse.uml2.uml.Namespace) Is Distinguishable From}
  • + *
+ *

+ * + * @generated + */ +public final class BehavioralFeatureOperations { + + /** + * + * + * @generated + */ + private BehavioralFeatureOperations() { + super(); + } + + /** + * + * + * + * The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures. + * result = if n.oclIsKindOf(BehavioralFeature) + * then + * if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty() + * then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type)) + * else true + * endif + * else true + * endif + * + * @generated + */ + public static boolean isDistinguishableFrom( + BehavioralFeature behavioralFeature, NamedElement n, Namespace ns) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // BehavioralFeatureOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioredClassifierOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioredClassifierOperations.java new file mode 100644 index 00000000..05952e01 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BehavioredClassifierOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BehavioredClassifierOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.BehavioredClassifier; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Behaviored Classifier' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BehavioredClassifier#validateClassBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Class Behavior}
  • + *
+ *

+ * + * @generated + */ +public final class BehavioredClassifierOperations { + + /** + * + * + * @generated + */ + private BehavioredClassifierOperations() { + super(); + } + + /** + * + * + * + * If a behavior is classifier behavior, it does not have a specification. + * self.classifierBehavior.notEmpty() implies self.specification.isEmpty() + * + * @generated + */ + public static boolean validateClassBehavior( + BehavioredClassifier behavioredClassifier, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BEHAVIORED_CLASSIFIER__CLASS_BEHAVIOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClassBehavior", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(behavioredClassifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{behavioredClassifier})); + } + return false; + } + return true; + } + +} // BehavioredClassifierOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java new file mode 100644 index 00000000..e4884e5a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/BroadcastSignalActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: BroadcastSignalActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.BroadcastSignalAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Broadcast Signal Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.BroadcastSignalAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Number And Order}
  • + *
  • {@link org.eclipse.uml2.uml.BroadcastSignalAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Ordering Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class BroadcastSignalActionOperations { + + /** + * + * + * @generated + */ + private BroadcastSignalActionOperations() { + super(); + } + + /** + * + * + * + * The number and order of argument pins must be the same as the number and order of attributes in the signal. + * true + * + * @generated + */ + public static boolean validateNumberAndOrder( + BroadcastSignalAction broadcastSignalAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BROADCAST_SIGNAL_ACTION__NUMBER_AND_ORDER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNumberAndOrder", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(broadcastSignalAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{broadcastSignalAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + * true + * + * @generated + */ + public static boolean validateTypeOrderingMultiplicity( + BroadcastSignalAction broadcastSignalAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.BROADCAST_SIGNAL_ACTION__TYPE_ORDERING_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(broadcastSignalAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{broadcastSignalAction})); + } + return false; + } + return true; + } + +} // BroadcastSignalActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java new file mode 100644 index 00000000..6f2f74be --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallActionOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CallAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Call Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallAction#validateSynchronousCall(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Synchronous Call}
  • + *
  • {@link org.eclipse.uml2.uml.CallAction#validateNumberAndOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Number And Order}
  • + *
  • {@link org.eclipse.uml2.uml.CallAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Ordering Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class CallActionOperations { + + /** + * + * + * @generated + */ + private CallActionOperations() { + super(); + } + + /** + * + * + * + * Only synchronous call actions can have result pins. + * true + * + * @generated + */ + public static boolean validateSynchronousCall(CallAction callAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_ACTION__SYNCHRONOUS_CALL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSynchronousCall", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order. + * true + * + * @generated + */ + public static boolean validateNumberAndOrder(CallAction callAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_ACTION__NUMBER_AND_ORDER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNumberAndOrder", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature. + * true + * + * @generated + */ + public static boolean validateTypeOrderingMultiplicity( + CallAction callAction, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_ACTION__TYPE_ORDERING_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callAction})); + } + return false; + } + return true; + } + +} // CallActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallBehaviorActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallBehaviorActionOperations.java new file mode 100644 index 00000000..476a4a7d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallBehaviorActionOperations.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallBehaviorActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CallBehaviorAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Call Behavior Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallBehaviorAction#validateArgumentPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Argument Pin Equal Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.CallBehaviorAction#validateResultPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result Pin Equal Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.CallBehaviorAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Ordering Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class CallBehaviorActionOperations { + + /** + * + * + * @generated + */ + private CallBehaviorActionOperations() { + super(); + } + + /** + * + * + * + * The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal. + * true + * + * @generated + */ + public static boolean validateArgumentPinEqualParameter( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_BEHAVIOR_ACTION__ARGUMENT_PIN_EQUAL_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateArgumentPinEqualParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callBehaviorAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callBehaviorAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal. + * true + * + * @generated + */ + public static boolean validateResultPinEqualParameter( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_BEHAVIOR_ACTION__RESULT_PIN_EQUAL_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultPinEqualParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callBehaviorAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callBehaviorAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior. + * + * + * true + * + * @generated + */ + public static boolean validateTypeOrderingMultiplicity( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_BEHAVIOR_ACTION__TYPE_ORDERING_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callBehaviorAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callBehaviorAction})); + } + return false; + } + return true; + } + +} // CallBehaviorActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java new file mode 100644 index 00000000..40d8b14d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CallOperationActionOperations.java @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CallOperationActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CallOperationAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Call Operation Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CallOperationAction#validateArgumentPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Argument Pin Equal Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.CallOperationAction#validateResultPinEqualParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result Pin Equal Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.CallOperationAction#validateTypeTargetPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Target Pin}
  • + *
  • {@link org.eclipse.uml2.uml.CallOperationAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Ordering Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class CallOperationActionOperations { + + /** + * + * + * @generated + */ + private CallOperationActionOperations() { + super(); + } + + /** + * + * + * + * The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal. + * true + * + * @generated + */ + public static boolean validateArgumentPinEqualParameter( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_OPERATION_ACTION__ARGUMENT_PIN_EQUAL_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateArgumentPinEqualParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callOperationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callOperationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal. + * true + * + * @generated + */ + public static boolean validateResultPinEqualParameter( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_OPERATION_ACTION__RESULT_PIN_EQUAL_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultPinEqualParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callOperationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callOperationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the target pin must be the same as the type that owns the operation. + * true + * + * @generated + */ + public static boolean validateTypeTargetPin( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_OPERATION_ACTION__TYPE_TARGET_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeTargetPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callOperationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callOperationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation. + * + * + * true + * + * @generated + */ + public static boolean validateTypeOrderingMultiplicity( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CALL_OPERATION_ACTION__TYPE_ORDERING_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(callOperationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callOperationAction})); + } + return false; + } + return true; + } + +} // CallOperationActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassOperations.java new file mode 100644 index 00000000..26a26c1d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassOperations.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Class' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Class#validatePassiveClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Passive Class}
  • + *
  • {@link org.eclipse.uml2.uml.Class#inherit(java.util.List) Inherit}
  • + *
+ *

+ * + * @generated + */ +public final class ClassOperations { + + /** + * + * + * @generated + */ + private ClassOperations() { + super(); + } + + /** + * + * + * + * A passive class may not own receptions. + * not self.isActive implies self.ownedReception.isEmpty() + * + * @generated + */ + public static boolean validatePassiveClass( + org.eclipse.uml2.uml.Class class_, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASS__PASSIVE_CLASS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePassiveClass", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(class_, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{class_})); + } + return false; + } + return true; + } + + /** + * + * + * + * The inherit operation is overridden to exclude redefined properties. + * result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + * + * @generated + */ + public static List inherit(org.eclipse.uml2.uml.Class class_, List inhs) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ClassOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java new file mode 100644 index 00000000..4bc313bf --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierOperations.java @@ -0,0 +1,411 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassifierOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.NamedElement; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Classifier' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Classifier#validateNoCyclesInGeneralization(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Cycles In Generalization}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#validateSpecializeType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Specialize Type}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#validateGeneralizationHierarchies(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Generalization Hierarchies}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#validateSpecialize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Specialize}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Maps To Generalization Set}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#maySpecializeType(org.eclipse.uml2.uml.Classifier) May Specialize Type}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getGenerals() Get Generals}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#getInheritedMembers() Get Inherited Members}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#allFeatures() All Features}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#parents() Parents}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#inheritableMembers(org.eclipse.uml2.uml.Classifier) Inheritable Members}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#hasVisibilityOf(org.eclipse.uml2.uml.NamedElement) Has Visibility Of}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#conformsTo(org.eclipse.uml2.uml.Classifier) Conforms To}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#inherit(java.util.List) Inherit}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#maySpecializeType() May Specialize Type}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#allParents() All Parents}
  • + *
  • {@link org.eclipse.uml2.uml.Classifier#isTemplate() Is Template}
  • + *
+ *

+ * + * @generated + */ +public final class ClassifierOperations { + + /** + * + * + * @generated + */ + private ClassifierOperations() { + super(); + } + + /** + * + * + * + * Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + * not self.allParents()->includes(self) + * + * @generated + */ + public static boolean validateNoCyclesInGeneralization( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASSIFIER__NO_CYCLES_IN_GENERALIZATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoCyclesInGeneralization", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(classifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{classifier})); + } + return false; + } + return true; + } + + /** + * + * + * + * A classifier may only specialize classifiers of a valid type. + * self.parents()->forAll(c | self.maySpecializeType(c)) + * + * @generated + */ + public static boolean validateSpecializeType(Classifier classifier, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASSIFIER__SPECIALIZE_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSpecializeType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(classifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{classifier})); + } + return false; + } + return true; + } + + /** + * + * + * + * Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. + * not self.allParents()->includes(self) + * + * @generated + */ + public static boolean validateGeneralizationHierarchies( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASSIFIER__GENERALIZATION_HIERARCHIES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGeneralizationHierarchies", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(classifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{classifier})); + } + return false; + } + return true; + } + + /** + * + * + * + * A classifier may only specialize classifiers of a valid type. + * self.parents()->forAll(c | self.maySpecializeType(c)) + * + * @generated + */ + public static boolean validateSpecialize(Classifier classifier, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASSIFIER__SPECIALIZE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSpecialize", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(classifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{classifier})); + } + return false; + } + return true; + } + + /** + * + * + * + * The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses. + * true + * + * @generated + */ + public static boolean validateMapsToGeneralizationSet( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASSIFIER__MAPS_TO_GENERALIZATION_SET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMapsToGeneralizationSet", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(classifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{classifier})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + * result = self.oclIsKindOf(c.oclType) + * + * @generated + */ + public static boolean maySpecializeType(Classifier classifier, Classifier c) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The general classifiers are the classifiers referenced by the generalization relationships. + * result = self.parents() + * + * @generated + */ + public static List getGenerals(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The inheritedMember association is derived by inheriting the inheritable members of the parents. + * result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self)) + * + * @generated + */ + public static List getInheritedMembers(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. + * result = member->select(oclIsKindOf(Feature)) + * + * @generated + */ + public static List allFeatures(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query parents() gives all of the immediate ancestors of a generalized Classifier. + * result = generalization.general + * + * @generated + */ + public static List parents(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. + * c.allParents()->includes(self) + * result = member->select(m | c.hasVisibilityOf(m)) + * + * @generated + */ + public static List inheritableMembers(Classifier classifier, Classifier c) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. + * self.allParents()->collect(c | c.member)->includes(n) + * result = if (self.inheritedMember->includes(n)) then (n.visibility <> #private) else true + * + * @generated + */ + public static boolean hasVisibilityOf(Classifier classifier, NamedElement n) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. + * result = (self=other) or (self.allParents()->includes(other)) + * + * @generated + */ + public static boolean conformsTo(Classifier classifier, Classifier other) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The inherit operation is overridden to exclude redefined properties. + * The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. + * result = inhs + * + * @generated + */ + public static List inherit(Classifier classifier, List inhs) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. + * result = self.oclIsKindOf(c.oclType) + * + * @generated + */ + public static boolean maySpecializeType(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. + * result = self.parents()->union(self.parents()->collect(p | p.allParents()) + * + * @generated + */ + public static List allParents(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isTemplate() returns whether this templateable element is actually a template. + * result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate()) + * + * @generated + */ + public static boolean isTemplate(Classifier classifier) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ClassifierOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierTemplateParameterOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierTemplateParameterOperations.java new file mode 100644 index 00000000..a18e6091 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClassifierTemplateParameterOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClassifierTemplateParameterOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ClassifierTemplateParameter; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Classifier Template Parameter' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ClassifierTemplateParameter#validateConstrainingClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Constraining Classifier}
  • + *
+ *

+ * + * @generated + */ +public final class ClassifierTemplateParameterOperations { + + /** + * + * + * @generated + */ + private ClassifierTemplateParameterOperations() { + super(); + } + + /** + * + * + * + * If "allowSubstitutable" is true, then there must be a constrainingClassifier. + * allowSubstitutable implies constrainingClassifier->notEmpty() + * + * @generated + */ + public static boolean validateConstrainingClassifier( + ClassifierTemplateParameter classifierTemplateParameter, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConstrainingClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(classifierTemplateParameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{classifierTemplateParameter})); + } + return false; + } + return true; + } + +} // ClassifierTemplateParameterOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java new file mode 100644 index 00000000..6ffbb1ee --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClauseOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClauseOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Clause; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Clause' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Clause#validateDeciderOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Decider Output}
  • + *
  • {@link org.eclipse.uml2.uml.Clause#validateBodyOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Body Output}
  • + *
+ *

+ * + * @generated + */ +public final class ClauseOperations { + + /** + * + * + * @generated + */ + private ClauseOperations() { + super(); + } + + /** + * + * + * + * The decider output pin must be for the test body or a node contained by the test body as a structured node. + * true + * + * @generated + */ + public static boolean validateDeciderOutput(Clause clause, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLAUSE__DECIDER_OUTPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeciderOutput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(clause, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{clause})); + } + return false; + } + return true; + } + + /** + * + * + * + * The bodyOutput pins are output pins on actions in the body of the clause. + * true + * + * @generated + */ + public static boolean validateBodyOutput(Clause clause, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLAUSE__BODY_OUTPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBodyOutput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(clause, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{clause})); + } + return false; + } + return true; + } + +} // ClauseOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearAssociationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearAssociationActionOperations.java new file mode 100644 index 00000000..f8ea5e2b --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ClearAssociationActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ClearAssociationActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ClearAssociationAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Clear Association Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ClearAssociationAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.ClearAssociationAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class ClearAssociationActionOperations { + + /** + * + * + * @generated + */ + private ClearAssociationActionOperations() { + super(); + } + + /** + * + * + * + * The type of the input pin must be the same as the type of at least one of the association ends of the association. + * self.association->exists(end.type = self.object.type) + * + * @generated + */ + public static boolean validateSameType( + ClearAssociationAction clearAssociationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLEAR_ASSOCIATION_ACTION__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(clearAssociationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{clearAssociationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + ClearAssociationAction clearAssociationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CLEAR_ASSOCIATION_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(clearAssociationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{clearAssociationAction})); + } + return false; + } + return true; + } + +} // ClearAssociationActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java new file mode 100644 index 00000000..a9f59ced --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CollaborationUseOperations.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CollaborationUseOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CollaborationUse; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Collaboration Use' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CollaborationUse#validateClientElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Client Elements}
  • + *
  • {@link org.eclipse.uml2.uml.CollaborationUse#validateEveryRole(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Every Role}
  • + *
  • {@link org.eclipse.uml2.uml.CollaborationUse#validateConnectors(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Connectors}
  • + *
+ *

+ * + * @generated + */ +public final class CollaborationUseOperations { + + /** + * + * + * @generated + */ + private CollaborationUseOperations() { + super(); + } + + /** + * + * + * + * All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible. + * true + * + * @generated + */ + public static boolean validateClientElements( + CollaborationUse collaborationUse, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COLLABORATION_USE__CLIENT_ELEMENTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClientElements", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(collaborationUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{collaborationUse})); + } + return false; + } + return true; + } + + /** + * + * + * + * Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation. + * true + * + * @generated + */ + public static boolean validateEveryRole(CollaborationUse collaborationUse, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COLLABORATION_USE__EVERY_ROLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEveryRole", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(collaborationUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{collaborationUse})); + } + return false; + } + return true; + } + + /** + * + * + * + * The connectors in the classifier connect according to the connectors in the collaboration + * true + * + * @generated + */ + public static boolean validateConnectors(CollaborationUse collaborationUse, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COLLABORATION_USE__CONNECTORS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConnectors", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(collaborationUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{collaborationUse})); + } + return false; + } + return true; + } + +} // CollaborationUseOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java new file mode 100644 index 00000000..e32da710 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CombinedFragmentOperations.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CombinedFragmentOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CombinedFragment; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Combined Fragment' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#validateOptLoopBreakNeg(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Opt Loop Break Neg}
  • + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#validateMinintAndMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Minint And Maxint}
  • + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#validateBreak(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Break}
  • + *
  • {@link org.eclipse.uml2.uml.CombinedFragment#validateConsiderAndIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Consider And Ignore}
  • + *
+ *

+ * + * @generated + */ +public final class CombinedFragmentOperations { + + /** + * + * + * @generated + */ + private CombinedFragmentOperations() { + super(); + } + + /** + * + * + * + * If the interactionOperator is opt, loop, break, or neg there must be exactly one operand + * true + * + * @generated + */ + public static boolean validateOptLoopBreakNeg( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COMBINED_FRAGMENT__OPT_LOOP_BREAK_NEG, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOptLoopBreakNeg", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(combinedFragment, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{combinedFragment})); + } + return false; + } + return true; + } + + /** + * + * + * + * The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop. + * true + * + * @generated + */ + public static boolean validateMinintAndMaxint( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COMBINED_FRAGMENT__MININT_AND_MAXINT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMinintAndMaxint", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(combinedFragment, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{combinedFragment})); + } + return false; + } + return true; + } + + /** + * + * + * + * If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment. + * true + * + * @generated + */ + public static boolean validateBreak(CombinedFragment combinedFragment, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COMBINED_FRAGMENT__BREAK, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBreak", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(combinedFragment, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{combinedFragment})); + } + return false; + } + return true; + } + + /** + * + * + * + * The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment + * ((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment) + * + * @generated + */ + public static boolean validateConsiderAndIgnore( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COMBINED_FRAGMENT__CONSIDER_AND_IGNORE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConsiderAndIgnore", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(combinedFragment, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{combinedFragment})); + } + return false; + } + return true; + } + +} // CombinedFragmentOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CommunicationPathOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CommunicationPathOperations.java new file mode 100644 index 00000000..659855e5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CommunicationPathOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CommunicationPathOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CommunicationPath; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Communication Path' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CommunicationPath#validateAssociationEnds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Association Ends}
  • + *
+ *

+ * + * @generated + */ +public final class CommunicationPathOperations { + + /** + * + * + * @generated + */ + private CommunicationPathOperations() { + super(); + } + + /** + * + * + * + * The association ends of a CommunicationPath are typed by DeploymentTargets. + * result = self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget)) + * + * @generated + */ + public static boolean validateAssociationEnds( + CommunicationPath communicationPath, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.COMMUNICATION_PATH__ASSOCIATION_ENDS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociationEnds", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(communicationPath, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{communicationPath})); + } + return false; + } + return true; + } + +} // CommunicationPathOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java new file mode 100644 index 00000000..0be6ad65 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ComponentOperations.java @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ComponentOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; + +import org.eclipse.uml2.uml.Component; + +/** + * + * A static utility class that provides operations related to 'Component' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Component#realizedInterfaces() Realized Interfaces}
  • + *
  • {@link org.eclipse.uml2.uml.Component#usedInterfaces() Used Interfaces}
  • + *
  • {@link org.eclipse.uml2.uml.Component#getRequireds() Get Requireds}
  • + *
  • {@link org.eclipse.uml2.uml.Component#getProvideds() Get Provideds}
  • + *
+ *

+ * + * @generated + */ +public final class ComponentOperations { + + /** + * + * + * @generated + */ + private ComponentOperations() { + super(); + } + + /** + * + * + * + * Utility returning the set of realized interfaces of a component: + * result = (classifier.clientDependency-> + * select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))-> + * collect(dependency|dependency.client) + * + * @generated + */ + public static List realizedInterfaces(Component component) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * Utility returning the set of used interfaces of a component: + * result = (classifier.supplierDependency-> + * select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))-> + * collect(dependency|dependency.supplier) + * + * @generated + */ + public static List usedInterfaces(Component component) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * result = let usedInterfaces = UsedInterfaces(self) and + * + * let realizingClassifierUsedInterfaces = UsedInterfaces(self.realizingClassifier) and + * + * let typesOfUsedPorts = self.ownedPort.required in + * + * ((usedInterfaces->union(realizingClassifierUsedInterfaces))-> + * + * union(typesOfUsedPorts))->asSet() + * + * @generated + */ + public static List getRequireds(Component component) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * result = let implementedInterfaces = self.implementation->collect(impl|impl.contract) and + * + * let realizedInterfaces = RealizedInterfaces(self) and + * + * let realizingClassifierInterfaces = RealizedInterfaces(self.realizingClassifier) and + * + * let typesOfRequiredPorts = self.ownedPort.provided in + * + * (((implementedInterfaces->union(realizedInterfaces)->union(realizingClassifierInterfaces))-> + * + * union(typesOfRequiredPorts))->asSet() + * + * @generated + */ + public static List getProvideds(Component component) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ComponentOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java new file mode 100644 index 00000000..f85af335 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConditionalNodeOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConditionalNodeOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ConditionalNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Conditional Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConditionalNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result No Incoming}
  • + *
+ *

+ * + * @generated + */ +public final class ConditionalNodeOperations { + + /** + * + * + * @generated + */ + private ConditionalNodeOperations() { + super(); + } + + /** + * + * + * + * The result output pins have no incoming edges. + * true + * + * @generated + */ + public static boolean validateResultNoIncoming( + ConditionalNode conditionalNode, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONDITIONAL_NODE__RESULT_NO_INCOMING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultNoIncoming", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(conditionalNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{conditionalNode})); + } + return false; + } + return true; + } + +} // ConditionalNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java new file mode 100644 index 00000000..e834e38c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectionPointReferenceOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectionPointReferenceOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ConnectionPointReference; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Connection Point Reference' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConnectionPointReference#validateEntryPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Entry Pseudostates}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectionPointReference#validateExitPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Exit Pseudostates}
  • + *
+ *

+ * + * @generated + */ +public final class ConnectionPointReferenceOperations { + + /** + * + * + * @generated + */ + private ConnectionPointReferenceOperations() { + super(); + } + + /** + * + * + * + * The entry Pseudostates must be Pseudostates with kind entryPoint. + * entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint) + * + * @generated + */ + public static boolean validateEntryPseudostates( + ConnectionPointReference connectionPointReference, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTION_POINT_REFERENCE__ENTRY_PSEUDOSTATES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEntryPseudostates", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connectionPointReference, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connectionPointReference})); + } + return false; + } + return true; + } + + /** + * + * + * + * The exit Pseudostates must be Pseudostates with kind exitPoint. + * exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint) + * + * @generated + */ + public static boolean validateExitPseudostates( + ConnectionPointReference connectionPointReference, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTION_POINT_REFERENCE__EXIT_PSEUDOSTATES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateExitPseudostates", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connectionPointReference, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connectionPointReference})); + } + return false; + } + return true; + } + +} // ConnectionPointReferenceOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java new file mode 100644 index 00000000..13a3968e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorEndOperations.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectorEndOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ConnectorEnd; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Connector End' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#validatePartWithPortEmpty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Part With Port Empty}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#validateRoleAndPartWithPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Role And Part With Port}
  • + *
  • {@link org.eclipse.uml2.uml.ConnectorEnd#validateSelfPartWithPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Self Part With Port}
  • + *
+ *

+ * + * @generated + */ +public final class ConnectorEndOperations { + + /** + * + * + * @generated + */ + private ConnectorEndOperations() { + super(); + } + + /** + * + * + * + * The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector. + * true + * + * @generated + */ + public static boolean validateMultiplicity(ConnectorEnd connectorEnd, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR_END__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connectorEnd, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connectorEnd})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a connector end is attached to a port of the containing classifier, partWithPort will be empty. + * true + * + * @generated + */ + public static boolean validatePartWithPortEmpty(ConnectorEnd connectorEnd, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR_END__PART_WITH_PORT_EMPTY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePartWithPortEmpty", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connectorEnd, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connectorEnd})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a connector end references both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort. + * true + * + * @generated + */ + public static boolean validateRoleAndPartWithPort( + ConnectorEnd connectorEnd, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR_END__ROLE_AND_PART_WITH_PORT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRoleAndPartWithPort", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connectorEnd, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connectorEnd})); + } + return false; + } + return true; + } + + /** + * + * + * + * The property held in self.partWithPort must not be a Port. + * true + * + * @generated + */ + public static boolean validateSelfPartWithPort(ConnectorEnd connectorEnd, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR_END__SELF_PART_WITH_PORT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSelfPartWithPort", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connectorEnd, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connectorEnd})); + } + return false; + } + return true; + } + +} // ConnectorEndOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java new file mode 100644 index 00000000..c3161e85 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConnectorOperations.java @@ -0,0 +1,313 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConnectorOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Connector; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Connector' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Connector#validateTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Types}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Compatible}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateRoles(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Roles}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateBetweenInterfacesPorts(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Between Interfaces Ports}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateBetweenInterfacePortImplements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Between Interface Port Implements}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateBetweenInterfacePortSignature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Between Interface Port Signature}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateUnionSignatureCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Union Signature Compatible}
  • + *
  • {@link org.eclipse.uml2.uml.Connector#validateAssemblyConnector(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Assembly Connector}
  • + *
+ *

+ * + * @generated + */ +public final class ConnectorOperations { + + /** + * + * + * @generated + */ + private ConnectorOperations() { + super(); + } + + /** + * + * + * + * The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any. + * true + * + * @generated + */ + public static boolean validateTypes(Connector connector, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__TYPES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypes", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * The connectable elements attached to the ends of a connector must be compatible. + * true + * + * @generated + */ + public static boolean validateCompatible(Connector connector, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__COMPATIBLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompatible", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles. + * true + * + * @generated + */ + public static boolean validateRoles(Connector connector, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__ROLES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRoles", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * A delegation connector must only be defined between used Interfaces or Ports of the same kind, e.g. between two provided Ports or between two required Ports. + * true + * + * @generated + */ + public static boolean validateBetweenInterfacesPorts(Connector connector, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__BETWEEN_INTERFACES_PORTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBetweenInterfacesPorts", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a delegation connector is defined between a used Interface or Port and an internal Part Classifier, then that Classifier must have an 'implements' relationship to the Interface type of that Port. + * true + * + * @generated + */ + public static boolean validateBetweenInterfacePortImplements( + Connector connector, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__BETWEEN_INTERFACE_PORT_IMPLEMENTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBetweenInterfacePortImplements", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a delegation connector is defined between a source Interface or Port and a target Interface or Port, then the target Interface must support a signature compatible subset of Operations of the source Interface or Port. + * true + * + * @generated + */ + public static boolean validateBetweenInterfacePortSignature( + Connector connector, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__BETWEEN_INTERFACE_PORT_SIGNATURE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBetweenInterfacePortSignature", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * In a complete model, if a source Port has delegation connectors to a set of delegated target Ports, then the union of the Interfaces of these target Ports must be signature compatible with the Interface that types the source Port. + * true + * + * @generated + */ + public static boolean validateUnionSignatureCompatible(Connector connector, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__UNION_SIGNATURE_COMPATIBLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUnionSignatureCompatible", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + + /** + * + * + * + * An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port. + * true + * + * @generated + */ + public static boolean validateAssemblyConnector(Connector connector, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONNECTOR__ASSEMBLY_CONNECTOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssemblyConnector", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(connector, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{connector})); + } + return false; + } + return true; + } + +} // ConnectorOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java new file mode 100644 index 00000000..8abae819 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConsiderIgnoreFragmentOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConsiderIgnoreFragmentOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ConsiderIgnoreFragment; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Consider Ignore Fragment' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateConsiderOrIgnore(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Consider Or Ignore}
  • + *
  • {@link org.eclipse.uml2.uml.ConsiderIgnoreFragment#validateType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type}
  • + *
+ *

+ * + * @generated + */ +public final class ConsiderIgnoreFragmentOperations { + + /** + * + * + * @generated + */ + private ConsiderIgnoreFragmentOperations() { + super(); + } + + /** + * + * + * + * The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'. + * (interactionOperator = #consider) or (interactionOperator = #ignore) + * + * @generated + */ + public static boolean validateConsiderOrIgnore( + ConsiderIgnoreFragment considerIgnoreFragment, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSIDER_IGNORE_FRAGMENT__CONSIDER_OR_IGNORE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConsiderOrIgnore", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(considerIgnoreFragment, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{considerIgnoreFragment})); + } + return false; + } + return true; + } + + /** + * + * + * + * The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal). + * message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal)) + * + * @generated + */ + public static boolean validateType( + ConsiderIgnoreFragment considerIgnoreFragment, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSIDER_IGNORE_FRAGMENT__TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(considerIgnoreFragment, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{considerIgnoreFragment})); + } + return false; + } + return true; + } + +} // ConsiderIgnoreFragmentOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java new file mode 100644 index 00000000..6cab3a71 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ConstraintOperations.java @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ConstraintOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Constraint; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Constraint' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Constraint#validateNotApplyToSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Apply To Self}
  • + *
  • {@link org.eclipse.uml2.uml.Constraint#validateValueSpecificationBoolean(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Value Specification Boolean}
  • + *
  • {@link org.eclipse.uml2.uml.Constraint#validateBooleanValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Boolean Value}
  • + *
  • {@link org.eclipse.uml2.uml.Constraint#validateNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Side Effects}
  • + *
  • {@link org.eclipse.uml2.uml.Constraint#validateNotAppliedToSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Applied To Self}
  • + *
+ *

+ * + * @generated + */ +public final class ConstraintOperations { + + /** + * + * + * @generated + */ + private ConstraintOperations() { + super(); + } + + /** + * + * + * + * A constraint cannot be applied to itself. + * not constrainedElement->includes(self) + * + * @generated + */ + public static boolean validateNotApplyToSelf(Constraint constraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSTRAINT__NOT_APPLY_TO_SELF, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotApplyToSelf", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(constraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{constraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * The value specification for a constraint must evaluate to a Boolean value. + * self.specification().booleanValue().isOclKindOf(Boolean) + * + * @generated + */ + public static boolean validateValueSpecificationBoolean( + Constraint constraint, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSTRAINT__VALUE_SPECIFICATION_BOOLEAN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateValueSpecificationBoolean", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(constraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{constraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * The value specification for a constraint must evaluate to a Boolean value. + * true + * + * @generated + */ + public static boolean validateBooleanValue(Constraint constraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSTRAINT__BOOLEAN_VALUE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBooleanValue", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(constraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{constraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * Evaluating the value specification for a constraint must not have side effects. + * true + * + * @generated + */ + public static boolean validateNoSideEffects(Constraint constraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSTRAINT__NO_SIDE_EFFECTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoSideEffects", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(constraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{constraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * A constraint cannot be applied to itself. + * not constrainedElement->includes(self) + * + * @generated + */ + public static boolean validateNotAppliedToSelf(Constraint constraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONSTRAINT__NOT_APPLIED_TO_SELF, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotAppliedToSelf", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(constraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{constraint})); + } + return false; + } + return true; + } + +} // ConstraintOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java new file mode 100644 index 00000000..c0a85bd1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ContinuationOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ContinuationOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Continuation; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Continuation' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Continuation#validateSameName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Name}
  • + *
  • {@link org.eclipse.uml2.uml.Continuation#validateGlobal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Global}
  • + *
  • {@link org.eclipse.uml2.uml.Continuation#validateFirstOrLastInteractionFragment(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate First Or Last Interaction Fragment}
  • + *
+ *

+ * + * @generated + */ +public final class ContinuationOperations { + + /** + * + * + * @generated + */ + private ContinuationOperations() { + super(); + } + + /** + * + * + * + * Continuations with the same name may only cover the same set of Lifelines (within one Classifier). + * true + * + * @generated + */ + public static boolean validateSameName(Continuation continuation, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONTINUATION__SAME_NAME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(continuation, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{continuation})); + } + return false; + } + return true; + } + + /** + * + * + * + * Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment. + * true + * + * @generated + */ + public static boolean validateGlobal(Continuation continuation, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONTINUATION__GLOBAL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGlobal", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(continuation, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{continuation})); + } + return false; + } + return true; + } + + /** + * + * + * + * Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment. + * true + * + * @generated + */ + public static boolean validateFirstOrLastInteractionFragment( + Continuation continuation, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONTINUATION__FIRST_OR_LAST_INTERACTION_FRAGMENT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateFirstOrLastInteractionFragment", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(continuation, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{continuation})); + } + return false; + } + return true; + } + +} // ContinuationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ControlFlowOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ControlFlowOperations.java new file mode 100644 index 00000000..4e36cb94 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ControlFlowOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ControlFlowOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ControlFlow; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Control Flow' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ControlFlow#validateObjectNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Object Nodes}
  • + *
+ *

+ * + * @generated + */ +public final class ControlFlowOperations { + + /** + * + * + * @generated + */ + private ControlFlowOperations() { + super(); + } + + /** + * + * + * + * Control flows may not have object nodes at either end, except for object nodes with control type. + * true + * + * @generated + */ + public static boolean validateObjectNodes(ControlFlow controlFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CONTROL_FLOW__OBJECT_NODES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateObjectNodes", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(controlFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{controlFlow})); + } + return false; + } + return true; + } + +} // ControlFlowOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkActionOperations.java new file mode 100644 index 00000000..a55b85da --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkActionOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateLinkActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CreateLinkAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Create Link Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CreateLinkAction#validateAssociationNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Association Not Abstract}
  • + *
+ *

+ * + * @generated + */ +public final class CreateLinkActionOperations { + + /** + * + * + * @generated + */ + private CreateLinkActionOperations() { + super(); + } + + /** + * + * + * + * The association cannot be an abstract classifier. + * self.association().isAbstract = #false + * + * @generated + */ + public static boolean validateAssociationNotAbstract( + CreateLinkAction createLinkAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_LINK_ACTION__ASSOCIATION_NOT_ABSTRACT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociationNotAbstract", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createLinkAction})); + } + return false; + } + return true; + } + +} // CreateLinkActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java new file mode 100644 index 00000000..721a7b61 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateLinkObjectActionOperations.java @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateLinkObjectActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CreateLinkObjectAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Create Link Object Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateAssociationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Association Class}
  • + *
  • {@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Of Result}
  • + *
  • {@link org.eclipse.uml2.uml.CreateLinkObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class CreateLinkObjectActionOperations { + + /** + * + * + * @generated + */ + private CreateLinkObjectActionOperations() { + super(); + } + + /** + * + * + * + * The association must be an association class. + * self.association().oclIsKindOf(Class) + * + * @generated + */ + public static boolean validateAssociationClass( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_LINK_OBJECT_ACTION__ASSOCIATION_CLASS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociationClass", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createLinkObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createLinkObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the result pin must be the same as the association of the action. + * self.result.type = self.association() + * + * @generated + */ + public static boolean validateTypeOfResult( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_LINK_OBJECT_ACTION__TYPE_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createLinkObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createLinkObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_LINK_OBJECT_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createLinkObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createLinkObjectAction})); + } + return false; + } + return true; + } + +} // CreateLinkObjectActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java new file mode 100644 index 00000000..5a1c0163 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreateObjectActionOperations.java @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreateObjectActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CreateObjectAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Create Object Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Classifier Not Abstract}
  • + *
  • {@link org.eclipse.uml2.uml.CreateObjectAction#validateClassifierNotAssociationClass(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Classifier Not Association Class}
  • + *
  • {@link org.eclipse.uml2.uml.CreateObjectAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.CreateObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class CreateObjectActionOperations { + + /** + * + * + * @generated + */ + private CreateObjectActionOperations() { + super(); + } + + /** + * + * + * + * The classifier cannot be abstract. + * not (self.classifier.isAbstract = #true) + * + * @generated + */ + public static boolean validateClassifierNotAbstract( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClassifierNotAbstract", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The classifier cannot be an association class + * not self.classifier.oclIsKindOf(AssociationClass) + * + * @generated + */ + public static boolean validateClassifierNotAssociationClass( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ASSOCIATION_CLASS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClassifierNotAssociationClass", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the result pin must be the same as the classifier of the action. + * self.result.type = self.classifier + * + * @generated + */ + public static boolean validateSameType( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_OBJECT_ACTION__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATE_OBJECT_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(createObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{createObjectAction})); + } + return false; + } + return true; + } + +} // CreateObjectActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreationEventOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreationEventOperations.java new file mode 100644 index 00000000..963706a7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/CreationEventOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: CreationEventOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.CreationEvent; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Creation Event' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.CreationEvent#validateNoOccurrenceAbove(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Occurrence Above}
  • + *
+ *

+ * + * @generated + */ +public final class CreationEventOperations { + + /** + * + * + * @generated + */ + private CreationEventOperations() { + super(); + } + + /** + * + * + * + * No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand. + * true + * + * @generated + */ + public static boolean validateNoOccurrenceAbove( + CreationEvent creationEvent, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.CREATION_EVENT__NO_OCCURRENCE_ABOVE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoOccurrenceAbove", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(creationEvent, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{creationEvent})); + } + return false; + } + return true; + } + +} // CreationEventOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DataTypeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DataTypeOperations.java new file mode 100644 index 00000000..20a21667 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DataTypeOperations.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DataTypeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; + +import org.eclipse.uml2.uml.DataType; + +/** + * + * A static utility class that provides operations related to 'Data Type' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DataType#inherit(java.util.List) Inherit}
  • + *
+ *

+ * + * @generated + */ +public final class DataTypeOperations { + + /** + * + * + * @generated + */ + private DataTypeOperations() { + super(); + } + + /** + * + * + * + * The inherit operation is overridden to exclude redefined properties. + * result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh))) + * + * @generated + */ + public static List inherit(DataType dataType, List inhs) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // DataTypeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java new file mode 100644 index 00000000..572ccdf8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DecisionNodeOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DecisionNodeOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.DecisionNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Decision Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DecisionNode#validateOneIncomingEdge(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Incoming Edge}
  • + *
  • {@link org.eclipse.uml2.uml.DecisionNode#validateInputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.DecisionNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Edges}
  • + *
+ *

+ * + * @generated + */ +public final class DecisionNodeOperations { + + /** + * + * + * @generated + */ + private DecisionNodeOperations() { + super(); + } + + /** + * + * + * + * A decision node has one incoming edge. + * true + * + * @generated + */ + public static boolean validateOneIncomingEdge(DecisionNode decisionNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DECISION_NODE__ONE_INCOMING_EDGE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneIncomingEdge", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(decisionNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{decisionNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * A decision input behavior has zero or one input parameter and one output parameter. Any input parameter must be the same as or a supertype of the type of object tokens coming along the incoming edge. The behavior cannot have side effects. + * true + * + * @generated + */ + public static boolean validateInputParameter(DecisionNode decisionNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DECISION_NODE__INPUT_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(decisionNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{decisionNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * The edges coming into and out of a decision node must be either all object flows or all control flows. + * true + * + * @generated + */ + public static boolean validateEdges(DecisionNode decisionNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DECISION_NODE__EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(decisionNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{decisionNode})); + } + return false; + } + return true; + } + +} // DecisionNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java new file mode 100644 index 00000000..764d05c3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentSpecificationOperations.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentSpecificationOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.DeploymentSpecification; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Deployment Specification' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeployedElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deployed Elements}
  • + *
  • {@link org.eclipse.uml2.uml.DeploymentSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deployment Target}
  • + *
+ *

+ * + * @generated + */ +public final class DeploymentSpecificationOperations { + + /** + * + * + * @generated + */ + private DeploymentSpecificationOperations() { + super(); + } + + /** + * + * + * + * The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components). + * self.deployment->forAll (d | d.location.deployedElements->forAll (de | + * + * de.oclIsKindOf(Component))) + * + * @generated + */ + public static boolean validateDeployedElements( + DeploymentSpecification deploymentSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DEPLOYMENT_SPECIFICATION__DEPLOYED_ELEMENTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeployedElements", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(deploymentSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{deploymentSpecification})); + } + return false; + } + return true; + } + + /** + * + * + * + * The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment. + * result = self.deployment->forAll (d | d.location..oclIsKindOf(ExecutionEnvironment)) + * + * @generated + */ + public static boolean validateDeploymentTarget( + DeploymentSpecification deploymentSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_TARGET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeploymentTarget", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(deploymentSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{deploymentSpecification})); + } + return false; + } + return true; + } + +} // DeploymentSpecificationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentTargetOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentTargetOperations.java new file mode 100644 index 00000000..dd0915fd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DeploymentTargetOperations.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DeploymentTargetOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; + +import org.eclipse.uml2.uml.DeploymentTarget; + +/** + * + * A static utility class that provides operations related to 'Deployment Target' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DeploymentTarget#getDeployedElements() Get Deployed Elements}
  • + *
+ *

+ * + * @generated + */ +public final class DeploymentTargetOperations { + + /** + * + * + * @generated + */ + private DeploymentTargetOperations() { + super(); + } + + /** + * + * + * + * result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement) + * + * @generated + */ + public static List getDeployedElements(DeploymentTarget deploymentTarget) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // DeploymentTargetOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestroyObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestroyObjectActionOperations.java new file mode 100644 index 00000000..0b0af969 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestroyObjectActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestroyObjectActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.DestroyObjectAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Destroy Object Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DestroyObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.DestroyObjectAction#validateNoType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Type}
  • + *
+ *

+ * + * @generated + */ +public final class DestroyObjectActionOperations { + + /** + * + * + * @generated + */ + private DestroyObjectActionOperations() { + super(); + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.target.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + DestroyObjectAction destroyObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DESTROY_OBJECT_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(destroyObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{destroyObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The input pin has no type. + * self.target.type->size() = 0 + * + * @generated + */ + public static boolean validateNoType( + DestroyObjectAction destroyObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DESTROY_OBJECT_ACTION__NO_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(destroyObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{destroyObjectAction})); + } + return false; + } + return true; + } + +} // DestroyObjectActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestructionEventOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestructionEventOperations.java new file mode 100644 index 00000000..616ac695 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DestructionEventOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DestructionEventOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.DestructionEvent; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Destruction Event' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DestructionEvent#validateNoOccurrenceSpecificationsBelow(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Occurrence Specifications Below}
  • + *
+ *

+ * + * @generated + */ +public final class DestructionEventOperations { + + /** + * + * + * @generated + */ + private DestructionEventOperations() { + super(); + } + + /** + * + * + * + * No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand. + * true + * + * @generated + */ + public static boolean validateNoOccurrenceSpecificationsBelow( + DestructionEvent destructionEvent, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DESTRUCTION_EVENT__NO_OCCURRENCE_SPECIFICATIONS_BELOW, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoOccurrenceSpecificationsBelow", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(destructionEvent, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{destructionEvent})); + } + return false; + } + return true; + } + +} // DestructionEventOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DurationObservationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DurationObservationActionOperations.java new file mode 100644 index 00000000..d8f15360 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/DurationObservationActionOperations.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: DurationObservationActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.DurationObservationAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Duration Observation Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.DurationObservationAction#validateInputValueDuration(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Value Duration}
  • + *
  • {@link org.eclipse.uml2.uml.DurationObservationAction#getDuration() Get Duration}
  • + *
+ *

+ * + * @generated + */ +public final class DurationObservationActionOperations { + + /** + * + * + * @generated + */ + private DurationObservationActionOperations() { + super(); + } + + /** + * + * + * + * The value of a DurationObservationAction’s input must be a Duration. + * self.value.value.oclIsKindOf(Duration) + * + * @generated + */ + public static boolean validateInputValueDuration( + DurationObservationAction durationObservationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.DURATION_OBSERVATION_ACTION__INPUT_VALUE_DURATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputValueDuration", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(durationObservationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{durationObservationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * result = self.value.value.oclAsType(Duration) + * + * @generated + */ + public static Duration getDuration( + DurationObservationAction durationObservationAction) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // DurationObservationActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java new file mode 100644 index 00000000..4fd60dce --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementImportOperations.java @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ElementImportOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ElementImport; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Element Import' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ElementImport#validateVisibilityPublicOrPrivate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Visibility Public Or Private}
  • + *
  • {@link org.eclipse.uml2.uml.ElementImport#validateVisibilityOrPrivate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Visibility Or Private}
  • + *
  • {@link org.eclipse.uml2.uml.ElementImport#validateImportedElementIsPublic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Imported Element Is Public}
  • + *
  • {@link org.eclipse.uml2.uml.ElementImport#getName() Get Name}
  • + *
+ *

+ * + * @generated + */ +public final class ElementImportOperations { + + /** + * + * + * @generated + */ + private ElementImportOperations() { + super(); + } + + /** + * + * + * + * The visibility of an ElementImport is either public or private. + * self.visibility = #public or self.visibility = #private + * + * @generated + */ + public static boolean validateVisibilityPublicOrPrivate( + ElementImport elementImport, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ELEMENT_IMPORT__VISIBILITY_PUBLIC_OR_PRIVATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateVisibilityPublicOrPrivate", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(elementImport, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{elementImport})); + } + return false; + } + return true; + } + + /** + * + * + * + * The visibility of an ElementImport is either public or private. + * self.visibility = #public or self.visibility = #private + * + * @generated + */ + public static boolean validateVisibilityOrPrivate( + ElementImport elementImport, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ELEMENT_IMPORT__VISIBILITY_OR_PRIVATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateVisibilityOrPrivate", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(elementImport, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{elementImport})); + } + return false; + } + return true; + } + + /** + * + * + * + * An importedElement has either public visibility or no visibility at all. + * self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public + * + * @generated + */ + public static boolean validateImportedElementIsPublic( + ElementImport elementImport, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ELEMENT_IMPORT__IMPORTED_ELEMENT_IS_PUBLIC, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateImportedElementIsPublic", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(elementImport, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{elementImport})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace. + * result = if self.alias->notEmpty() then + * self.alias + * else + * self.importedElement.name + * endif + * + * @generated + */ + public static String getName(ElementImport elementImport) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ElementImportOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementOperations.java new file mode 100644 index 00000000..a14d71b7 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ElementOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ElementOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Element; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Element' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Element#validateNotOwnSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Own Self}
  • + *
  • {@link org.eclipse.uml2.uml.Element#validateHasOwner(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Has Owner}
  • + *
  • {@link org.eclipse.uml2.uml.Element#allOwnedElements() All Owned Elements}
  • + *
  • {@link org.eclipse.uml2.uml.Element#mustBeOwned() Must Be Owned}
  • + *
+ *

+ * + * @generated + */ +public final class ElementOperations { + + /** + * + * + * @generated + */ + private ElementOperations() { + super(); + } + + /** + * + * + * + * An element may not directly or indirectly own itself. + * not self.allOwnedElements()->includes(self) + * + * @generated + */ + public static boolean validateNotOwnSelf(Element element, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ELEMENT__NOT_OWN_SELF, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotOwnSelf", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(element, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{element})); + } + return false; + } + return true; + } + + /** + * + * + * + * Elements that must be owned must have an owner. + * self.mustBeOwned() implies owner->notEmpty() + * + * @generated + */ + public static boolean validateHasOwner(Element element, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.ELEMENT__HAS_OWNER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateHasOwner", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(element, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{element})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query allOwnedElements() gives all of the direct and indirect owned elements of an element. + * result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements())) + * + * @generated + */ + public static List allOwnedElements(Element element) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation. + * result = true + * + * @generated + */ + public static boolean mustBeOwned(Element element) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ElementOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java new file mode 100644 index 00000000..8f07138f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExceptionHandlerOperations.java @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExceptionHandlerOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ExceptionHandler; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Exception Handler' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#validateExceptionBody(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Exception Body}
  • + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#validateResultPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result Pins}
  • + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#validateOneInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Input}
  • + *
  • {@link org.eclipse.uml2.uml.ExceptionHandler#validateEdgeSourceTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Edge Source Target}
  • + *
+ *

+ * + * @generated + */ +public final class ExceptionHandlerOperations { + + /** + * + * + * @generated + */ + private ExceptionHandlerOperations() { + super(); + } + + /** + * + * + * + * The exception handler and its input object node are not the source or target of any edge. + * true + * + * @generated + */ + public static boolean validateExceptionBody( + ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXCEPTION_HANDLER__EXCEPTION_BODY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateExceptionBody", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(exceptionHandler, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{exceptionHandler})); + } + return false; + } + return true; + } + + /** + * + * + * + * The result pins of the exception handler body must correspond in number and types to the result pins of the protected node. + * true + * + * @generated + */ + public static boolean validateResultPins(ExceptionHandler exceptionHandler, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXCEPTION_HANDLER__RESULT_PINS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultPins", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(exceptionHandler, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{exceptionHandler})); + } + return false; + } + return true; + } + + /** + * + * + * + * The handler body has one input, and that input is the same as the exception input. + * true + * + * @generated + */ + public static boolean validateOneInput(ExceptionHandler exceptionHandler, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXCEPTION_HANDLER__ONE_INPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneInput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(exceptionHandler, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{exceptionHandler})); + } + return false; + } + return true; + } + + /** + * + * + * + * An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa. + * true + * + * @generated + */ + public static boolean validateEdgeSourceTarget( + ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXCEPTION_HANDLER__EDGE_SOURCE_TARGET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEdgeSourceTarget", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(exceptionHandler, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{exceptionHandler})); + } + return false; + } + return true; + } + +} // ExceptionHandlerOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExecutionSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExecutionSpecificationOperations.java new file mode 100644 index 00000000..b97b6b4c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExecutionSpecificationOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExecutionSpecificationOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ExecutionSpecification; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Execution Specification' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExecutionSpecification#validateSameLifeline(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Lifeline}
  • + *
+ *

+ * + * @generated + */ +public final class ExecutionSpecificationOperations { + + /** + * + * + * @generated + */ + private ExecutionSpecificationOperations() { + super(); + } + + /** + * + * + * + * The startEvent and the finishEvent must be on the same Lifeline + * start.lifeline = finish.lifeline + * + * @generated + */ + public static boolean validateSameLifeline( + ExecutionSpecification executionSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXECUTION_SPECIFICATION__SAME_LIFELINE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameLifeline", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(executionSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{executionSpecification})); + } + return false; + } + return true; + } + +} // ExecutionSpecificationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExpansionRegionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExpansionRegionOperations.java new file mode 100644 index 00000000..62542739 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExpansionRegionOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExpansionRegionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ExpansionRegion; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Expansion Region' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExpansionRegion#validateExpansionNodes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Expansion Nodes}
  • + *
+ *

+ * + * @generated + */ +public final class ExpansionRegionOperations { + + /** + * + * + * @generated + */ + private ExpansionRegionOperations() { + super(); + } + + /** + * + * + * + * An ExpansionRegion must have one or more argument ExpansionNodes and zero or more result ExpansionNodes. + * true + * + * @generated + */ + public static boolean validateExpansionNodes( + ExpansionRegion expansionRegion, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXPANSION_REGION__EXPANSION_NODES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateExpansionNodes", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(expansionRegion, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{expansionRegion})); + } + return false; + } + return true; + } + +} // ExpansionRegionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtendOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtendOperations.java new file mode 100644 index 00000000..11c387a3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtendOperations.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtendOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Extend; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Extend' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Extend#validateExtensionPoints(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Extension Points}
  • + *
+ *

+ * + * @generated + */ +public final class ExtendOperations { + + /** + * + * + * @generated + */ + private ExtendOperations() { + super(); + } + + /** + * + * + * + * The extension points referenced by the extend relationship must belong to the use case that is being extended. + * + * + * + * + * extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp)) + * + * @generated + */ + public static boolean validateExtensionPoints(Extend extend, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXTEND__EXTENSION_POINTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateExtensionPoints", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(extend, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{extend})); + } + return false; + } + return true; + } + +} // ExtendOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionEndOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionEndOperations.java new file mode 100644 index 00000000..ea70a018 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionEndOperations.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionEndOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ExtensionEnd; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Extension End' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExtensionEnd#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.ExtensionEnd#validateAggregation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Aggregation}
  • + *
  • {@link org.eclipse.uml2.uml.ExtensionEnd#lowerBound() Lower Bound}
  • + *
+ *

+ * + * @generated + */ +public final class ExtensionEndOperations { + + /** + * + * + * @generated + */ + private ExtensionEndOperations() { + super(); + } + + /** + * + * + * + * The multiplicity of ExtensionEnd is 0..1 or 1. + * (self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1 + * + * @generated + */ + public static boolean validateMultiplicity(ExtensionEnd extensionEnd, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXTENSION_END__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(extensionEnd, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{extensionEnd})); + } + return false; + } + return true; + } + + /** + * + * + * + * The aggregation of an ExtensionEnd is composite. + * self.aggregation = #composite + * + * @generated + */ + public static boolean validateAggregation(ExtensionEnd extensionEnd, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXTENSION_END__AGGREGATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAggregation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(extensionEnd, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{extensionEnd})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default + * + * lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty. + * result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif + * + * @generated + */ + public static int lowerBound(ExtensionEnd extensionEnd) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ExtensionEndOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionOperations.java new file mode 100644 index 00000000..56a2bc95 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionOperations.java @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.Property; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Extension' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Extension#validateNonOwnedEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Non Owned End}
  • + *
  • {@link org.eclipse.uml2.uml.Extension#validateIsBinary(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Is Binary}
  • + *
  • {@link org.eclipse.uml2.uml.Extension#metaclassEnd() Metaclass End}
  • + *
  • {@link org.eclipse.uml2.uml.Extension#metaclass() Metaclass}
  • + *
  • {@link org.eclipse.uml2.uml.Extension#isRequired() Is Required}
  • + *
+ *

+ * + * @generated + */ +public final class ExtensionOperations { + + /** + * + * + * @generated + */ + private ExtensionOperations() { + super(); + } + + /** + * + * + * + * The non-owned end of an Extension is typed by a Class. + * metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class) + * + * @generated + */ + public static boolean validateNonOwnedEnd(Extension extension, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXTENSION__NON_OWNED_END, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNonOwnedEnd", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(extension, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{extension})); + } + return false; + } + return true; + } + + /** + * + * + * + * An Extension is binary, i.e., it has only two memberEnds. + * memberEnd->size() = 2 + * + * @generated + */ + public static boolean validateIsBinary(Extension extension, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXTENSION__IS_BINARY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateIsBinary", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(extension, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{extension})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype). + * result = memberEnd->reject(ownedEnd) + * + * @generated + */ + public static Property metaclassEnd(Extension extension) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype). + * result = metaclassEnd().type + * + * @generated + */ + public static org.eclipse.uml2.uml.Class metaclass(Extension extension) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1. + * result = (ownedEnd->lowerBound() = 1) + * + * @generated + */ + public static boolean isRequired(Extension extension) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ExtensionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionPointOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionPointOperations.java new file mode 100644 index 00000000..ac3775d4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ExtensionPointOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ExtensionPointOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ExtensionPoint; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Extension Point' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ExtensionPoint#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Have Name}
  • + *
+ *

+ * + * @generated + */ +public final class ExtensionPointOperations { + + /** + * + * + * @generated + */ + private ExtensionPointOperations() { + super(); + } + + /** + * + * + * + * An ExtensionPoint must have a name. + * self.name->notEmpty () + * + * @generated + */ + public static boolean validateMustHaveName(ExtensionPoint extensionPoint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.EXTENSION_POINT__MUST_HAVE_NAME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustHaveName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(extensionPoint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{extensionPoint})); + } + return false; + } + return true; + } + +} // ExtensionPointOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalNodeOperations.java new file mode 100644 index 00000000..e311cb92 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalNodeOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FinalNodeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.FinalNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Final Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.FinalNode#validateNoOutgoingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Outgoing Edges}
  • + *
+ *

+ * + * @generated + */ +public final class FinalNodeOperations { + + /** + * + * + * @generated + */ + private FinalNodeOperations() { + super(); + } + + /** + * + * + * + * A final node has no outgoing edges. + * true + * + * @generated + */ + public static boolean validateNoOutgoingEdges(FinalNode finalNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_NODE__NO_OUTGOING_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoOutgoingEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalNode})); + } + return false; + } + return true; + } + +} // FinalNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java new file mode 100644 index 00000000..cd80bedb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FinalStateOperations.java @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FinalStateOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.FinalState; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Final State' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.FinalState#validateNoOutgoingTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Outgoing Transitions}
  • + *
  • {@link org.eclipse.uml2.uml.FinalState#validateNoRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Regions}
  • + *
  • {@link org.eclipse.uml2.uml.FinalState#validateCannotReferenceSubmachine(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Cannot Reference Submachine}
  • + *
  • {@link org.eclipse.uml2.uml.FinalState#validateNoEntryBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Entry Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.FinalState#validateNoExitbehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Exitbehavior}
  • + *
  • {@link org.eclipse.uml2.uml.FinalState#validateNoStateBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No State Behavior}
  • + *
+ *

+ * + * @generated + */ +public final class FinalStateOperations { + + /** + * + * + * @generated + */ + private FinalStateOperations() { + super(); + } + + /** + * + * + * + * A final state cannot have any outgoing transitions. + * self.outgoing->size() = 0 + * + * @generated + */ + public static boolean validateNoOutgoingTransitions(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_STATE__NO_OUTGOING_TRANSITIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoOutgoingTransitions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalState, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalState})); + } + return false; + } + return true; + } + + /** + * + * + * + * A final state cannot have regions. + * self.region->size() = 0 + * + * @generated + */ + public static boolean validateNoRegions(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_STATE__NO_REGIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoRegions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalState, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalState})); + } + return false; + } + return true; + } + + /** + * + * + * + * A final state cannot reference a submachine. + * self.submachine->isEmpty() + * + * @generated + */ + public static boolean validateCannotReferenceSubmachine( + FinalState finalState, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_STATE__CANNOT_REFERENCE_SUBMACHINE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotReferenceSubmachine", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalState, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalState})); + } + return false; + } + return true; + } + + /** + * + * + * + * A final state has no entry behavior. + * self.entry->isEmpty() + * + * @generated + */ + public static boolean validateNoEntryBehavior(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_STATE__NO_ENTRY_BEHAVIOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoEntryBehavior", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalState, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalState})); + } + return false; + } + return true; + } + + /** + * + * + * + * A final state has no exit behavior. + * self.exit->isEmpty() + * + * @generated + */ + public static boolean validateNoExitbehavior(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_STATE__NO_EXITBEHAVIOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoExitbehavior", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalState, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalState})); + } + return false; + } + return true; + } + + /** + * + * + * + * A final state has no state (doActivity) behavior. + * self.doActivity->isEmpty() + * + * @generated + */ + public static boolean validateNoStateBehavior(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FINAL_STATE__NO_STATE_BEHAVIOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoStateBehavior", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(finalState, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{finalState})); + } + return false; + } + return true; + } + +} // FinalStateOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ForkNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ForkNodeOperations.java new file mode 100644 index 00000000..8cd42457 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ForkNodeOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ForkNodeOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ForkNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Fork Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ForkNode#validateOneIncomingEdge(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Incoming Edge}
  • + *
  • {@link org.eclipse.uml2.uml.ForkNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Edges}
  • + *
+ *

+ * + * @generated + */ +public final class ForkNodeOperations { + + /** + * + * + * @generated + */ + private ForkNodeOperations() { + super(); + } + + /** + * + * + * + * A fork node has one incoming edge. + * true + * + * @generated + */ + public static boolean validateOneIncomingEdge(ForkNode forkNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FORK_NODE__ONE_INCOMING_EDGE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneIncomingEdge", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(forkNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{forkNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * The edges coming into and out of a fork node must be either all object flows or all control flows. + * true + * + * @generated + */ + public static boolean validateEdges(ForkNode forkNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FORK_NODE__EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(forkNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{forkNode})); + } + return false; + } + return true; + } + +} // ForkNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FunctionBehaviorOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FunctionBehaviorOperations.java new file mode 100644 index 00000000..b2fb0f78 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/FunctionBehaviorOperations.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: FunctionBehaviorOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.FunctionBehavior; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Function Behavior' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.FunctionBehavior#validateOneOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Output Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.FunctionBehavior#validateTypesOfParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Types Of Parameters}
  • + *
+ *

+ * + * @generated + */ +public final class FunctionBehaviorOperations { + + /** + * + * + * @generated + */ + private FunctionBehaviorOperations() { + super(); + } + + /** + * + * + * + * A function behavior has at least one output parameter. + * self.ownedParameters-> + * + * select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1 + * + * @generated + */ + public static boolean validateOneOutputParameter( + FunctionBehavior functionBehavior, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FUNCTION_BEHAVIOR__ONE_OUTPUT_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneOutputParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(functionBehavior, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{functionBehavior})); + } + return false; + } + return true; + } + + /** + * + * + * + * The types of parameters are all data types, which may not nest anything but other datatypes. + * def: hasAllDataTypeAttributes(d : DataType) : Boolean = + * + * d.ownedAttribute->forAll(a | + * + * a.type.oclIsTypeOf(DataType) and + * + * hasAllDataTypeAttributes(a.type)) + * + * self.ownedParameters->forAll(p | p.type.notEmpty() and + * + * p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p)) + * + * @generated + */ + public static boolean validateTypesOfParameters( + FunctionBehavior functionBehavior, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.FUNCTION_BEHAVIOR__TYPES_OF_PARAMETERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypesOfParameters", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(functionBehavior, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{functionBehavior})); + } + return false; + } + return true; + } + +} // FunctionBehaviorOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GateOperations.java new file mode 100644 index 00000000..078ebd38 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GateOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GateOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Gate; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Gate' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Gate#validateMessagesActualGate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Messages Actual Gate}
  • + *
  • {@link org.eclipse.uml2.uml.Gate#validateMessagesCombinedFragment(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Messages Combined Fragment}
  • + *
+ *

+ * + * @generated + */ +public final class GateOperations { + + /** + * + * + * @generated + */ + private GateOperations() { + super(); + } + + /** + * + * + * + * The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse. + * true + * + * @generated + */ + public static boolean validateMessagesActualGate(Gate gate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.GATE__MESSAGES_ACTUAL_GATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMessagesActualGate", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(gate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{gate})); + } + return false; + } + return true; + } + + /** + * + * + * + * The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside. + * true + * + * @generated + */ + public static boolean validateMessagesCombinedFragment(Gate gate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.GATE__MESSAGES_COMBINED_FRAGMENT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMessagesCombinedFragment", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(gate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{gate})); + } + return false; + } + return true; + } + +} // GateOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationOperations.java new file mode 100644 index 00000000..2e95021e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralizationOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Generalization; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Generalization' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Generalization#validateGeneralizationSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Generalization Same Classifier}
  • + *
+ *

+ * + * @generated + */ +public final class GeneralizationOperations { + + /** + * + * + * @generated + */ + private GeneralizationOperations() { + super(); + } + + /** + * + * + * + * Every Generalization associated with a given GeneralizationSet must have the same general Classifier. That is, all Generalizations for a particular GeneralizationSet must have the same superclass. + * true + * + * @generated + */ + public static boolean validateGeneralizationSameClassifier( + Generalization generalization, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.GENERALIZATION__GENERALIZATION_SAME_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGeneralizationSameClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(generalization, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{generalization})); + } + return false; + } + return true; + } + +} // GeneralizationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java new file mode 100644 index 00000000..dea482e2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/GeneralizationSetOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: GeneralizationSetOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.GeneralizationSet; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Generalization Set' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.GeneralizationSet#validateGeneralizationSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Generalization Same Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.GeneralizationSet#validateMapsToGeneralizationSet(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Maps To Generalization Set}
  • + *
+ *

+ * + * @generated + */ +public final class GeneralizationSetOperations { + + /** + * + * + * @generated + */ + private GeneralizationSetOperations() { + super(); + } + + /** + * + * + * + * Every Generalization associated with a particular GeneralizationSet must have the same general Classifier. + * generalization->collect(g | g.general)->asSet()->size() <= 1 + * + * @generated + */ + public static boolean validateGeneralizationSameClassifier( + GeneralizationSet generalizationSet, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.GENERALIZATION_SET__GENERALIZATION_SAME_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGeneralizationSameClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(generalizationSet, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{generalizationSet})); + } + return false; + } + return true; + } + + /** + * + * + * + * The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses. + * true + * + * @generated + */ + public static boolean validateMapsToGeneralizationSet( + GeneralizationSet generalizationSet, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.GENERALIZATION_SET__MAPS_TO_GENERALIZATION_SET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMapsToGeneralizationSet", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(generalizationSet, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{generalizationSet})); + } + return false; + } + return true; + } + +} // GeneralizationSetOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java new file mode 100644 index 00000000..2f6b7950 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationFlowOperations.java @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InformationFlowOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InformationFlow; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Information Flow' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InformationFlow#validateSourcesAndTargetsKind(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Sources And Targets Kind}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#validateMustConform(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Conform}
  • + *
  • {@link org.eclipse.uml2.uml.InformationFlow#validateConveyClassifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Convey Classifiers}
  • + *
+ *

+ * + * @generated + */ +public final class InformationFlowOperations { + + /** + * + * + * @generated + */ + private InformationFlowOperations() { + super(); + } + + /** + * + * + * + * The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link). + * (self.source->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + * + * oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + * + * oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + * + * oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + * + * oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and + * + * (self.target->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or + * + * oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or + * + * oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or + * + * oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or + * + * oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) + * + * @generated + */ + public static boolean validateSourcesAndTargetsKind( + InformationFlow informationFlow, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INFORMATION_FLOW__SOURCES_AND_TARGETS_KIND, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSourcesAndTargetsKind", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(informationFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{informationFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships. + * true + * + * @generated + */ + public static boolean validateMustConform(InformationFlow informationFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INFORMATION_FLOW__MUST_CONFORM, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustConform", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(informationFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{informationFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * An information flow can only convey classifiers that are allowed to represent an information item. + * + * + * self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) + * + * or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)) + * + * @generated + */ + public static boolean validateConveyClassifiers( + InformationFlow informationFlow, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INFORMATION_FLOW__CONVEY_CLASSIFIERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConveyClassifiers", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(informationFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{informationFlow})); + } + return false; + } + return true; + } + +} // InformationFlowOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java new file mode 100644 index 00000000..767f5590 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InformationItemOperations.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InformationItemOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InformationItem; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Information Item' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InformationItem#validateSourcesAndTargets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Sources And Targets}
  • + *
  • {@link org.eclipse.uml2.uml.InformationItem#validateHasNo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Has No}
  • + *
  • {@link org.eclipse.uml2.uml.InformationItem#validateNotInstantiable(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Instantiable}
  • + *
+ *

+ * + * @generated + */ +public final class InformationItemOperations { + + /** + * + * + * @generated + */ + private InformationItemOperations() { + super(); + } + + /** + * + * + * + * The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component. + * (self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p | + * + * p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and + * + * p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and + * + * (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or + * + * oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))) + * + * @generated + */ + public static boolean validateSourcesAndTargets( + InformationItem informationItem, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INFORMATION_ITEM__SOURCES_AND_TARGETS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSourcesAndTargets", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(informationItem, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{informationItem})); + } + return false; + } + return true; + } + + /** + * + * + * + * An informationItem has no feature, no generalization, and no associations. + * self.generalization->isEmpty() and self.feature->isEmpty() + * + * @generated + */ + public static boolean validateHasNo(InformationItem informationItem, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INFORMATION_ITEM__HAS_NO, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateHasNo", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(informationItem, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{informationItem})); + } + return false; + } + return true; + } + + /** + * + * + * + * It is not instantiable. + * isAbstract + * + * @generated + */ + public static boolean validateNotInstantiable( + InformationItem informationItem, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INFORMATION_ITEM__NOT_INSTANTIABLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotInstantiable", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(informationItem, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{informationItem})); + } + return false; + } + return true; + } + +} // InformationItemOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InitialNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InitialNodeOperations.java new file mode 100644 index 00000000..ddaf953c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InitialNodeOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InitialNodeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InitialNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Initial Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InitialNode#validateNoIncomingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Incoming Edges}
  • + *
  • {@link org.eclipse.uml2.uml.InitialNode#validateControlEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Control Edges}
  • + *
+ *

+ * + * @generated + */ +public final class InitialNodeOperations { + + /** + * + * + * @generated + */ + private InitialNodeOperations() { + super(); + } + + /** + * + * + * + * An initial node has no incoming edges. + * true + * + * @generated + */ + public static boolean validateNoIncomingEdges(InitialNode initialNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INITIAL_NODE__NO_INCOMING_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoIncomingEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(initialNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{initialNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only control edges can have initial nodes as source. + * true + * + * @generated + */ + public static boolean validateControlEdges(InitialNode initialNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INITIAL_NODE__CONTROL_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateControlEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(initialNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{initialNode})); + } + return false; + } + return true; + } + +} // InitialNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java new file mode 100644 index 00000000..816e2e6c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InstanceSpecificationOperations.java @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InstanceSpecificationOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InstanceSpecification; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Instance Specification' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#validateDefiningFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Defining Feature}
  • + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Structural Feature}
  • + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deployment Target}
  • + *
  • {@link org.eclipse.uml2.uml.InstanceSpecification#validateDeploymentArtifact(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deployment Artifact}
  • + *
+ *

+ * + * @generated + */ +public final class InstanceSpecificationOperations { + + /** + * + * + * @generated + */ + private InstanceSpecificationOperations() { + super(); + } + + /** + * + * + * + * The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification. + * slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature))) + * + * @generated + */ + public static boolean validateDefiningFeature( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INSTANCE_SPECIFICATION__DEFINING_FEATURE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDefiningFeature", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(instanceSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{instanceSpecification})); + } + return false; + } + return true; + } + + /** + * + * + * + * One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification. + * classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() <= 1))) + * + * @generated + */ + public static boolean validateStructuralFeature( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INSTANCE_SPECIFICATION__STRUCTURAL_FEATURE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateStructuralFeature", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(instanceSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{instanceSpecification})); + } + return false; + } + return true; + } + + /** + * + * + * + * An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node. + * true + * + * @generated + */ + public static boolean validateDeploymentTarget( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INSTANCE_SPECIFICATION__DEPLOYMENT_TARGET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeploymentTarget", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(instanceSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{instanceSpecification})); + } + return false; + } + return true; + } + + /** + * + * + * + * An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact. + * true + * + * @generated + */ + public static boolean validateDeploymentArtifact( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INSTANCE_SPECIFICATION__DEPLOYMENT_ARTIFACT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeploymentArtifact", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(instanceSpecification, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{instanceSpecification})); + } + return false; + } + return true; + } + +} // InstanceSpecificationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java new file mode 100644 index 00000000..0fe07823 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionConstraintOperations.java @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionConstraintOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InteractionConstraint; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Interaction Constraint' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#validateDynamicVariables(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Dynamic Variables}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#validateGlobalData(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Global Data}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#validateMinintMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Minint Maxint}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#validateMinint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Minint}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Maxint}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionConstraint#validateMaxintGreaterEqualMinint(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Maxint Greater Equal Minint}
  • + *
+ *

+ * + * @generated + */ +public final class InteractionConstraintOperations { + + /** + * + * + * @generated + */ + private InteractionConstraintOperations() { + super(); + } + + /** + * + * + * + * The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline. + * true + * + * @generated + */ + public static boolean validateDynamicVariables( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_CONSTRAINT__DYNAMIC_VARIABLES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDynamicVariables", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionConstraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionConstraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * The constraint may contain references to global data or write-once data. + * true + * + * @generated + */ + public static boolean validateGlobalData( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_CONSTRAINT__GLOBAL_DATA, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGlobalData", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionConstraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionConstraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment. + * true + * + * @generated + */ + public static boolean validateMinintMaxint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_CONSTRAINT__MININT_MAXINT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMinintMaxint", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionConstraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionConstraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * If minint is specified, then the expression must evaluate to a non-negative integer. + * true + * + * @generated + */ + public static boolean validateMinint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_CONSTRAINT__MININT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMinint", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionConstraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionConstraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * If maxint is specified, then the expression must evaluate to a positive integer. + * true + * + * @generated + */ + public static boolean validateMaxint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_CONSTRAINT__MAXINT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMaxint", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionConstraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionConstraint})); + } + return false; + } + return true; + } + + /** + * + * + * + * If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint + * true + * + * @generated + */ + public static boolean validateMaxintGreaterEqualMinint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_CONSTRAINT__MAXINT_GREATER_EQUAL_MININT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMaxintGreaterEqualMinint", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionConstraint, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionConstraint})); + } + return false; + } + return true; + } + +} // InteractionConstraintOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java new file mode 100644 index 00000000..e6d34df9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionOperandOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionOperandOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InteractionOperand; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Interaction Operand' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionOperand#validateGuardDirectlyPrior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Guard Directly Prior}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionOperand#validateGuardContainReferences(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Guard Contain References}
  • + *
+ *

+ * + * @generated + */ +public final class InteractionOperandOperations { + + /** + * + * + * @generated + */ + private InteractionOperandOperations() { + super(); + } + + /** + * + * + * + * The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand. + * true + * + * @generated + */ + public static boolean validateGuardDirectlyPrior( + InteractionOperand interactionOperand, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_OPERAND__GUARD_DIRECTLY_PRIOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGuardDirectlyPrior", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionOperand, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionOperand})); + } + return false; + } + return true; + } + + /** + * + * + * + * The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction. + * true + * + * @generated + */ + public static boolean validateGuardContainReferences( + InteractionOperand interactionOperand, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_OPERAND__GUARD_CONTAIN_REFERENCES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGuardContainReferences", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionOperand, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionOperand})); + } + return false; + } + return true; + } + +} // InteractionOperandOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java new file mode 100644 index 00000000..fc00af7c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InteractionUseOperations.java @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InteractionUseOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InteractionUse; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Interaction Use' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InteractionUse#validateGatesMatch(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Gates Match}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionUse#validateAllLifelines(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate All Lifelines}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsCorrespondToParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Arguments Correspond To Parameters}
  • + *
  • {@link org.eclipse.uml2.uml.InteractionUse#validateArgumentsAreConstants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Arguments Are Constants}
  • + *
+ *

+ * + * @generated + */ +public final class InteractionUseOperations { + + /** + * + * + * @generated + */ + private InteractionUseOperations() { + super(); + } + + /** + * + * + * + * Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal. + * true + * + * @generated + */ + public static boolean validateGatesMatch(InteractionUse interactionUse, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_USE__GATES_MATCH, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGatesMatch", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionUse})); + } + return false; + } + return true; + } + + /** + * + * + * + * The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction. + * true + * + * @generated + */ + public static boolean validateAllLifelines(InteractionUse interactionUse, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_USE__ALL_LIFELINES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAllLifelines", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionUse})); + } + return false; + } + return true; + } + + /** + * + * + * + * The arguments of the InteractionUse must correspond to parameters of the referred Interaction + * true + * + * @generated + */ + public static boolean validateArgumentsCorrespondToParameters( + InteractionUse interactionUse, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_USE__ARGUMENTS_CORRESPOND_TO_PARAMETERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateArgumentsCorrespondToParameters", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionUse})); + } + return false; + } + return true; + } + + /** + * + * + * + * The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction. + * true + * + * @generated + */ + public static boolean validateArgumentsAreConstants( + InteractionUse interactionUse, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERACTION_USE__ARGUMENTS_ARE_CONSTANTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateArgumentsAreConstants", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interactionUse, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interactionUse})); + } + return false; + } + return true; + } + +} // InteractionUseOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterfaceOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterfaceOperations.java new file mode 100644 index 00000000..351f2540 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterfaceOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterfaceOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Interface; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Interface' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Interface#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Visibility}
  • + *
+ *

+ * + * @generated + */ +public final class InterfaceOperations { + + /** + * + * + * @generated + */ + private InterfaceOperations() { + super(); + } + + /** + * + * + * + * The visibility of all features owned by an interface must be public. + * self.feature->forAll(f | f.visibility = #public) + * + * @generated + */ + public static boolean validateVisibility(Interface interface_, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERFACE__VISIBILITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateVisibility", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interface_, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interface_})); + } + return false; + } + return true; + } + +} // InterfaceOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterruptibleActivityRegionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterruptibleActivityRegionOperations.java new file mode 100644 index 00000000..ba53e02c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InterruptibleActivityRegionOperations.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InterruptibleActivityRegionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InterruptibleActivityRegion; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Interruptible Activity Region' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InterruptibleActivityRegion#validateInterruptingEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Interrupting Edges}
  • + *
+ *

+ * + * @generated + */ +public final class InterruptibleActivityRegionOperations { + + /** + * + * + * @generated + */ + private InterruptibleActivityRegionOperations() { + super(); + } + + /** + * + * + * + * Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region. + * + * + * true + * + * @generated + */ + public static boolean validateInterruptingEdges( + InterruptibleActivityRegion interruptibleActivityRegion, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInterruptingEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(interruptibleActivityRegion, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{interruptibleActivityRegion})); + } + return false; + } + return true; + } + +} // InterruptibleActivityRegionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InvocationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InvocationActionOperations.java new file mode 100644 index 00000000..4c64a1e2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/InvocationActionOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: InvocationActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.InvocationAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Invocation Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.InvocationAction#validateOnPort(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate On Port}
  • + *
+ *

+ * + * @generated + */ +public final class InvocationActionOperations { + + /** + * + * + * @generated + */ + private InvocationActionOperations() { + super(); + } + + /** + * + * + * + * The onPort must be a port on the receiver object. + * true + * + * @generated + */ + public static boolean validateOnPort(InvocationAction invocationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.INVOCATION_ACTION__ON_PORT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOnPort", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(invocationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{invocationAction})); + } + return false; + } + return true; + } + +} // InvocationActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/JoinNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/JoinNodeOperations.java new file mode 100644 index 00000000..ad2f5044 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/JoinNodeOperations.java @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: JoinNodeOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.JoinNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Join Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.JoinNode#validateOneOutgoingEdge(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Outgoing Edge}
  • + *
  • {@link org.eclipse.uml2.uml.JoinNode#validateIncomingObjectFlow(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Incoming Object Flow}
  • + *
+ *

+ * + * @generated + */ +public final class JoinNodeOperations { + + /** + * + * + * @generated + */ + private JoinNodeOperations() { + super(); + } + + /** + * + * + * + * A join node has one outgoing edge. + * self.outgoing->size() = 1 + * + * @generated + */ + public static boolean validateOneOutgoingEdge(JoinNode joinNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.JOIN_NODE__ONE_OUTGOING_EDGE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneOutgoingEdge", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(joinNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{joinNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow. + * (self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies + * + * self.outgoing.isTypeOf(ObjectFlow)) and + * + * (self.incoming.select(e | e.isTypeOf(ObjectFlow)->empty() implies + * + * self.outgoing.isTypeOf(ControlFlow)) + * + * @generated + */ + public static boolean validateIncomingObjectFlow(JoinNode joinNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.JOIN_NODE__INCOMING_OBJECT_FLOW, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateIncomingObjectFlow", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(joinNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{joinNode})); + } + return false; + } + return true; + } + +} // JoinNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java new file mode 100644 index 00000000..7a9f5275 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LifelineOperations.java @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LifelineOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Lifeline; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Lifeline' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Lifeline#validateInteractionUsesShareLifeline(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Interaction Uses Share Lifeline}
  • + *
  • {@link org.eclipse.uml2.uml.Lifeline#validateSelectorSpecified(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Selector Specified}
  • + *
  • {@link org.eclipse.uml2.uml.Lifeline#validateSameClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Classifier}
  • + *
+ *

+ * + * @generated + */ +public final class LifelineOperations { + + /** + * + * + * @generated + */ + private LifelineOperations() { + super(); + } + + /** + * + * + * + * If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations. + * true + * + * @generated + */ + public static boolean validateInteractionUsesShareLifeline( + Lifeline lifeline, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LIFELINE__INTERACTION_USES_SHARE_LIFELINE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInteractionUsesShareLifeline", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(lifeline, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{lifeline})); + } + return false; + } + return true; + } + + /** + * + * + * + * The selector for a Lifeline must only be specified if the referenced Part is multivalued. + * (self.selector->isEmpty() implies not self.represents.isMultivalued()) or + * (not self.selector->isEmpty() implies self.represents.isMultivalued()) + * + * + * @generated + */ + public static boolean validateSelectorSpecified(Lifeline lifeline, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LIFELINE__SELECTOR_SPECIFIED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSelectorSpecified", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(lifeline, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{lifeline})); + } + return false; + } + return true; + } + + /** + * + * + * + * The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline. + * if (represents->notEmpty()) then + * (if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued()) + * + * + * @generated + */ + public static boolean validateSameClassifier(Lifeline lifeline, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LIFELINE__SAME_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(lifeline, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{lifeline})); + } + return false; + } + return true; + } + +} // LifelineOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkActionOperations.java new file mode 100644 index 00000000..89dce157 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkActionOperations.java @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.LinkAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Link Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkAction#validateSameAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Association}
  • + *
  • {@link org.eclipse.uml2.uml.LinkAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Static}
  • + *
  • {@link org.eclipse.uml2.uml.LinkAction#validateSamePins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Pins}
  • + *
  • {@link org.eclipse.uml2.uml.LinkAction#association() Association}
  • + *
+ *

+ * + * @generated + */ +public final class LinkActionOperations { + + /** + * + * + * @generated + */ + private LinkActionOperations() { + super(); + } + + /** + * + * + * + * The association ends of the link end data must all be from the same association and include all and only the association ends of that association. + * self.endData->collect(end) = self.association()->collect(connection)) + * + * @generated + */ + public static boolean validateSameAssociation(LinkAction linkAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_ACTION__SAME_ASSOCIATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameAssociation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The association ends of the link end data must not be static. + * self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false + * + * @generated + */ + public static boolean validateNotStatic(LinkAction linkAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_ACTION__NOT_STATIC, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotStatic", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The input pins of the action are the same as the pins of the link end data and insertion pins. + * self.input->asSet() = + * let ledpins : Set = self.endData->collect(value) in + * if self.oclIsKindOf(LinkEndCreationData) + * then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt) + * else ledpins + * + * + * @generated + */ + public static boolean validateSamePins(LinkAction linkAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_ACTION__SAME_PINS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSamePins", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The association operates on LinkAction. It returns the association of the action. + * result = self.endData->asSequence().first().end.association + * + * @generated + */ + public static Association association(LinkAction linkAction) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // LinkActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java new file mode 100644 index 00000000..2f4b97bb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndCreationDataOperations.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndCreationDataOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.LinkEndCreationData; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Link End Creation Data' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkEndCreationData#validateCreateLinkAction(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Create Link Action}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndCreationData#validateSingleInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Single Input Pin}
  • + *
+ *

+ * + * @generated + */ +public final class LinkEndCreationDataOperations { + + /** + * + * + * @generated + */ + private LinkEndCreationDataOperations() { + super(); + } + + /** + * + * + * + * LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations. + * self.LinkAction.oclIsKindOf(CreateLinkAction) + * + * @generated + */ + public static boolean validateCreateLinkAction( + LinkEndCreationData linkEndCreationData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_CREATION_DATA__CREATE_LINK_ACTION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCreateLinkAction", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndCreationData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndCreationData})); + } + return false; + } + return true; + } + + /** + * + * + * + * Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point. + * let insertAtPins : Collection = self.insertAt in + * if self.end.ordering = #unordered + * then insertAtPins->size() = 0 + * else let insertAtPin : InputPin = insertAts->asSequence()->first() in + * insertAtPins->size() = 1 + * and insertAtPin.type = UnlimitedNatural + * and insertAtPin.multiplicity.is(1,1)) + * endif + * + * + * @generated + */ + public static boolean validateSingleInputPin( + LinkEndCreationData linkEndCreationData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_CREATION_DATA__SINGLE_INPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSingleInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndCreationData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndCreationData})); + } + return false; + } + return true; + } + +} // LinkEndCreationDataOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java new file mode 100644 index 00000000..029f1853 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDataOperations.java @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndDataOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.LinkEndData; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Link End Data' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkEndData#validatePropertyIsAssociationEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Property Is Association End}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndData#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndData#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndData#validateQualifiers(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Qualifiers}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndData#validateEndObjectInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate End Object Input Pin}
  • + *
+ *

+ * + * @generated + */ +public final class LinkEndDataOperations { + + /** + * + * + * @generated + */ + private LinkEndDataOperations() { + super(); + } + + /** + * + * + * + * The property must be an association end. + * self.end.association->size() = 1 + * + * @generated + */ + public static boolean validatePropertyIsAssociationEnd( + LinkEndData linkEndData, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DATA__PROPERTY_IS_ASSOCIATION_END, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePropertyIsAssociationEnd", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndData})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the end object input pin is the same as the type of the association end. + * self.value.type = self.end.type + * + * @generated + */ + public static boolean validateSameType(LinkEndData linkEndData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DATA__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndData})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the end object input pin must be 1..1. + * self.value.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity(LinkEndData linkEndData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DATA__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndData})); + } + return false; + } + return true; + } + + /** + * + * + * + * The qualifiers include all and only the qualifiers of the association end. + * self.qualifier->collect(qualifier) = self.end.qualifier + * + * @generated + */ + public static boolean validateQualifiers(LinkEndData linkEndData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DATA__QUALIFIERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateQualifiers", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndData})); + } + return false; + } + return true; + } + + /** + * + * + * + * The end object input pin is not also a qualifier value input pin. + * self.value->excludesAll(self.qualifier.value) + * + * @generated + */ + public static boolean validateEndObjectInputPin(LinkEndData linkEndData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DATA__END_OBJECT_INPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEndObjectInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndData})); + } + return false; + } + return true; + } + +} // LinkEndDataOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java new file mode 100644 index 00000000..43ec1811 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LinkEndDestructionDataOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LinkEndDestructionDataOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.LinkEndDestructionData; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Link End Destruction Data' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LinkEndDestructionData#validateDestroyLinkAction(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Destroy Link Action}
  • + *
  • {@link org.eclipse.uml2.uml.LinkEndDestructionData#validateUnlimitedNaturalAndMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Unlimited Natural And Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class LinkEndDestructionDataOperations { + + /** + * + * + * @generated + */ + private LinkEndDestructionDataOperations() { + super(); + } + + /** + * + * + * + * LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations. + * true + * + * @generated + */ + public static boolean validateDestroyLinkAction( + LinkEndDestructionData linkEndDestructionData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DESTRUCTION_DATA__DESTROY_LINK_ACTION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDestroyLinkAction", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndDestructionData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndDestructionData})); + } + return false; + } + return true; + } + + /** + * + * + * + * LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position. + * true + * + * @generated + */ + public static boolean validateUnlimitedNaturalAndMultiplicity( + LinkEndDestructionData linkEndDestructionData, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LINK_END_DESTRUCTION_DATA__UNLIMITED_NATURAL_AND_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUnlimitedNaturalAndMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(linkEndDestructionData, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{linkEndDestructionData})); + } + return false; + } + return true; + } + +} // LinkEndDestructionDataOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralBooleanOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralBooleanOperations.java new file mode 100644 index 00000000..c60504fa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralBooleanOperations.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralBooleanOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.LiteralBoolean; + +/** + * + * A static utility class that provides operations related to 'Literal Boolean' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralBoolean#isComputable() Is Computable}
  • + *
  • {@link org.eclipse.uml2.uml.LiteralBoolean#booleanValue() Boolean Value}
  • + *
+ *

+ * + * @generated + */ +public final class LiteralBooleanOperations { + + /** + * + * + * @generated + */ + private LiteralBooleanOperations() { + super(); + } + + /** + * + * + * + * The query isComputable() is redefined to be true. + * result = true + * + * @generated + */ + public static boolean isComputable(LiteralBoolean literalBoolean) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query booleanValue() gives the value. + * result = value + * + * @generated + */ + public static boolean booleanValue(LiteralBoolean literalBoolean) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // LiteralBooleanOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralIntegerOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralIntegerOperations.java new file mode 100644 index 00000000..973f6ac1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralIntegerOperations.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralIntegerOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.LiteralInteger; + +/** + * + * A static utility class that provides operations related to 'Literal Integer' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralInteger#isComputable() Is Computable}
  • + *
  • {@link org.eclipse.uml2.uml.LiteralInteger#integerValue() Integer Value}
  • + *
+ *

+ * + * @generated + */ +public final class LiteralIntegerOperations { + + /** + * + * + * @generated + */ + private LiteralIntegerOperations() { + super(); + } + + /** + * + * + * + * The query isComputable() is redefined to be true. + * result = true + * + * @generated + */ + public static boolean isComputable(LiteralInteger literalInteger) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query integerValue() gives the value. + * result = value + * + * @generated + */ + public static int integerValue(LiteralInteger literalInteger) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // LiteralIntegerOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralNullOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralNullOperations.java new file mode 100644 index 00000000..b75cf5ea --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralNullOperations.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralNullOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.LiteralNull; + +/** + * + * A static utility class that provides operations related to 'Literal Null' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralNull#isComputable() Is Computable}
  • + *
  • {@link org.eclipse.uml2.uml.LiteralNull#isNull() Is Null}
  • + *
+ *

+ * + * @generated + */ +public final class LiteralNullOperations { + + /** + * + * + * @generated + */ + private LiteralNullOperations() { + super(); + } + + /** + * + * + * + * The query isComputable() is redefined to be true. + * result = true + * + * @generated + */ + public static boolean isComputable(LiteralNull literalNull) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isNull() returns true. + * result = true + * + * @generated + */ + public static boolean isNull(LiteralNull literalNull) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // LiteralNullOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralStringOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralStringOperations.java new file mode 100644 index 00000000..f3cbda9c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralStringOperations.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralStringOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.LiteralString; + +/** + * + * A static utility class that provides operations related to 'Literal String' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralString#isComputable() Is Computable}
  • + *
  • {@link org.eclipse.uml2.uml.LiteralString#stringValue() String Value}
  • + *
+ *

+ * + * @generated + */ +public final class LiteralStringOperations { + + /** + * + * + * @generated + */ + private LiteralStringOperations() { + super(); + } + + /** + * + * + * + * The query isComputable() is redefined to be true. + * result = true + * + * @generated + */ + public static boolean isComputable(LiteralString literalString) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query stringValue() gives the value. + * result = value + * + * @generated + */ + public static String stringValue(LiteralString literalString) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // LiteralStringOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralUnlimitedNaturalOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralUnlimitedNaturalOperations.java new file mode 100644 index 00000000..988084fd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LiteralUnlimitedNaturalOperations.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LiteralUnlimitedNaturalOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; + +/** + * + * A static utility class that provides operations related to 'Literal Unlimited Natural' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LiteralUnlimitedNatural#isComputable() Is Computable}
  • + *
  • {@link org.eclipse.uml2.uml.LiteralUnlimitedNatural#unlimitedValue() Unlimited Value}
  • + *
+ *

+ * + * @generated + */ +public final class LiteralUnlimitedNaturalOperations { + + /** + * + * + * @generated + */ + private LiteralUnlimitedNaturalOperations() { + super(); + } + + /** + * + * + * + * The query isComputable() is redefined to be true. + * result = true + * + * @generated + */ + public static boolean isComputable( + LiteralUnlimitedNatural literalUnlimitedNatural) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query unlimitedValue() gives the value. + * result = value + * + * @generated + */ + public static int unlimitedValue( + LiteralUnlimitedNatural literalUnlimitedNatural) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // LiteralUnlimitedNaturalOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java new file mode 100644 index 00000000..6d7f5066 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/LoopNodeOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: LoopNodeOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.LoopNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Loop Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.LoopNode#validateInputEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Edges}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#validateBodyOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Body Output}
  • + *
  • {@link org.eclipse.uml2.uml.LoopNode#validateResultNoIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result No Incoming}
  • + *
+ *

+ * + * @generated + */ +public final class LoopNodeOperations { + + /** + * + * + * @generated + */ + private LoopNodeOperations() { + super(); + } + + /** + * + * + * + * Loop variable inputs must not have outgoing edges. + * true + * + * @generated + */ + public static boolean validateInputEdges(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LOOP_NODE__INPUT_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(loopNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{loopNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * The bodyOutput pins are output pins on actions in the body of the loop node. + * true + * + * @generated + */ + public static boolean validateBodyOutput(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LOOP_NODE__BODY_OUTPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBodyOutput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(loopNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{loopNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * The result output pins have no incoming edges. + * true + * + * @generated + */ + public static boolean validateResultNoIncoming(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.LOOP_NODE__RESULT_NO_INCOMING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultNoIncoming", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(loopNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{loopNode})); + } + return false; + } + return true; + } + +} // LoopNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MergeNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MergeNodeOperations.java new file mode 100644 index 00000000..8cd6a228 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MergeNodeOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MergeNodeOperations.java,v 1.1 2005/11/14 22:25:52 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.MergeNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Merge Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.MergeNode#validateOneOutgoingEdge(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Outgoing Edge}
  • + *
  • {@link org.eclipse.uml2.uml.MergeNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Edges}
  • + *
+ *

+ * + * @generated + */ +public final class MergeNodeOperations { + + /** + * + * + * @generated + */ + private MergeNodeOperations() { + super(); + } + + /** + * + * + * + * A merge node has one outgoing edge. + * true + * + * @generated + */ + public static boolean validateOneOutgoingEdge(MergeNode mergeNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MERGE_NODE__ONE_OUTGOING_EDGE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneOutgoingEdge", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(mergeNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{mergeNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * The edges coming into and out of a merge node must be either all object flows or all control flows. + * true + * + * @generated + */ + public static boolean validateEdges(MergeNode mergeNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MERGE_NODE__EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(mergeNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{mergeNode})); + } + return false; + } + return true; + } + +} // MergeNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java new file mode 100644 index 00000000..7ea0bcf2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MessageOperations.java @@ -0,0 +1,286 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MessageOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Message; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Message' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Message#validateSendingReceivingMessageEvent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Sending Receiving Message Event}
  • + *
  • {@link org.eclipse.uml2.uml.Message#validateSignatureReferTo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Signature Refer To}
  • + *
  • {@link org.eclipse.uml2.uml.Message#validateSignatureIsOperation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Signature Is Operation}
  • + *
  • {@link org.eclipse.uml2.uml.Message#validateSignatureIsSignal(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Signature Is Signal}
  • + *
  • {@link org.eclipse.uml2.uml.Message#validateArguments(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Arguments}
  • + *
  • {@link org.eclipse.uml2.uml.Message#validateCannotCrossBoundaries(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Cannot Cross Boundaries}
  • + *
  • {@link org.eclipse.uml2.uml.Message#validateOccurrenceSpecifications(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Occurrence Specifications}
  • + *
+ *

+ * + * @generated + */ +public final class MessageOperations { + + /** + * + * + * @generated + */ + private MessageOperations() { + super(); + } + + /** + * + * + * + * If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent. + * true + * + * @generated + */ + public static boolean validateSendingReceivingMessageEvent(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__SENDING_RECEIVING_MESSAGE_EVENT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSendingReceivingMessageEvent", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + + /** + * + * + * + * The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message. + * true + * + * @generated + */ + public static boolean validateSignatureReferTo(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__SIGNATURE_REFER_TO, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSignatureReferTo", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + + /** + * + * + * + * In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter. + * true + * + * @generated + */ + public static boolean validateSignatureIsOperation(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__SIGNATURE_IS_OPERATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSignatureIsOperation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + + /** + * + * + * + * In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute. + * true + * + * @generated + */ + public static boolean validateSignatureIsSignal(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__SIGNATURE_IS_SIGNAL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSignatureIsSignal", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + + /** + * + * + * + * Arguments of a Message must only be: + * i) attributes of the sending lifeline + * ii) constants + * iii) symbolic values (which are wildcard values representing any legal value) + * iv) explicit parameters of the enclosing Interaction + * v) attributes of the class owning the Interaction + * + * true + * + * @generated + */ + public static boolean validateArguments(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__ARGUMENTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateArguments", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + + /** + * + * + * + * Messages cannot cross bounderies of CombinedFragments or their operands. + * true + * + * @generated + */ + public static boolean validateCannotCrossBoundaries(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__CANNOT_CROSS_BOUNDARIES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotCrossBoundaries", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + + /** + * + * + * + * If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds. + * true + * + * @generated + */ + public static boolean validateOccurrenceSpecifications(Message message, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MESSAGE__OCCURRENCE_SPECIFICATIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOccurrenceSpecifications", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(message, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{message})); + } + return false; + } + return true; + } + +} // MessageOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java new file mode 100644 index 00000000..861ecfed --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/MultiplicityElementOperations.java @@ -0,0 +1,338 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: MultiplicityElementOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.MultiplicityElement; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Multiplicity Element' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGt0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Upper Gt0}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Lower Ge0}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Upper Ge Lower}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Value Specification No Side Effects}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Value Specification Constant}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#getLower() Get Lower}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#getUpper() Get Upper}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#isMultivalued() Is Multivalued}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int) Includes Cardinality}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement) Includes Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#lowerBound() Lower Bound}
  • + *
  • {@link org.eclipse.uml2.uml.MultiplicityElement#upperBound() Upper Bound}
  • + *
+ *

+ * + * @generated + */ +public final class MultiplicityElementOperations { + + /** + * + * + * @generated + */ + private MultiplicityElementOperations() { + super(); + } + + /** + * + * + * + * A multiplicity must define at least one valid cardinality that is greater than zero. + * upperBound()->notEmpty() implies upperBound() > 0 + * + * @generated + */ + public static boolean validateUpperGt0( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MULTIPLICITY_ELEMENT__UPPER_GT0, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUpperGt0", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(multiplicityElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{multiplicityElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * The lower bound must be a non-negative integer literal. + * lowerBound()->notEmpty() implies lowerBound() >= 0 + * + * @generated + */ + public static boolean validateLowerGe0( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MULTIPLICITY_ELEMENT__LOWER_GE0, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateLowerGe0", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(multiplicityElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{multiplicityElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * The upper bound must be greater than or equal to the lower bound. + * (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound() + * + * @generated + */ + public static boolean validateUpperGeLower( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MULTIPLICITY_ELEMENT__UPPER_GE_LOWER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUpperGeLower", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(multiplicityElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{multiplicityElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects. + * true + * + * @generated + */ + public static boolean validateValueSpecificationNoSideEffects( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_NO_SIDE_EFFECTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateValueSpecificationNoSideEffects", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(multiplicityElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{multiplicityElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression. + * true + * + * @generated + */ + public static boolean validateValueSpecificationConstant( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_CONSTANT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateValueSpecificationConstant", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(multiplicityElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{multiplicityElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * The derived lower attribute must equal the lowerBound. + * result = lowerBound() + * + * @generated + */ + public static int getLower(MultiplicityElement multiplicityElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The derived upper attribute must equal the upperBound. + * result = upperBound() + * + * @generated + */ + public static int getUpper(MultiplicityElement multiplicityElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. + * upperBound()->notEmpty() + * result = upperBound() > 1 + * + * @generated + */ + public static boolean isMultivalued(MultiplicityElement multiplicityElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. + * upperBound()->notEmpty() and lowerBound()->notEmpty() + * result = (lowerBound() <= C) and (upperBound() >= C) + * + * @generated + */ + public static boolean includesCardinality( + MultiplicityElement multiplicityElement, int C) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. + * self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() + * and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty() + * + * result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) + * + * @generated + */ + public static boolean includesMultiplicity( + MultiplicityElement multiplicityElement, MultiplicityElement M) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query lowerBound() returns the lower bound of the multiplicity as an integer. + * result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif + * + * @generated + */ + public static int lowerBound(MultiplicityElement multiplicityElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. + * result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif + * + * @generated + */ + public static int upperBound(MultiplicityElement multiplicityElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // MultiplicityElementOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java new file mode 100644 index 00000000..34b10fe5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamedElementOperations.java @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NamedElementOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Named Element' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.NamedElement#validateNoName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Name}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#validateQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Qualified Name}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#validateVisibilityNeedsOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Visibility Needs Ownership}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#qualifiedName() Qualified Name}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#allNamespaces() All Namespaces}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#isDistinguishableFrom(org.eclipse.uml2.uml.NamedElement, org.eclipse.uml2.uml.Namespace) Is Distinguishable From}
  • + *
  • {@link org.eclipse.uml2.uml.NamedElement#separator() Separator}
  • + *
+ *

+ * + * @generated + */ +public final class NamedElementOperations { + + /** + * + * + * @generated + */ + private NamedElementOperations() { + super(); + } + + /** + * + * + * + * If there is no name, or one of the containing namespaces has no name, there is no qualified name. + * (self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) + * + * implies self.qualifiedName->isEmpty() + * + * @generated + */ + public static boolean validateNoName(NamedElement namedElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.NAMED_ELEMENT__NO_NAME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(namedElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{namedElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + * (self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies + * self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + * + * @generated + */ + public static boolean validateQualifiedName(NamedElement namedElement, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.NAMED_ELEMENT__QUALIFIED_NAME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateQualifiedName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(namedElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{namedElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a NamedElement is not owned by a Namespace, it does not have a visibility. + * namespace->isEmpty() implies visibility->isEmpty() + * + * @generated + */ + public static boolean validateVisibilityNeedsOwnership( + NamedElement namedElement, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.NAMED_ELEMENT__VISIBILITY_NEEDS_OWNERSHIP, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateVisibilityNeedsOwnership", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(namedElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{namedElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces. + * result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() + * then + * self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result)) + * else + * Set{} + * endif + * + * @generated + */ + public static String qualifiedName(NamedElement namedElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards. + * result = if self.namespace->isEmpty() + * then Sequence{} + * else self.namespace.allNamespaces()->prepend(self.namespace) + * endif + * + * @generated + */ + public static List allNamespaces(NamedElement namedElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names. + * result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) + * then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty() + * else true + * endif + * + * @generated + */ + public static boolean isDistinguishableFrom(NamedElement namedElement, + NamedElement n, Namespace ns) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query separator() gives the string that is used to separate names when constructing a qualified name. + * result = '::' + * + * @generated + */ + public static String separator(NamedElement namedElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // NamedElementOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamespaceOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamespaceOperations.java new file mode 100644 index 00000000..d096409f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NamespaceOperations.java @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NamespaceOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Namespace' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Namespace#validateMembersAreDistinguishable(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Members Are Distinguishable}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getImportedMembers() Get Imported Members}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#getNamesOfMember(org.eclipse.uml2.uml.NamedElement) Get Names Of Member}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#membersAreDistinguishable() Members Are Distinguishable}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#importMembers(java.util.List) Import Members}
  • + *
  • {@link org.eclipse.uml2.uml.Namespace#excludeCollisions(java.util.List) Exclude Collisions}
  • + *
+ *

+ * + * @generated + */ +public final class NamespaceOperations { + + /** + * + * + * @generated + */ + private NamespaceOperations() { + super(); + } + + /** + * + * + * + * All the members of a Namespace are distinguishable within it. + * membersAreDistinguishable() + * + * @generated + */ + public static boolean validateMembersAreDistinguishable( + Namespace namespace, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.NAMESPACE__MEMBERS_ARE_DISTINGUISHABLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMembersAreDistinguishable", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(namespace, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{namespace})); + } + return false; + } + return true; + } + + /** + * + * + * + * The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports. + * The importedMember property is derived from the ElementImports and the PackageImports. + * result = self.importMembers(self.elementImport.importedElement.asSet()- + * >union(self.packageImport.importedPackage->collect(p | p.visibleMembers()))) + * + * @generated + */ + public static List getImportedMembers(Namespace namespace) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query getNamesOfMember() is overridden to take account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + * The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package. + * result = if self.ownedMember ->includes(element) + * then Set{}->include(element.name) + * else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in + * if elementImports->notEmpty() + * then elementImports->collect(el | el.getName()) + * else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element)) + * endif + * endif + * + * @generated + */ + public static List getNamesOfMember(Namespace namespace, + NamedElement element) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it. + * result = self.member->forAll( memb | + * self.member->excluding(memb)->forAll(other | + * memb.isDistinguishableFrom(other, self))) + * + * @generated + */ + public static boolean membersAreDistinguishable(Namespace namespace) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported. + * result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem | + * mem.imp.isDistinguishableFrom(mem, self))) + * + * @generated + */ + public static List importMembers(Namespace namespace, List imps) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace. + * result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self))) + * + * @generated + */ + public static List excludeCollisions(Namespace namespace, List imps) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // NamespaceOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NodeOperations.java new file mode 100644 index 00000000..c4596574 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/NodeOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: NodeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Node; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Node#validateInternalStructure(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Internal Structure}
  • + *
+ *

+ * + * @generated + */ +public final class NodeOperations { + + /** + * + * + * @generated + */ + private NodeOperations() { + super(); + } + + /** + * + * + * + * The internal structure of a Node (if defined) consists solely of parts of type Node. + * true + * + * @generated + */ + public static boolean validateInternalStructure(Node node, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.NODE__INTERNAL_STRUCTURE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInternalStructure", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(node, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{node})); + } + return false; + } + return true; + } + +} // NodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java new file mode 100644 index 00000000..bdb75327 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectFlowOperations.java @@ -0,0 +1,315 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectFlowOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ObjectFlow; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Object Flow' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateNoActions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Actions}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateCompatibleTypes(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Compatible Types}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateSameUpperBounds(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Upper Bounds}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Target}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateTransformationBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Transformation Behaviour}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateSelectionBehaviour(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Selection Behaviour}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateInputAndOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input And Output Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectFlow#validateIsMulticastOrIsMultireceive(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Is Multicast Or Is Multireceive}
  • + *
+ *

+ * + * @generated + */ +public final class ObjectFlowOperations { + + /** + * + * + * @generated + */ + private ObjectFlowOperations() { + super(); + } + + /** + * + * + * + * Object flows may not have actions at either end. + * true + * + * @generated + */ + public static boolean validateNoActions(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__NO_ACTIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoActions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type. + * + * + * true + * + * @generated + */ + public static boolean validateCompatibleTypes(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__COMPATIBLE_TYPES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompatibleTypes", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds. + * true + * + * @generated + */ + public static boolean validateSameUpperBounds(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__SAME_UPPER_BOUNDS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameUpperBounds", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * An edge with constant weight may not target an object node, or lead to an object node downstream with no intervening actions, that has an upper bound less than the weight. + * true + * + * @generated + */ + public static boolean validateTarget(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__TARGET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTarget", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects. + * true + * + * @generated + */ + public static boolean validateTransformationBehaviour( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__TRANSFORMATION_BEHAVIOUR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTransformationBehaviour", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * An object flow may have a selection behavior only if has an object node as a source. + * true + * + * @generated + */ + public static boolean validateSelectionBehaviour(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__SELECTION_BEHAVIOUR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSelectionBehaviour", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects. + * true + * + * @generated + */ + public static boolean validateInputAndOutputParameter( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__INPUT_AND_OUTPUT_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputAndOutputParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + + /** + * + * + * + * isMulticast and isMultireceive cannot both be true. + * true + * + * @generated + */ + public static boolean validateIsMulticastOrIsMultireceive( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_FLOW__IS_MULTICAST_OR_IS_MULTIRECEIVE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateIsMulticastOrIsMultireceive", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectFlow, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectFlow})); + } + return false; + } + return true; + } + +} // ObjectFlowOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java new file mode 100644 index 00000000..01d9cb9e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ObjectNodeOperations.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ObjectNodeOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ObjectNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Object Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ObjectNode#validateObjectFlowEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Object Flow Edges}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#validateNotUnique(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Unique}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#validateSelectionBehavior(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Selection Behavior}
  • + *
  • {@link org.eclipse.uml2.uml.ObjectNode#validateInputOutputParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Output Parameter}
  • + *
+ *

+ * + * @generated + */ +public final class ObjectNodeOperations { + + /** + * + * + * @generated + */ + private ObjectNodeOperations() { + super(); + } + + /** + * + * + * + * All edges coming into or going out of object nodes must be object flow edges. + * true + * + * @generated + */ + public static boolean validateObjectFlowEdges(ObjectNode objectNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_NODE__OBJECT_FLOW_EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateObjectFlowEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * Object nodes are not unique typed elements + * isUnique = false + * + * @generated + */ + public static boolean validateNotUnique(ObjectNode objectNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_NODE__NOT_UNIQUE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotUnique", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa. + * true + * + * @generated + */ + public static boolean validateSelectionBehavior(ObjectNode objectNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_NODE__SELECTION_BEHAVIOR, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSelectionBehavior", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectNode})); + } + return false; + } + return true; + } + + /** + * + * + * + * A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects. + * true + * + * @generated + */ + public static boolean validateInputOutputParameter(ObjectNode objectNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OBJECT_NODE__INPUT_OUTPUT_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputOutputParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(objectNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{objectNode})); + } + return false; + } + return true; + } + +} // ObjectNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java new file mode 100644 index 00000000..dd929290 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OpaqueExpressionOperations.java @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OpaqueExpressionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.OpaqueExpression; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Opaque Expression' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#validateLanguageBodySize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Language Body Size}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#validateOneBodyDefaultLanguage(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Body Default Language}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#validateOnlyReturnResultParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Only Return Result Parameters}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#validateOneReturnResultParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Return Result Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#value() Value}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#isIntegral() Is Integral}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#isPositive() Is Positive}
  • + *
  • {@link org.eclipse.uml2.uml.OpaqueExpression#isNonNegative() Is Non Negative}
  • + *
+ *

+ * + * @generated + */ +public final class OpaqueExpressionOperations { + + /** + * + * + * @generated + */ + private OpaqueExpressionOperations() { + super(); + } + + /** + * + * + * + * If the language attribute is not empty, then the size of the body and language arrays must be the same. + * language->notEmpty() implies (body->size() = language->size()) + * + * @generated + */ + public static boolean validateLanguageBodySize( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OPAQUE_EXPRESSION__LANGUAGE_BODY_SIZE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateLanguageBodySize", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(opaqueExpression, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{opaqueExpression})); + } + return false; + } + return true; + } + + /** + * + * + * + * If there is only one body then the size of the language is exactly 0 (corresponding to the default language). + * The there is only one body then the size of the language is exactly 0 (corresponding to the default language). + * language->isEmpty() implies (body->size() = 1) + * + * @generated + */ + public static boolean validateOneBodyDefaultLanguage( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OPAQUE_EXPRESSION__ONE_BODY_DEFAULT_LANGUAGE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneBodyDefaultLanguage", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(opaqueExpression, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{opaqueExpression})); + } + return false; + } + return true; + } + + /** + * + * + * + * The behavior may only have return result parameters. + * self.behavior.notEmpty() implies + * + * self.behavior.ownedParameters->select(p | p.direction<>#return)->isEmpty() + * + * @generated + */ + public static boolean validateOnlyReturnResultParameters( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OPAQUE_EXPRESSION__ONLY_RETURN_RESULT_PARAMETERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOnlyReturnResultParameters", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(opaqueExpression, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{opaqueExpression})); + } + return false; + } + return true; + } + + /** + * + * + * + * The behavior must have exactly one return result parameter. + * self.behavior.notEmpty() implies + * + * self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1 + * + * @generated + */ + public static boolean validateOneReturnResultParameter( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OPAQUE_EXPRESSION__ONE_RETURN_RESULT_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneReturnResultParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(opaqueExpression, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{opaqueExpression})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query value() gives an integer value for an expression intended to produce one. + * self.isIntegral() + * true + * + * @generated + */ + public static int value(OpaqueExpression opaqueExpression) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isIntegral() tells whether an expression is intended to produce an integer. + * result = false + * + * @generated + */ + public static boolean isIntegral(OpaqueExpression opaqueExpression) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isPositive() tells whether an integer expression has a positive value. + * self.isIntegral() + * result = false + * + * @generated + */ + public static boolean isPositive(OpaqueExpression opaqueExpression) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isNonNegative() tells whether an integer expression has a non-negative value. + * self.isIntegral() + * result = false + * + * @generated + */ + public static boolean isNonNegative(OpaqueExpression opaqueExpression) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // OpaqueExpressionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OperationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OperationOperations.java new file mode 100644 index 00000000..24573f2a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/OperationOperations.java @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: OperationOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.Type; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Operation' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Operation#validateAtMostOneReturn(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate At Most One Return}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#validateOnlyBodyForQuery(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Only Body For Query}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#isOrdered() Is Ordered}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#isUnique() Is Unique}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#lowerBound() Lower Bound}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#upperBound() Upper Bound}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#getType() Get Type}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#returnResult() Return Result}
  • + *
  • {@link org.eclipse.uml2.uml.Operation#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
+ *

+ * + * @generated + */ +public final class OperationOperations { + + /** + * + * + * @generated + */ + private OperationOperations() { + super(); + } + + /** + * + * + * + * An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return' + * self.ownedParameter->select(par | par.direction = #return)->size() <= 1 + * + * @generated + */ + public static boolean validateAtMostOneReturn(Operation operation, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OPERATION__AT_MOST_ONE_RETURN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAtMostOneReturn", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(operation, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{operation})); + } + return false; + } + return true; + } + + /** + * + * + * + * A bodyCondition can only be specified for a query operation. + * bodyCondition->notEmpty() implies isQuery + * + * @generated + */ + public static boolean validateOnlyBodyForQuery(Operation operation, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.OPERATION__ONLY_BODY_FOR_QUERY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOnlyBodyForQuery", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(operation, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{operation})); + } + return false; + } + return true; + } + + /** + * + * + * + * If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false. + * result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif + * + * @generated + */ + public static boolean isOrdered(Operation operation) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true. + * If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true. + * + * + * result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif + * + * @generated + */ + public static boolean isUnique(Operation operation) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + * If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined. + * + * + * result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif + * + * @generated + */ + public static int lowerBound(Operation operation) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + * If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined. + * + * + * result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif + * + * @generated + */ + public static int upperBound(Operation operation) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined. + * result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif + * + * @generated + */ + public static Type getType(Operation operation) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set + * result = ownedParameter->select (par | par.direction = #return) + * + * @generated + */ + public static List returnResult(Operation operation) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'. + * The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter. + * redefinee.isRedefinitionContextValid(self) + * result = (redefinee.oclIsKindOf(Operation) and + * let op: Operation = redefinee.oclAsType(Operation) in + * self.ownedParameter.size() = op.ownedParameter.size() and + * forAll(i | op.ownedParameter[i].type.conformsTo(self.ownedParameter[i].type)) + * ) + * + * @generated + */ + public static boolean isConsistentWith(Operation operation, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // OperationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageImportOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageImportOperations.java new file mode 100644 index 00000000..13b50900 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageImportOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageImportOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.PackageImport; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Package Import' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.PackageImport#validatePublicOrPrivate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Public Or Private}
  • + *
+ *

+ * + * @generated + */ +public final class PackageImportOperations { + + /** + * + * + * @generated + */ + private PackageImportOperations() { + super(); + } + + /** + * + * + * + * The visibility of a PackageImport is either public or private. + * self.visibility = #public or self.visibility = #private + * + * @generated + */ + public static boolean validatePublicOrPrivate(PackageImport packageImport, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PACKAGE_IMPORT__PUBLIC_OR_PRIVATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePublicOrPrivate", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(packageImport, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{packageImport})); + } + return false; + } + return true; + } + +} // PackageImportOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java new file mode 100644 index 00000000..dd004c32 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PackageOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.NamedElement; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Package' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Package#validateElementsPublicOrPrivate(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Elements Public Or Private}
  • + *
  • {@link org.eclipse.uml2.uml.Package#visibleMembers() Visible Members}
  • + *
  • {@link org.eclipse.uml2.uml.Package#makesVisible(org.eclipse.uml2.uml.NamedElement) Makes Visible}
  • + *
  • {@link org.eclipse.uml2.uml.Package#mustBeOwned() Must Be Owned}
  • + *
+ *

+ * + * @generated + */ +public final class PackageOperations { + + /** + * + * + * @generated + */ + private PackageOperations() { + super(); + } + + /** + * + * + * + * If an element that is owned by a package has visibility, it is public or private. + * self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private) + * + * @generated + */ + public static boolean validateElementsPublicOrPrivate( + org.eclipse.uml2.uml.Package package_, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PACKAGE__ELEMENTS_PUBLIC_OR_PRIVATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateElementsPublicOrPrivate", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(package_, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{package_})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query visibleMembers() defines which members of a Package can be accessed outside it. + * result = member->select( m | self.makesVisible(m)) + * + * @generated + */ + public static List visibleMembers(org.eclipse.uml2.uml.Package package_) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. + * self.member->includes(el) + * result = (ownedMember->includes(el)) or + * (elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or + * (packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty()) + * + * @generated + */ + public static boolean makesVisible(org.eclipse.uml2.uml.Package package_, + NamedElement el) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query mustBeOwned() indicates whether elements of this type must have an owner. + * result = false + * + * @generated + */ + public static boolean mustBeOwned(org.eclipse.uml2.uml.Package package_) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // PackageOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java new file mode 100644 index 00000000..a91c6551 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterOperations.java @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Parameter; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Parameter' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Parameter#validateConnectorEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Connector End}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#validateStreamAndException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Stream And Exception}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#validateNotException(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Exception}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#validateReentrantBehaviors(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Reentrant Behaviors}
  • + *
  • {@link org.eclipse.uml2.uml.Parameter#validateInAndOut(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate In And Out}
  • + *
+ *

+ * + * @generated + */ +public final class ParameterOperations { + + /** + * + * + * @generated + */ + private ParameterOperations() { + super(); + } + + /** + * + * + * + * A parameter may only be associated with a connector end within the context of a collaboration. + * self.end.notEmpty() implies self.collaboration.notEmpty() + * + * @generated + */ + public static boolean validateConnectorEnd(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER__CONNECTOR_END, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConnectorEnd", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameter})); + } + return false; + } + return true; + } + + /** + * + * + * + * A parameter cannot be a stream and exception at the same time. + * true + * + * @generated + */ + public static boolean validateStreamAndException(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER__STREAM_AND_EXCEPTION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateStreamAndException", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameter})); + } + return false; + } + return true; + } + + /** + * + * + * + * An input parameter cannot be an exception. + * true + * + * @generated + */ + public static boolean validateNotException(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER__NOT_EXCEPTION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotException", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameter})); + } + return false; + } + return true; + } + + /** + * + * + * + * Reentrant behaviors cannot have stream parameters. + * true + * + * @generated + */ + public static boolean validateReentrantBehaviors(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER__REENTRANT_BEHAVIORS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateReentrantBehaviors", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameter})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect. + * true + * + * @generated + */ + public static boolean validateInAndOut(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER__IN_AND_OUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInAndOut", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameter})); + } + return false; + } + return true; + } + +} // ParameterOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java new file mode 100644 index 00000000..6f4b1580 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterSetOperations.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterSetOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ParameterSet; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Parameter Set' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ParameterSet#validateSameParameterizedEntity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Parameterized Entity}
  • + *
  • {@link org.eclipse.uml2.uml.ParameterSet#validateInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input}
  • + *
  • {@link org.eclipse.uml2.uml.ParameterSet#validateTwoParameterSets(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Two Parameter Sets}
  • + *
+ *

+ * + * @generated + */ +public final class ParameterSetOperations { + + /** + * + * + * @generated + */ + private ParameterSetOperations() { + super(); + } + + /** + * + * + * + * The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity. + * true + * + * @generated + */ + public static boolean validateSameParameterizedEntity( + ParameterSet parameterSet, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER_SET__SAME_PARAMETERIZED_ENTITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameParameterizedEntity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameterSet, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameterSet})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters. + * true + * + * @generated + */ + public static boolean validateInput(ParameterSet parameterSet, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER_SET__INPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameterSet, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameterSet})); + } + return false; + } + return true; + } + + /** + * + * + * + * Two parameter sets cannot have exactly the same set of parameters. + * true + * + * @generated + */ + public static boolean validateTwoParameterSets(ParameterSet parameterSet, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PARAMETER_SET__TWO_PARAMETER_SETS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTwoParameterSets", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(parameterSet, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{parameterSet})); + } + return false; + } + return true; + } + +} // ParameterSetOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterableElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterableElementOperations.java new file mode 100644 index 00000000..1cb5866f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ParameterableElementOperations.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ParameterableElementOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.ParameterableElement; + +/** + * + * A static utility class that provides operations related to 'Parameterable Element' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ParameterableElement#isCompatibleWith(org.eclipse.uml2.uml.ParameterableElement) Is Compatible With}
  • + *
  • {@link org.eclipse.uml2.uml.ParameterableElement#isTemplateParameter() Is Template Parameter}
  • + *
+ *

+ * + * @generated + */ +public final class ParameterableElementOperations { + + /** + * + * + * @generated + */ + private ParameterableElementOperations() { + super(); + } + + /** + * + * + * + * The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints. + * result = p->oclIsKindOf(self.oclType) + * + * @generated + */ + public static boolean isCompatibleWith( + ParameterableElement parameterableElement, ParameterableElement p) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter. + * result = templateParameter->notEmpty() + * + * @generated + */ + public static boolean isTemplateParameter( + ParameterableElement parameterableElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ParameterableElementOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java new file mode 100644 index 00000000..d454ae54 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PartDecompositionOperations.java @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PartDecompositionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.PartDecomposition; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Part Decomposition' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.PartDecomposition#validatePartsOfInternalStructures(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Parts Of Internal Structures}
  • + *
  • {@link org.eclipse.uml2.uml.PartDecomposition#validateAssume(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Assume}
  • + *
  • {@link org.eclipse.uml2.uml.PartDecomposition#validateCommutativityOfDecomposition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Commutativity Of Decomposition}
  • + *
+ *

+ * + * @generated + */ +public final class PartDecompositionOperations { + + /** + * + * + * @generated + */ + private PartDecompositionOperations() { + super(); + } + + /** + * + * + * + * PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations. + * true + * + * @generated + */ + public static boolean validatePartsOfInternalStructures( + PartDecomposition partDecomposition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PART_DECOMPOSITION__PARTS_OF_INTERNAL_STRUCTURES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePartsOfInternalStructures", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(partDecomposition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{partDecomposition})); + } + return false; + } + return true; + } + + /** + * + * + * + * Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order. + * + * + * + * i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D + * + * ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D. + * + * iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D + * + * + * true + * + * @generated + */ + public static boolean validateAssume(PartDecomposition partDecomposition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PART_DECOMPOSITION__ASSUME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssume", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(partDecomposition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{partDecomposition})); + } + return false; + } + return true; + } + + /** + * + * + * + * Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an + * + * InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition) + * + * + * true + * + * @generated + */ + public static boolean validateCommutativityOfDecomposition( + PartDecomposition partDecomposition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PART_DECOMPOSITION__COMMUTATIVITY_OF_DECOMPOSITION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCommutativityOfDecomposition", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(partDecomposition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{partDecomposition})); + } + return false; + } + return true; + } + +} // PartDecompositionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PinOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PinOperations.java new file mode 100644 index 00000000..b321c899 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PinOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PinOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Pin; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Pin' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Pin#validateControlPins(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Control Pins}
  • + *
+ *

+ * + * @generated + */ +public final class PinOperations { + + /** + * + * + * @generated + */ + private PinOperations() { + super(); + } + + /** + * + * + * + * Control pins have a control type + * isControl implies isControlType + * + * @generated + */ + public static boolean validateControlPins(Pin pin, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PIN__CONTROL_PINS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateControlPins", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pin, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pin})); + } + return false; + } + return true; + } + +} // PinOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java new file mode 100644 index 00000000..c91251b3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PortOperations.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PortOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Port; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Port' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Port#validateRequiredInterfaces(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Required Interfaces}
  • + *
  • {@link org.eclipse.uml2.uml.Port#validatePortAggregation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Port Aggregation}
  • + *
  • {@link org.eclipse.uml2.uml.Port#validatePortDestroyed(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Port Destroyed}
  • + *
  • {@link org.eclipse.uml2.uml.Port#validateDefaultValue(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Default Value}
  • + *
+ *

+ * + * @generated + */ +public final class PortOperations { + + /** + * + * + * @generated + */ + private PortOperations() { + super(); + } + + /** + * + * + * + * The required interfaces of a port must be provided by elements to which the port is connected. + * true + * + * @generated + */ + public static boolean validateRequiredInterfaces(Port port, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PORT__REQUIRED_INTERFACES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRequiredInterfaces", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(port, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{port})); + } + return false; + } + return true; + } + + /** + * + * + * + * Port.aggregation must be composite. + * true + * + * @generated + */ + public static boolean validatePortAggregation(Port port, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PORT__PORT_AGGREGATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePortAggregation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(port, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{port})); + } + return false; + } + return true; + } + + /** + * + * + * + * When a port is destroyed, all connectors attached to this port will be destroyed also. + * true + * + * @generated + */ + public static boolean validatePortDestroyed(Port port, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PORT__PORT_DESTROYED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePortDestroyed", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(port, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{port})); + } + return false; + } + return true; + } + + /** + * + * + * + * A defaultValue for port cannot be specified when the type of the Port is an Interface + * true + * + * @generated + */ + public static boolean validateDefaultValue(Port port, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PORT__DEFAULT_VALUE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDefaultValue", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(port, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{port})); + } + return false; + } + return true; + } + +} // PortOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProfileOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProfileOperations.java new file mode 100644 index 00000000..e75fb239 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProfileOperations.java @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProfileOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Profile; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Profile' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Profile#validateMetaclassReferenceNotSpecialized(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Metaclass Reference Not Specialized}
  • + *
  • {@link org.eclipse.uml2.uml.Profile#validateReferencesSameMetamodel(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate References Same Metamodel}
  • + *
  • {@link org.eclipse.uml2.uml.Profile#allOwningPackages() All Owning Packages}
  • + *
+ *

+ * + * @generated + */ +public final class ProfileOperations { + + /** + * + * + * @generated + */ + private ProfileOperations() { + super(); + } + + /** + * + * + * + * An element imported as a metaclassReference is not specialized or generalized in a Profile. + * self.metaclassReference.importedElement-> + * + * select(c | c.oclIsKindOf(Classifier) and + * + * (c.generalization.namespace = self or + * + * (c.specialization.namespace = self) )->isEmpty() + * + * @generated + */ + public static boolean validateMetaclassReferenceNotSpecialized( + Profile profile, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROFILE__METACLASS_REFERENCE_NOT_SPECIALIZED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMetaclassReferenceNotSpecialized", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(profile, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{profile})); + } + return false; + } + return true; + } + + /** + * + * + * + * All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel. + * self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())-> + * + * union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty() + * + * @generated + */ + public static boolean validateReferencesSameMetamodel(Profile profile, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROFILE__REFERENCES_SAME_METAMODEL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateReferencesSameMetamodel", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(profile, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{profile})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query allOwningPackages() returns all the directly or indirectly owning packages. + * result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages()) + * + * @generated + */ + public static List allOwningPackages(Profile profile) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ProfileOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java new file mode 100644 index 00000000..e170b46c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java @@ -0,0 +1,472 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PropertyOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.RedefinableElement; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Property' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Property#validateMultiplicityOfComposite(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Composite}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateSubsettingContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Subsetting Context}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateNavigablePropertyRedefinition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Navigable Property Redefinition}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateSubsettingRules(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Subsetting Rules}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateNavigableReadonly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Navigable Readonly}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsDerived(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Derived Union Is Derived}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateDerivedUnionIsReadOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Derived Union Is Read Only}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deployment Target}
  • + *
  • {@link org.eclipse.uml2.uml.Property#validateBindingToAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Binding To Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isAttribute(org.eclipse.uml2.uml.Property) Is Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.Property#getOpposite() Get Opposite}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isComposite() Is Composite}
  • + *
  • {@link org.eclipse.uml2.uml.Property#subsettingContext() Subsetting Context}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isNavigable() Is Navigable}
  • + *
  • {@link org.eclipse.uml2.uml.Property#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
+ *

+ * + * @generated + */ +public final class PropertyOperations { + + /** + * + * + * @generated + */ + private PropertyOperations() { + super(); + } + + /** + * + * + * + * A multiplicity of a composite aggregation must not have an upper bound greater than 1. + * A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1. + * isComposite implies (upperBound()->isEmpty() or upperBound() <= 1) + * + * @generated + */ + public static boolean validateMultiplicityOfComposite(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__MULTIPLICITY_OF_COMPOSITE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfComposite", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. + * self.subsettedProperty->notEmpty() implies + * (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc | + * self.subsettedProperty->forAll(sp | + * sp.subsettingContext()->exists(c | sc.conformsTo(c))))) + * + * @generated + */ + public static boolean validateSubsettingContext(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__SUBSETTING_CONTEXT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSubsettingContext", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * A navigable property can only be redefined or subsetted by a navigable property. + * (self.subsettedProperty->exists(sp | sp.isNavigable()) implies self.isNavigable()) + * and (self.redefinedProperty->exists(rp | rp.isNavigable()) implies self.isNavigable()) + * + * @generated + */ + public static boolean validateNavigablePropertyRedefinition( + Property property, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__NAVIGABLE_PROPERTY_REDEFINITION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNavigablePropertyRedefinition", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less. + * self.subsettedProperty->forAll(sp | + * self.type.conformsTo(sp.type) and + * ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies + * self.upperBound()<=sp.upperBound() )) + * + * @generated + */ + public static boolean validateSubsettingRules(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__SUBSETTING_RULES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSubsettingRules", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only a navigable property can be marked as readOnly. + * isReadOnly implies isNavigable() + * + * @generated + */ + public static boolean validateNavigableReadonly(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__NAVIGABLE_READONLY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNavigableReadonly", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * A derived union is derived. + * isDerivedUnion implies isDerived + * + * @generated + */ + public static boolean validateDerivedUnionIsDerived(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__DERIVED_UNION_IS_DERIVED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDerivedUnionIsDerived", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * A derived union is read only. + * isDerivedUnion implies isReadOnly + * + * @generated + */ + public static boolean validateDerivedUnionIsReadOnly(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__DERIVED_UNION_IS_READ_ONLY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDerivedUnionIsReadOnly", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node. + * true + * + * @generated + */ + public static boolean validateDeploymentTarget(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__DEPLOYMENT_TARGET, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeploymentTarget", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * A binding of a property template parameter representing an attribute must be to an attribute. + * (isAttribute(self) and (templateParameterSubstitution->notEmpty()) + * + * implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal))) + * + * @generated + */ + public static boolean validateBindingToAttribute(Property property, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROPERTY__BINDING_TO_ATTRIBUTE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBindingToAttribute", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(property, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{property})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query isAttribute() is true if the Property is defined as an attribute of some classifier. + * result = Classifier.allInstances->exists(c | c.attribute->includes(p)) + * + * @generated + */ + public static boolean isAttribute(Property property, Property p) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end. + * result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2 + * then + * let otherEnd = (association.memberEnd - self)->any() in + * if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif + * else Set {} + * endif + * + * @generated + */ + public static Property getOpposite(Property property) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The value of isComposite is true only if aggregation is composite. + * result = (self.aggregation = #composite) + * + * @generated + */ + public static boolean isComposite(Property property) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends. + * result = if association->notEmpty() + * then association.endType-type + * else if classifier->notEmpty() then Set{classifier} else Set{} endif + * endif + * + * @generated + */ + public static List subsettingContext(Property property) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isNavigable indicates whether it is possible to navigate across the property. + * The query isNavigable() indicates whether it is possible to navigate across the property. + * result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self) + * + * @generated + */ + public static boolean isNavigable(Property property) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined property is derived. + * The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined attribute is property. + * redefinee.isRedefinitionContextValid(self) + * result = redefinee.oclIsKindOf(Property) and + * let prop : Property = redefinee.oclAsType(Property) in + * (prop.type.conformsTo(self.type) and + * ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and + * ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() <= self.lowerBound()) and + * (self.isDerived implies prop.isDerived) and + * (self.isComposite implies prop.isComposite)) + * + * @generated + */ + public static boolean isConsistentWith(Property property, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // PropertyOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java new file mode 100644 index 00000000..38caa33d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolStateMachineOperations.java @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolStateMachineOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ProtocolStateMachine; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Protocol State Machine' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ProtocolStateMachine#validateProtocolTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Protocol Transitions}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolStateMachine#validateEntryExitDo(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Entry Exit Do}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolStateMachine#validateDeepOrShallowHistory(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deep Or Shallow History}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolStateMachine#validatePortsConnected(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Ports Connected}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolStateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Classifier Context}
  • + *
+ *

+ * + * @generated + */ +public final class ProtocolStateMachineOperations { + + /** + * + * + * @generated + */ + private ProtocolStateMachineOperations() { + super(); + } + + /** + * + * + * + * All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package) + * region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition))) + * + * @generated + */ + public static boolean validateProtocolTransitions( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_STATE_MACHINE__PROTOCOL_TRANSITIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateProtocolTransitions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolStateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolStateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * The states of a protocol state machine cannot have entry, exit, or do activity actions. + * region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies + * (v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty()))) + * + * + * @generated + */ + public static boolean validateEntryExitDo( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_STATE_MACHINE__ENTRY_EXIT_DO, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEntryExitDo", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolStateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolStateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * Protocol state machines cannot have deep or shallow history pseudostates. + * region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies + * ((v.kind <> #deepHistory) and (v.kind <> #shallowHistory))))) + * + * + * @generated + */ + public static boolean validateDeepOrShallowHistory( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_STATE_MACHINE__DEEP_OR_SHALLOW_HISTORY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeepOrShallowHistory", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolStateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolStateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined). + * true + * + * @generated + */ + public static boolean validatePortsConnected( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_STATE_MACHINE__PORTS_CONNECTED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePortsConnected", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolStateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolStateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * A protocol state machine must only have a classifier context, not a behavioral feature context. + * (not context->isEmpty( )) and specification->isEmpty() + * + * @generated + */ + public static boolean validateClassifierContext( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_STATE_MACHINE__CLASSIFIER_CONTEXT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClassifierContext", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolStateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolStateMachine})); + } + return false; + } + return true; + } + +} // ProtocolStateMachineOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolTransitionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolTransitionOperations.java new file mode 100644 index 00000000..c62c8fba --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ProtocolTransitionOperations.java @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ProtocolTransitionOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ProtocolTransition; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Protocol Transition' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#validateBelongsToPsm(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Belongs To Psm}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#validateAssociatedActions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Associated Actions}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#validateRefersToOperation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Refers To Operation}
  • + *
  • {@link org.eclipse.uml2.uml.ProtocolTransition#belongsToPSM() Belongs To PSM}
  • + *
+ *

+ * + * @generated + */ +public final class ProtocolTransitionOperations { + + /** + * + * + * @generated + */ + private ProtocolTransitionOperations() { + super(); + } + + /** + * + * + * + * A protocol transition always belongs to a protocol state machine. + * container.belongsToPSM() + * + * @generated + */ + public static boolean validateBelongsToPsm( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_TRANSITION__BELONGS_TO_PSM, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBelongsToPsm", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolTransition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolTransition})); + } + return false; + } + return true; + } + + /** + * + * + * + * A protocol transition never has associated actions. + * effect->isEmpty() + * + * @generated + */ + public static boolean validateAssociatedActions( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_TRANSITION__ASSOCIATED_ACTIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociatedActions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolTransition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolTransition})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a protocol transition refers to an operation (i. e. has a call trigger corresponding to an operation), then that operation should apply to the context classifier of the state machine of the protocol transition. + * true + * + * @generated + */ + public static boolean validateRefersToOperation( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PROTOCOL_TRANSITION__REFERS_TO_OPERATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRefersToOperation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(protocolTransition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolTransition})); + } + return false; + } + return true; + } + + /** + * + * + * + * The operation belongsToPSM () checks if the region belongs to a protocol state machine + * result = if not stateMachine->isEmpty() then + * oclIsTypeOf(ProtocolStateMachine) + * else if not state->isEmpty() then + * state.container.belongsToPSM () + * else false + * + * @generated + */ + public static boolean belongsToPSM(ProtocolTransition protocolTransition) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ProtocolTransitionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java new file mode 100644 index 00000000..9a6eea9f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PseudostateOperations.java @@ -0,0 +1,362 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: PseudostateOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Pseudostate; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Pseudostate' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Initial Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateHistoryVertices(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate History Vertices}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateJoinVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Join Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsIncoming(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Transitions Incoming}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateForkVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Fork Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateTransitionsOutgoing(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Transitions Outgoing}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateJunctionVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Junction Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateChoiceVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Choice Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Pseudostate#validateOutgoingFromInitial(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Outgoing From Initial}
  • + *
+ *

+ * + * @generated + */ +public final class PseudostateOperations { + + /** + * + * + * @generated + */ + private PseudostateOperations() { + super(); + } + + /** + * + * + * + * An initial vertex can have at most one outgoing transition. + * (self.kind = #initial) implies (self.outgoing->size <= 1) + * + * @generated + */ + public static boolean validateInitialVertex(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__INITIAL_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInitialVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * History vertices can have at most one outgoing transition. + * ((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies + * (self.outgoing->size <= 1) + * + * + * @generated + */ + public static boolean validateHistoryVertices(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__HISTORY_VERTICES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateHistoryVertices", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition. + * (self.kind = #join) implies + * ((self.outgoing->size = 1) and (self.incoming->size >= 2)) + * + * + * @generated + */ + public static boolean validateJoinVertex(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__JOIN_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateJoinVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * All transitions incoming a join vertex must originate in different regions of an orthogonal state. + * (self.kind = #join) implies + * self.incoming->forAll (t1, t2 | t1<>t2 implies + * (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal)) + * + * @generated + */ + public static boolean validateTransitionsIncoming(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__TRANSITIONS_INCOMING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTransitionsIncoming", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition. + * (self.kind = #fork) implies + * ((self.incoming->size = 1) and (self.outgoing->size >= 2)) + * + * + * @generated + */ + public static boolean validateForkVertex(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__FORK_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateForkVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * All transitions outgoing a fork vertex must target states in different regions of an orthogonal state. + * (self.kind = #fork) implies + * self.outgoing->forAll (t1, t2 | t1<>t2 implies + * (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal)) + * + * @generated + */ + public static boolean validateTransitionsOutgoing(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__TRANSITIONS_OUTGOING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTransitionsOutgoing", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition. + * (self.kind = #junction) implies + * ((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + * + * + * @generated + */ + public static boolean validateJunctionVertex(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__JUNCTION_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateJunctionVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition. + * (self.kind = #choice) implies + * ((self.incoming->size >= 1) and (self.outgoing->size >= 1)) + * + * + * @generated + */ + public static boolean validateChoiceVertex(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__CHOICE_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateChoiceVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + + /** + * + * + * + * The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard. + * (self.kind = #initial) implies (self.outgoing.guard->isEmpty() + * + * and self.outgoing.trigger->isEmpty()) + * + * @generated + */ + public static boolean validateOutgoingFromInitial(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.PSEUDOSTATE__OUTGOING_FROM_INITIAL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOutgoingFromInitial", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(pseudostate, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{pseudostate})); + } + return false; + } + return true; + } + +} // PseudostateOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java new file mode 100644 index 00000000..4164a040 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/QualifierValueOperations.java @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: QualifierValueOperations.java,v 1.1 2005/11/14 22:25:52 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.QualifierValue; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Qualifier Value' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.QualifierValue#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Qualifier Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.QualifierValue#validateTypeOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Of Qualifier}
  • + *
  • {@link org.eclipse.uml2.uml.QualifierValue#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Qualifier}
  • + *
+ *

+ * + * @generated + */ +public final class QualifierValueOperations { + + /** + * + * + * @generated + */ + private QualifierValueOperations() { + super(); + } + + /** + * + * + * + * The qualifier attribute must be a qualifier of the association end of the link-end data. + * self.LinkEndData.end->collect(qualifier)->includes(self.qualifier) + * + * @generated + */ + public static boolean validateQualifierAttribute( + QualifierValue qualifierValue, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.QUALIFIER_VALUE__QUALIFIER_ATTRIBUTE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateQualifierAttribute", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(qualifierValue, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{qualifierValue})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the qualifier value input pin is the same as the type of the qualifier attribute. + * self.value.type = self.qualifier.type + * + * @generated + */ + public static boolean validateTypeOfQualifier( + QualifierValue qualifierValue, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.QUALIFIER_VALUE__TYPE_OF_QUALIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOfQualifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(qualifierValue, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{qualifierValue})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the qualifier value input pin is "1..1". + * self.value.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfQualifier( + QualifierValue qualifierValue, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.QUALIFIER_VALUE__MULTIPLICITY_OF_QUALIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfQualifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(qualifierValue, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{qualifierValue})); + } + return false; + } + return true; + } + +} // QualifierValueOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadExtentActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadExtentActionOperations.java new file mode 100644 index 00000000..45fdce61 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadExtentActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadExtentActionOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadExtentAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Extent Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadExtentAction#validateTypeIsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Is Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.ReadExtentAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Result}
  • + *
+ *

+ * + * @generated + */ +public final class ReadExtentActionOperations { + + /** + * + * + * @generated + */ + private ReadExtentActionOperations() { + super(); + } + + /** + * + * + * + * The type of the result output pin is the classifier. + * true + * + * @generated + */ + public static boolean validateTypeIsClassifier( + ReadExtentAction readExtentAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_EXTENT_ACTION__TYPE_IS_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeIsClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readExtentAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readExtentAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the result output pin is 0..*. + * self.result.multiplicity.is(0,#null) + * + * @generated + */ + public static boolean validateMultiplicityOfResult( + ReadExtentAction readExtentAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_EXTENT_ACTION__MULTIPLICITY_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readExtentAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readExtentAction})); + } + return false; + } + return true; + } + +} // ReadExtentActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadIsClassifiedObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadIsClassifiedObjectActionOperations.java new file mode 100644 index 00000000..160ec3e2 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadIsClassifiedObjectActionOperations.java @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadIsClassifiedObjectActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadIsClassifiedObjectAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Is Classified Object Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#validateMultiplicityOfInput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Input}
  • + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#validateNoType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Type}
  • + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#validateMultiplicityOfOutput(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Output}
  • + *
  • {@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction#validateBooleanResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Boolean Result}
  • + *
+ *

+ * + * @generated + */ +public final class ReadIsClassifiedObjectActionOperations { + + /** + * + * + * @generated + */ + private ReadIsClassifiedObjectActionOperations() { + super(); + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfInput( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_IS_CLASSIFIED_OBJECT_ACTION__MULTIPLICITY_OF_INPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfInput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readIsClassifiedObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readIsClassifiedObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The input pin has no type. + * self.object.type->isEmpty() + * + * @generated + */ + public static boolean validateNoType( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_IS_CLASSIFIED_OBJECT_ACTION__NO_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readIsClassifiedObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readIsClassifiedObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfOutput( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_IS_CLASSIFIED_OBJECT_ACTION__MULTIPLICITY_OF_OUTPUT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfOutput", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readIsClassifiedObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readIsClassifiedObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the output pin is Boolean + * self.result.type = Boolean + * + * @generated + */ + public static boolean validateBooleanResult( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_IS_CLASSIFIED_OBJECT_ACTION__BOOLEAN_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBooleanResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readIsClassifiedObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readIsClassifiedObjectAction})); + } + return false; + } + return true; + } + +} // ReadIsClassifiedObjectActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java new file mode 100644 index 00000000..ee957610 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkActionOperations.java @@ -0,0 +1,231 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadLinkAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Link Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadLinkAction#validateOneOpenEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Open End}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type And Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkAction#validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Compatible Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkAction#validateNavigableOpenEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Navigable Open End}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Visibility}
  • + *
+ *

+ * + * @generated + */ +public final class ReadLinkActionOperations { + + /** + * + * + * @generated + */ + private ReadLinkActionOperations() { + super(); + } + + /** + * + * + * + * Exactly one link-end data specification (the 'open' end) must not have an end object input pin. + * self.endData->select(ed | ed.value->size() = 0)->size() = 1 + * + * @generated + */ + public static boolean validateOneOpenEnd(ReadLinkAction readLinkAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_ACTION__ONE_OPEN_END, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneOpenEnd", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type and ordering of the result output pin are same as the type and ordering of the open association end. + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * self.result.type = openend.type + * and self.result.ordering = openend.ordering + * + * + * @generated + */ + public static boolean validateTypeAndOrdering( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_ACTION__TYPE_AND_ORDERING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeAndOrdering", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the open association end must be compatible with the multiplicity of the result output pin. + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * openend.multiplicity.compatibleWith(self.result.multiplicity) + * + * + * @generated + */ + public static boolean validateCompatibleMultiplicity( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_ACTION__COMPATIBLE_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompatibleMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The open end must be navigable. + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * openend.isNavigable() + * + * + * @generated + */ + public static boolean validateNavigableOpenEnd( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_ACTION__NAVIGABLE_OPEN_END, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNavigableOpenEnd", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * Visibility of the open end must allow access to the object performing the action. + * let host : Classifier = self.context in + * let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in + * openend.visibility = #public + * or self.endData->exists(oed | not oed.end = openend + * and (host = oed.end.participant + * or (openend.visibility = #protected + * and host.allSupertypes->includes(oed.end.participant)))) + * + * + * @generated + */ + public static boolean validateVisibility(ReadLinkAction readLinkAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_ACTION__VISIBILITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateVisibility", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkAction})); + } + return false; + } + return true; + } + +} // ReadLinkActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java new file mode 100644 index 00000000..0b811c67 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndActionOperations.java @@ -0,0 +1,287 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkObjectEndActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadLinkObjectEndAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Link Object End Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateProperty(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Property}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateAssociationOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Association Of Association}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Ends Of Association}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Of Object}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Object}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateTypeOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Of Result}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Result}
  • + *
+ *

+ * + * @generated + */ +public final class ReadLinkObjectEndActionOperations { + + /** + * + * + * @generated + */ + private ReadLinkObjectEndActionOperations() { + super(); + } + + /** + * + * + * + * The property must be an association end. + * self.end.association.notEmpty() + * + * @generated + */ + public static boolean validateProperty( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__PROPERTY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateProperty", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The association of the association end must be an association class. + * self.end.Association.oclIsKindOf(AssociationClass) + * + * @generated + */ + public static boolean validateAssociationOfAssociation( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__ASSOCIATION_OF_ASSOCIATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociationOfAssociation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The ends of the association must not be static. + * self.end.association.memberEnd->forall(e | not e.isStatic) + * + * @generated + */ + public static boolean validateEndsOfAssociation( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__ENDS_OF_ASSOCIATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEndsOfAssociation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the object input pin is the association class that owns the association end. + * self.object.type = self.end.association + * + * @generated + */ + public static boolean validateTypeOfObject( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__TYPE_OF_OBJECT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOfObject", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the object input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfObject( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__MULTIPLICITY_OF_OBJECT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfObject", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the result output pin is the same as the type of the association end. + * self.result.type = self.end.type + * + * @generated + */ + public static boolean validateTypeOfResult( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__TYPE_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the result output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfResult( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_ACTION__MULTIPLICITY_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndAction})); + } + return false; + } + return true; + } + +} // ReadLinkObjectEndActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java new file mode 100644 index 00000000..83af0635 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadLinkObjectEndQualifierActionOperations.java @@ -0,0 +1,321 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadLinkObjectEndQualifierActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Link Object End Qualifier Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateQualifierAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Qualifier Attribute}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateAssociationOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Association Of Association}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateEndsOfAssociation(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Ends Of Association}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateTypeOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Of Object}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfQualifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Qualifier}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Object}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Result}
  • + *
+ *

+ * + * @generated + */ +public final class ReadLinkObjectEndQualifierActionOperations { + + /** + * + * + * @generated + */ + private ReadLinkObjectEndQualifierActionOperations() { + super(); + } + + /** + * + * + * + * The qualifier attribute must be a qualifier attribute of an association end. + * self.qualifier.associationEnd->size() = 1 + * + * @generated + */ + public static boolean validateQualifierAttribute( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER_ATTRIBUTE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateQualifierAttribute", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The association of the association end of the qualifier attribute must be an association class. + * self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass) + * + * @generated + */ + public static boolean validateAssociationOfAssociation( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ASSOCIATION_OF_ASSOCIATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAssociationOfAssociation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The ends of the association must not be static. + * self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic) + * + * @generated + */ + public static boolean validateEndsOfAssociation( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__ENDS_OF_ASSOCIATION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEndsOfAssociation", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the object input pin is the association class that owns the association end that has the given qualifier attribute. + * self.object.type = self.qualifier.associationEnd.association + * + * @generated + */ + public static boolean validateTypeOfObject( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__TYPE_OF_OBJECT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOfObject", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the qualifier attribute is 1..1. + * self.qualifier.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfQualifier( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_QUALIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfQualifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the object input pin is 1..1. + * self.object.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfObject( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_OBJECT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfObject", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the result output pin is the same as the type of the qualifier attribute. + * self.result.type = self.qualifier.type + * + * @generated + */ + public static boolean validateSameType( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the result output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicityOfResult( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readLinkObjectEndQualifierAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readLinkObjectEndQualifierAction})); + } + return false; + } + return true; + } + +} // ReadLinkObjectEndQualifierActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java new file mode 100644 index 00000000..f699c957 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadSelfActionOperations.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadSelfActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadSelfAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Self Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadSelfAction#validateContained(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Contained}
  • + *
  • {@link org.eclipse.uml2.uml.ReadSelfAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Static}
  • + *
  • {@link org.eclipse.uml2.uml.ReadSelfAction#validateType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type}
  • + *
  • {@link org.eclipse.uml2.uml.ReadSelfAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class ReadSelfActionOperations { + + /** + * + * + * @generated + */ + private ReadSelfActionOperations() { + super(); + } + + /** + * + * + * + * The action must be contained in an behavior that has a host classifier. + * self.context->size() = 1 + * + * @generated + */ + public static boolean validateContained(ReadSelfAction readSelfAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_SELF_ACTION__CONTAINED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateContained", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readSelfAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readSelfAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static. + * true + * + * @generated + */ + public static boolean validateNotStatic(ReadSelfAction readSelfAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_SELF_ACTION__NOT_STATIC, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotStatic", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readSelfAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readSelfAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the result output pin is the host classifier. + * self.result.type = self.context + * + * @generated + */ + public static boolean validateType(ReadSelfAction readSelfAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_SELF_ACTION__TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readSelfAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readSelfAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the result output pin is 1..1. + * self.result.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity(ReadSelfAction readSelfAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_SELF_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readSelfAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readSelfAction})); + } + return false; + } + return true; + } + +} // ReadSelfActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadStructuralFeatureActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadStructuralFeatureActionOperations.java new file mode 100644 index 00000000..c9170313 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadStructuralFeatureActionOperations.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadStructuralFeatureActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadStructuralFeatureAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Structural Feature Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadStructuralFeatureAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type And Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.ReadStructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class ReadStructuralFeatureActionOperations { + + /** + * + * + * @generated + */ + private ReadStructuralFeatureActionOperations() { + super(); + } + + /** + * + * + * + * The type and ordering of the result output pin are the same as the type and ordering of the structural feature. + * self.result.type = self.structuralFeature.type + * and self.result.ordering = self.structuralFeature.ordering + * + * + * @generated + */ + public static boolean validateTypeAndOrdering( + ReadStructuralFeatureAction readStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_STRUCTURAL_FEATURE_ACTION__TYPE_AND_ORDERING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeAndOrdering", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readStructuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readStructuralFeatureAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the structural feature must be compatible with the multiplicity of the output pin. + * self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity) + * + * @generated + */ + public static boolean validateMultiplicity( + ReadStructuralFeatureAction readStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readStructuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readStructuralFeatureAction})); + } + return false; + } + return true; + } + +} // ReadStructuralFeatureActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadVariableActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadVariableActionOperations.java new file mode 100644 index 00000000..25a69774 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReadVariableActionOperations.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReadVariableActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReadVariableAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Read Variable Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReadVariableAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type And Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.ReadVariableAction#validateCompatibleMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Compatible Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class ReadVariableActionOperations { + + /** + * + * + * @generated + */ + private ReadVariableActionOperations() { + super(); + } + + /** + * + * + * + * The type and ordering of the result output pin of a read-variable action are the same as the type and ordering of the variable. + * self.result.type =self.variable.type + * and self.result.ordering = self.variable.ordering + * + * + * @generated + */ + public static boolean validateTypeAndOrdering( + ReadVariableAction readVariableAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_VARIABLE_ACTION__TYPE_AND_ORDERING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeAndOrdering", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readVariableAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readVariableAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the variable must be compatible with the multiplicity of the output pin. + * self.variable.multiplicity.compatibleWith(self.result.multiplicity) + * + * @generated + */ + public static boolean validateCompatibleMultiplicity( + ReadVariableAction readVariableAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.READ_VARIABLE_ACTION__COMPATIBLE_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompatibleMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(readVariableAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readVariableAction})); + } + return false; + } + return true; + } + +} // ReadVariableActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReceptionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReceptionOperations.java new file mode 100644 index 00000000..f60bc2cd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReceptionOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReceptionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Reception; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Reception' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Reception#validateNotQuery(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Query}
  • + *
+ *

+ * + * @generated + */ +public final class ReceptionOperations { + + /** + * + * + * @generated + */ + private ReceptionOperations() { + super(); + } + + /** + * + * + * + * A Reception can not be a query. + * not self.isQuery + * + * @generated + */ + public static boolean validateNotQuery(Reception reception, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.RECEPTION__NOT_QUERY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotQuery", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(reception, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{reception})); + } + return false; + } + return true; + } + +} // ReceptionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java new file mode 100644 index 00000000..e5f2b747 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReclassifyObjectActionOperations.java @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReclassifyObjectActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReclassifyObjectAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Reclassify Object Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateClassifierNotAbstract(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Classifier Not Abstract}
  • + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.ReclassifyObjectAction#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Pin}
  • + *
+ *

+ * + * @generated + */ +public final class ReclassifyObjectActionOperations { + + /** + * + * + * @generated + */ + private ReclassifyObjectActionOperations() { + super(); + } + + /** + * + * + * + * None of the new classifiers may be abstract. + * not self.newClassifier->exists(isAbstract = true) + * + * @generated + */ + public static boolean validateClassifierNotAbstract( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.RECLASSIFY_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClassifierNotAbstract", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(reclassifyObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{reclassifyObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.argument.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.RECLASSIFY_OBJECT_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(reclassifyObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{reclassifyObjectAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The input pin has no type. + * self.argument.type->size() = 0 + * + * @generated + */ + public static boolean validateInputPin( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.RECLASSIFY_OBJECT_ACTION__INPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(reclassifyObjectAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{reclassifyObjectAction})); + } + return false; + } + return true; + } + +} // ReclassifyObjectActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableElementOperations.java new file mode 100644 index 00000000..29aefe4a --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableElementOperations.java @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RedefinableElementOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.RedefinableElement; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Redefinable Element' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#validateRedefinitionContextValid(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Redefinition Context Valid}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#validateRedefinitionConsistent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Redefinition Consistent}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#isRedefinitionContextValid(org.eclipse.uml2.uml.RedefinableElement) Is Redefinition Context Valid}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableElement#isRedefinitionContextValid() Is Redefinition Context Valid}
  • + *
+ *

+ * + * @generated + */ +public final class RedefinableElementOperations { + + /** + * + * + * @generated + */ + private RedefinableElementOperations() { + super(); + } + + /** + * + * + * + * At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element. + * self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e)) + * + * @generated + */ + public static boolean validateRedefinitionContextValid( + RedefinableElement redefinableElement, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT_VALID, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRedefinitionContextValid", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(redefinableElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{redefinableElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * A redefining element must be consistent with each redefined element. + * self.redefinedElement->forAll(re | re.isConsistentWith(self)) + * + * @generated + */ + public static boolean validateRedefinitionConsistent( + RedefinableElement redefinableElement, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REDEFINABLE_ELEMENT__REDEFINITION_CONSISTENT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRedefinitionConsistent", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(redefinableElement, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{redefinableElement})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + * result = self.redefinitionContext->exists(c | redefinable.redefinitionContext->exists(r | c.allParents()->includes(r))) + * + * @generated + */ + public static boolean isRedefinitionContextValid( + RedefinableElement redefinableElement, + RedefinableElement redefinable) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions. + * redefinee.isRedefinitionContextValid(self) + * + * + * result = false + * + * @generated + */ + public static boolean isConsistentWith( + RedefinableElement redefinableElement, RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element. + * result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)) + * + * @generated + */ + public static boolean isRedefinitionContextValid( + RedefinableElement redefinableElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // RedefinableElementOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableTemplateSignatureOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableTemplateSignatureOperations.java new file mode 100644 index 00000000..c7cb52f0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RedefinableTemplateSignatureOperations.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RedefinableTemplateSignatureOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Redefinable Template Signature' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RedefinableTemplateSignature#validateInheritedParameters(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Inherited Parameters}
  • + *
  • {@link org.eclipse.uml2.uml.RedefinableTemplateSignature#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
+ *

+ * + * @generated + */ +public final class RedefinableTemplateSignatureOperations { + + /** + * + * + * @generated + */ + private RedefinableTemplateSignatureOperations() { + super(); + } + + /** + * + * + * + * The inherited parameters are the parameters of the extended template signature. + * if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif + * + * @generated + */ + public static boolean validateInheritedParameters( + RedefinableTemplateSignature redefinableTemplateSignature, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETERS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInheritedParameters", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(redefinableTemplateSignature, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{redefinableTemplateSignature})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters. + * redefinee.isRedefinitionContextValid(self) + * result = redefinee.oclIsKindOf(RedefineableTemplateSignature) + * + * @generated + */ + public static boolean isConsistentWith( + RedefinableTemplateSignature redefinableTemplateSignature, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // RedefinableTemplateSignatureOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java new file mode 100644 index 00000000..054adf2c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RegionOperations.java @@ -0,0 +1,265 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RegionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.StateMachine; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Region' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Region#validateInitialVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Initial Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Region#validateDeepHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Deep History Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Region#validateShallowHistoryVertex(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Shallow History Vertex}
  • + *
  • {@link org.eclipse.uml2.uml.Region#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Owned}
  • + *
  • {@link org.eclipse.uml2.uml.Region#redefinitionContext() Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.Region#containingStateMachine() Containing State Machine}
  • + *
  • {@link org.eclipse.uml2.uml.Region#isRedefinitionContextValid() Is Redefinition Context Valid}
  • + *
  • {@link org.eclipse.uml2.uml.Region#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
+ *

+ * + * @generated + */ +public final class RegionOperations { + + /** + * + * + * @generated + */ + private RegionOperations() { + super(); + } + + /** + * + * + * + * A region can have at most one initial vertex + * self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> + * select(p : Pseudostate | p.kind = #initial)->size() <= 1 + * + * + * @generated + */ + public static boolean validateInitialVertex(Region region, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REGION__INITIAL_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInitialVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(region, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{region})); + } + return false; + } + return true; + } + + /** + * + * + * + * A region can have at most one deep history vertex + * self.subvertex->select (v | v.oclIsKindOf(Pseudostate))-> + * select(p : Pseudostate | p.kind = #deepHistory)->size() <= 1 + * + * + * @generated + */ + public static boolean validateDeepHistoryVertex(Region region, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REGION__DEEP_HISTORY_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDeepHistoryVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(region, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{region})); + } + return false; + } + return true; + } + + /** + * + * + * + * A region can have at most one shallow history vertex + * self.subvertex->select(v | v.oclIsKindOf(Pseudostate))-> + * select(p : Pseudostate | p.kind = #shallowHistory)->size() <= 1 + * + * + * @generated + */ + public static boolean validateShallowHistoryVertex(Region region, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REGION__SHALLOW_HISTORY_VERTEX, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateShallowHistoryVertex", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(region, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{region})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa. + * (stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty()) + * + * @generated + */ + public static boolean validateOwned(Region region, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REGION__OWNED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOwned", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(region, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{region})); + } + return false; + } + return true; + } + + /** + * + * + * + * The redefinition context of a region is the nearest containing statemachine + * result = let sm = containingStateMachine() in + * if sm.context->isEmpty() or sm.general->notEmpty() then + * sm + * else + * sm.context + * endif + * + * @generated + */ + public static Classifier redefinitionContext(Region region) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The operation containingStateMachine() returns the sate machine in which this Region is defined + * result = if stateMachine->isEmpty() + * then + * state.containingStateMachine() + * else + * stateMachine + * endif + * + * @generated + */ + public static StateMachine containingStateMachine(Region region) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region. + * result = true + * + * @generated + */ + public static boolean isRedefinitionContextValid(Region region) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region. + * result = true + * + * @generated + */ + public static boolean isConsistentWith(Region region, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // RegionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveStructuralFeatureValueActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveStructuralFeatureValueActionOperations.java new file mode 100644 index 00000000..fe8e0ca0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveStructuralFeatureValueActionOperations.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RemoveStructuralFeatureValueActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Remove Structural Feature Value Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction#validateNonUniqueRemoval(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Non Unique Removal}
  • + *
+ *

+ * + * @generated + */ +public final class RemoveStructuralFeatureValueActionOperations { + + /** + * + * + * @generated + */ + private RemoveStructuralFeatureValueActionOperations() { + super(); + } + + /** + * + * + * + * Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin. + * + * + * true + * + * @generated + */ + public static boolean validateNonUniqueRemoval( + RemoveStructuralFeatureValueAction removeStructuralFeatureValueAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NON_UNIQUE_REMOVAL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNonUniqueRemoval", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(removeStructuralFeatureValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{removeStructuralFeatureValueAction})); + } + return false; + } + return true; + } + +} // RemoveStructuralFeatureValueActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveVariableValueActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveVariableValueActionOperations.java new file mode 100644 index 00000000..23e5aff8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/RemoveVariableValueActionOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: RemoveVariableValueActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.RemoveVariableValueAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Remove Variable Value Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.RemoveVariableValueAction#validateUnlimitedNatural(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Unlimited Natural}
  • + *
+ *

+ * + * @generated + */ +public final class RemoveVariableValueActionOperations { + + /** + * + * + * @generated + */ + private RemoveVariableValueActionOperations() { + super(); + } + + /** + * + * + * + * Actions removing a value from ordered nonunique variables must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type UnlimitedNatural with multiplicity of 1..1, otherwise the action has no removeAt input pin. + * true + * + * @generated + */ + public static boolean validateUnlimitedNatural( + RemoveVariableValueAction removeVariableValueAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REMOVE_VARIABLE_VALUE_ACTION__UNLIMITED_NATURAL, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUnlimitedNatural", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(removeVariableValueAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{removeVariableValueAction})); + } + return false; + } + return true; + } + +} // RemoveVariableValueActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java new file mode 100644 index 00000000..01011ddd --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ReplyActionOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ReplyActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ReplyAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Reply Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ReplyAction#validatePinsMatchParameter(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Pins Match Parameter}
  • + *
  • {@link org.eclipse.uml2.uml.ReplyAction#validateEventOnReplyToCallTrigger(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Event On Reply To Call Trigger}
  • + *
+ *

+ * + * @generated + */ +public final class ReplyActionOperations { + + /** + * + * + * @generated + */ + private ReplyActionOperations() { + super(); + } + + /** + * + * + * + * The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order. + * true + * + * @generated + */ + public static boolean validatePinsMatchParameter(ReplyAction replyAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REPLY_ACTION__PINS_MATCH_PARAMETER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validatePinsMatchParameter", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(replyAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{replyAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent) + * replyToCallEvent.oclIsKindOf(CallEvent) + * + * @generated + */ + public static boolean validateEventOnReplyToCallTrigger( + ReplyAction replyAction, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.REPLY_ACTION__EVENT_ON_REPLY_TO_CALL_TRIGGER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEventOnReplyToCallTrigger", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(replyAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{replyAction})); + } + return false; + } + return true; + } + +} // ReplyActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/SendSignalActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/SendSignalActionOperations.java new file mode 100644 index 00000000..f243edc0 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/SendSignalActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: SendSignalActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.SendSignalAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Send Signal Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.SendSignalAction#validateNumberOrder(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Number Order}
  • + *
  • {@link org.eclipse.uml2.uml.SendSignalAction#validateTypeOrderingMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Ordering Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class SendSignalActionOperations { + + /** + * + * + * @generated + */ + private SendSignalActionOperations() { + super(); + } + + /** + * + * + * + * The number and order of argument pins must be the same as the number and order of attributes in the signal. + * true + * + * @generated + */ + public static boolean validateNumberOrder( + SendSignalAction sendSignalAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.SEND_SIGNAL_ACTION__NUMBER_ORDER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNumberOrder", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(sendSignalAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{sendSignalAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal. + * true + * + * @generated + */ + public static boolean validateTypeOrderingMultiplicity( + SendSignalAction sendSignalAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.SEND_SIGNAL_ACTION__TYPE_ORDERING_MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(sendSignalAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{sendSignalAction})); + } + return false; + } + return true; + } + +} // SendSignalActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java new file mode 100644 index 00000000..ea848169 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StartClassifierBehaviorActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StartClassifierBehaviorActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.StartClassifierBehaviorAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Start Classifier Behavior Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.StartClassifierBehaviorAction#validateTypeHasClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type Has Classifier}
  • + *
+ *

+ * + * @generated + */ +public final class StartClassifierBehaviorActionOperations { + + /** + * + * + * @generated + */ + private StartClassifierBehaviorActionOperations() { + super(); + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1 + * true + * + * @generated + */ + public static boolean validateMultiplicity( + StartClassifierBehaviorAction startClassifierBehaviorAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.START_CLASSIFIER_BEHAVIOR_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(startClassifierBehaviorAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{startClassifierBehaviorAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * If the input pin has a type, then the type must have a classifier behavior. + * true + * + * @generated + */ + public static boolean validateTypeHasClassifier( + StartClassifierBehaviorAction startClassifierBehaviorAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.START_CLASSIFIER_BEHAVIOR_ACTION__TYPE_HAS_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeHasClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(startClassifierBehaviorAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{startClassifierBehaviorAction})); + } + return false; + } + return true; + } + +} // StartClassifierBehaviorActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java new file mode 100644 index 00000000..ea950be3 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateMachineOperations.java @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateMachineOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateMachine; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'State Machine' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StateMachine#validateClassifierContext(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Classifier Context}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#validateContextClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Context Classifier}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#validateConnectionPoints(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Connection Points}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#validateMethod(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Method}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#LCA(org.eclipse.uml2.uml.State, org.eclipse.uml2.uml.State) LCA}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#ancestor(org.eclipse.uml2.uml.State, org.eclipse.uml2.uml.State) Ancestor}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#isRedefinitionContextValid() Is Redefinition Context Valid}
  • + *
  • {@link org.eclipse.uml2.uml.StateMachine#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
+ *

+ * + * @generated + */ +public final class StateMachineOperations { + + /** + * + * + * @generated + */ + private StateMachineOperations() { + super(); + } + + /** + * + * + * + * The classifier context of a state machine cannot be an interface. + * context->notEmpty() implies not context.oclIsKindOf(Interface) + * + * @generated + */ + public static boolean validateClassifierContext(StateMachine stateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE_MACHINE__CLASSIFIER_CONTEXT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateClassifierContext", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature. + * specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context)) + * + * @generated + */ + public static boolean validateContextClassifier(StateMachine stateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE_MACHINE__CONTEXT_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateContextClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * The connection points of a state machine are pseudostates of kind entry point or exit point. + * conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint) + * + * @generated + */ + public static boolean validateConnectionPoints(StateMachine stateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE_MACHINE__CONNECTION_POINTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateConnectionPoints", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * A state machine as the method for a behavioral feature cannot have entry/exit connection points. + * specification->notEmpty() implies connectionPoint->isEmpty() + * + * @generated + */ + public static boolean validateMethod(StateMachine stateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE_MACHINE__METHOD, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMethod", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stateMachine})); + } + return false; + } + return true; + } + + /** + * + * + * + * The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy. + * true + * + * @generated + */ + public static Namespace LCA(StateMachine stateMachine, State s1, State s2) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean + * + * + * result = if (s2 = s1) then + * true + * else if (s1.container->isEmpty) then + * true + * else if (s2.container->isEmpty) then + * false + * else (ancestor (s1, s2.container)) + * + * @generated + */ + public static boolean ancestor(StateMachine stateMachine, State s1, State s2) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine. + * result = true + * + * @generated + */ + public static boolean isRedefinitionContextValid(StateMachine stateMachine) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines. + * result = true + * + * @generated + */ + public static boolean isConsistentWith(StateMachine stateMachine, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // StateMachineOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java new file mode 100644 index 00000000..02a9d0f8 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StateOperations.java @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StateOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateMachine; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'State' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.State#validateRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Regions}
  • + *
  • {@link org.eclipse.uml2.uml.State#validateSubmachineStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Submachine States}
  • + *
  • {@link org.eclipse.uml2.uml.State#validateDestinationsOrSourcesOfTransitions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Destinations Or Sources Of Transitions}
  • + *
  • {@link org.eclipse.uml2.uml.State#validateSubmachineOrRegions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Submachine Or Regions}
  • + *
  • {@link org.eclipse.uml2.uml.State#validateCompositeStates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Composite States}
  • + *
  • {@link org.eclipse.uml2.uml.State#validateEntryOrExit(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Entry Or Exit}
  • + *
  • {@link org.eclipse.uml2.uml.State#isSimple() Is Simple}
  • + *
  • {@link org.eclipse.uml2.uml.State#isComposite() Is Composite}
  • + *
  • {@link org.eclipse.uml2.uml.State#isOrthogonal() Is Orthogonal}
  • + *
  • {@link org.eclipse.uml2.uml.State#isSubmachineState() Is Submachine State}
  • + *
  • {@link org.eclipse.uml2.uml.State#redefinitionContext() Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.State#isRedefinitionContextValid() Is Redefinition Context Valid}
  • + *
  • {@link org.eclipse.uml2.uml.State#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
  • {@link org.eclipse.uml2.uml.State#containingStateMachine() Containing State Machine}
  • + *
+ *

+ * + * @generated + */ +public final class StateOperations { + + /** + * + * + * @generated + */ + private StateOperations() { + super(); + } + + /** + * + * + * + * There have to be at least two regions in an orthogonal composite state. + * (self.isOrthogonal) implies + * (self.region->size >= 2) + * + * + * @generated + */ + public static boolean validateRegions(State state, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE__REGIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateRegions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(state, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{state})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only submachine states can have connection point references. + * isSubmachineState implies connection->notEmpty ( ) + * + * @generated + */ + public static boolean validateSubmachineStates(State state, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE__SUBMACHINE_STATES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSubmachineStates", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(state, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{state})); + } + return false; + } + return true; + } + + /** + * + * + * + * The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine. + * true + * + * @generated + */ + public static boolean validateDestinationsOrSourcesOfTransitions( + State state, DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE__DESTINATIONS_OR_SOURCES_OF_TRANSITIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateDestinationsOrSourcesOfTransitions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(state, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{state})); + } + return false; + } + return true; + } + + /** + * + * + * + * A state is not allowed to have both a submachine and regions. + * isComposite implies not isSubmachineState + * + * @generated + */ + public static boolean validateSubmachineOrRegions(State state, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE__SUBMACHINE_OR_REGIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSubmachineOrRegions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(state, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{state})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only composite states can have entry or exit pseudostates defined. + * connectionPoint->notEmpty() implies isComoposite + * + * @generated + */ + public static boolean validateCompositeStates(State state, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE__COMPOSITE_STATES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompositeStates", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(state, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{state})); + } + return false; + } + return true; + } + + /** + * + * + * + * Only entry or exit pseudostates can serve as connection points. + * connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit) + * + * @generated + */ + public static boolean validateEntryOrExit(State state, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STATE__ENTRY_OR_EXIT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEntryOrExit", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(state, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{state})); + } + return false; + } + return true; + } + + /** + * + * + * + * A simple state is a state without any regions. + * result = region.isEmpty() + * + * @generated + */ + public static boolean isSimple(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * A composite state is a state with at least one region. + * result = region.notEmpty() + * + * @generated + */ + public static boolean isComposite(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * An orthogonal state is a composite state with at least 2 regions + * result = (region->size () > 1) + * + * @generated + */ + public static boolean isOrthogonal(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * Only submachine states can have a reference statemachine. + * result = submachine.notEmpty() + * + * @generated + */ + public static boolean isSubmachineState(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The redefinition context of a state is the nearest containing statemachine. + * result = let sm = containingStateMachine() in + * if sm.context->isEmpty() or sm.general->notEmpty() then + * sm + * else + * sm.context + * endif + * + * @generated + */ + public static Classifier redefinitionContext(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state. + * result = true + * + * @generated + */ + public static boolean isRedefinitionContextValid(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions. + * result = true + * + * @generated + */ + public static boolean isConsistentWith(State state, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query containingStateMachine() returns the state machine that contains the state either directly or transitively. + * result = container.containingStateMachine() + * + * @generated + */ + public static StateMachine containingStateMachine(State state) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // StateOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java new file mode 100644 index 00000000..7bf68014 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StereotypeOperations.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StereotypeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Stereotype; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Stereotype' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Stereotype#validateNameNotClash(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Name Not Clash}
  • + *
  • {@link org.eclipse.uml2.uml.Stereotype#validateGeneralize(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Generalize}
  • + *
+ *

+ * + * @generated + */ +public final class StereotypeOperations { + + /** + * + * + * @generated + */ + private StereotypeOperations() { + super(); + } + + /** + * + * + * + * Stereotype names should not clash with keyword names for the extended model element. + * true + * + * @generated + */ + public static boolean validateNameNotClash(Stereotype stereotype, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STEREOTYPE__NAME_NOT_CLASH, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNameNotClash", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stereotype, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stereotype})); + } + return false; + } + return true; + } + + /** + * + * + * + * A Stereotype may only generalize or specialize another Stereotype. + * generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) + * + * @generated + */ + public static boolean validateGeneralize(Stereotype stereotype, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STEREOTYPE__GENERALIZE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateGeneralize", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stereotype, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stereotype})); + } + return false; + } + return true; + } + +} // StereotypeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java new file mode 100644 index 00000000..3b98af4f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StringExpressionOperations.java @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StringExpressionOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.StringExpression; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'String Expression' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StringExpression#validateOperands(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Operands}
  • + *
  • {@link org.eclipse.uml2.uml.StringExpression#validateSubexpressions(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Subexpressions}
  • + *
  • {@link org.eclipse.uml2.uml.StringExpression#stringValue() String Value}
  • + *
+ *

+ * + * @generated + */ +public final class StringExpressionOperations { + + /** + * + * + * @generated + */ + private StringExpressionOperations() { + super(); + } + + /** + * + * + * + * All the operands of a StringExpression must be LiteralStrings + * operand->forAll (op | op.oclIsKindOf (LiteralString)) + * + * @generated + */ + public static boolean validateOperands(StringExpression stringExpression, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRING_EXPRESSION__OPERANDS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOperands", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stringExpression, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stringExpression})); + } + return false; + } + return true; + } + + /** + * + * + * + * If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to + * define a collating sequence between operands and subexpressions). + * + * if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty() + * + * @generated + */ + public static boolean validateSubexpressions( + StringExpression stringExpression, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRING_EXPRESSION__SUBEXPRESSIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSubexpressions", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(stringExpression, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{stringExpression})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression. + * + * + * result = if subExpression->notEmpty() + * then subExpression->iterate(se; stringValue = ?| stringValue.concat(se.stringValue())) + * else operand->iterate()(op; stringValue = ? | stringValue.concat(op.value)) + * + * @generated + */ + public static String stringValue(StringExpression stringExpression) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // StringExpressionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java new file mode 100644 index 00000000..1c04384f --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuralFeatureActionOperations.java @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuralFeatureActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.StructuralFeatureAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Structural Feature Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#validateNotStatic(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Not Static}
  • + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#validateVisibility(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Visibility}
  • + *
  • {@link org.eclipse.uml2.uml.StructuralFeatureAction#validateOneFeaturingClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Featuring Classifier}
  • + *
+ *

+ * + * @generated + */ +public final class StructuralFeatureActionOperations { + + /** + * + * + * @generated + */ + private StructuralFeatureActionOperations() { + super(); + } + + /** + * + * + * + * The structural feature must not be static. + * self.structuralFeature.isStatic = #false + * + * @generated + */ + public static boolean validateNotStatic( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURAL_FEATURE_ACTION__NOT_STATIC, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNotStatic", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuralFeatureAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the object input pin is the same as the classifier of the object passed on this pin. + * true + * + * @generated + */ + public static boolean validateSameType( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURAL_FEATURE_ACTION__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuralFeatureAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the input pin must be 1..1. + * self.object.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURAL_FEATURE_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuralFeatureAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * Visibility of structural feature must allow access to the object performing the action. + * let host : Classifier = self.context in + * self.structuralFeature.visibility = #public + * or host = self.structuralFeature.featuringClassifier.type + * or (self.structuralFeature.visibility = #protected and host.allSupertypes + * ->includes(self.structuralFeature.featuringClassifier.type))) + * + * + * @generated + */ + public static boolean validateVisibility( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURAL_FEATURE_ACTION__VISIBILITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateVisibility", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuralFeatureAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * A structural feature has exactly one featuringClassifier. + * self.structuralFeature.featuringClassifier->size() = 1 + * + * @generated + */ + public static boolean validateOneFeaturingClassifier( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURAL_FEATURE_ACTION__ONE_FEATURING_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneFeaturingClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuralFeatureAction})); + } + return false; + } + return true; + } + +} // StructuralFeatureActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java new file mode 100644 index 00000000..42e1b910 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredActivityNodeOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuredActivityNodeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.StructuredActivityNode; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Structured Activity Node' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuredActivityNode#validateEdges(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Edges}
  • + *
+ *

+ * + * @generated + */ +public final class StructuredActivityNodeOperations { + + /** + * + * + * @generated + */ + private StructuredActivityNodeOperations() { + super(); + } + + /** + * + * + * + * The edges owned by a structured node must have source and target nodes in the structured node, and vice versa. + * true + * + * @generated + */ + public static boolean validateEdges( + StructuredActivityNode structuredActivityNode, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURED_ACTIVITY_NODE__EDGES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateEdges", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuredActivityNode, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuredActivityNode})); + } + return false; + } + return true; + } + +} // StructuredActivityNodeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredClassifierOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredClassifierOperations.java new file mode 100644 index 00000000..ed4c2ccb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/StructuredClassifierOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: StructuredClassifierOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.StructuredClassifier; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Structured Classifier' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.StructuredClassifier#validateMultiplicities(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicities}
  • + *
+ *

+ * + * @generated + */ +public final class StructuredClassifierOperations { + + /** + * + * + * @generated + */ + private StructuredClassifierOperations() { + super(); + } + + /** + * + * + * + * The multiplicities on connected elements must be consistent. + * true + * + * @generated + */ + public static boolean validateMultiplicities( + StructuredClassifier structuredClassifier, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.STRUCTURED_CLASSIFIER__MULTIPLICITIES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicities", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(structuredClassifier, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{structuredClassifier})); + } + return false; + } + return true; + } + +} // StructuredClassifierOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateBindingOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateBindingOperations.java new file mode 100644 index 00000000..c7f914aa --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateBindingOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateBindingOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TemplateBinding; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Template Binding' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateBinding#validateParameterSubstitution(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Parameter Substitution}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateBinding#validateOneParameterSubstitution(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate One Parameter Substitution}
  • + *
+ *

+ * + * @generated + */ +public final class TemplateBindingOperations { + + /** + * + * + * @generated + */ + private TemplateBindingOperations() { + super(); + } + + /** + * + * + * + * Each parameter substitution must refer to a formal template parameter of the target template signature. + * parameterSubstitution->forAll(b | template.parameter->includes(b.formal)) + * + * @generated + */ + public static boolean validateParameterSubstitution( + TemplateBinding templateBinding, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEMPLATE_BINDING__PARAMETER_SUBSTITUTION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateParameterSubstitution", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(templateBinding, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{templateBinding})); + } + return false; + } + return true; + } + + /** + * + * + * + * A binding contains at most one parameter substitution for each formal template parameter of the target template signature. + * template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() <= 1) + * + * @generated + */ + public static boolean validateOneParameterSubstitution( + TemplateBinding templateBinding, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEMPLATE_BINDING__ONE_PARAMETER_SUBSTITUTION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOneParameterSubstitution", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(templateBinding, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{templateBinding})); + } + return false; + } + return true; + } + +} // TemplateBindingOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterOperations.java new file mode 100644 index 00000000..c5d8542c --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateParameterOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TemplateParameter; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Template Parameter' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateParameter#validateMustBeCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Be Compatible}
  • + *
+ *

+ * + * @generated + */ +public final class TemplateParameterOperations { + + /** + * + * + * @generated + */ + private TemplateParameterOperations() { + super(); + } + + /** + * + * + * + * The default must be compatible with the formal template parameter. + * default->notEmpty() implies default->isCompatibleWith(parameteredElement) + * + * @generated + */ + public static boolean validateMustBeCompatible( + TemplateParameter templateParameter, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEMPLATE_PARAMETER__MUST_BE_COMPATIBLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustBeCompatible", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(templateParameter, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{templateParameter})); + } + return false; + } + return true; + } + +} // TemplateParameterOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterSubstitutionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterSubstitutionOperations.java new file mode 100644 index 00000000..21fb4ffb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateParameterSubstitutionOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateParameterSubstitutionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TemplateParameterSubstitution; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Template Parameter Substitution' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateParameterSubstitution#validateMustBeCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Be Compatible}
  • + *
+ *

+ * + * @generated + */ +public final class TemplateParameterSubstitutionOperations { + + /** + * + * + * @generated + */ + private TemplateParameterSubstitutionOperations() { + super(); + } + + /** + * + * + * + * The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class. + * actual->forAll(a | a.isCompatibleWith(formal.parameteredElement)) + * + * @generated + */ + public static boolean validateMustBeCompatible( + TemplateParameterSubstitution templateParameterSubstitution, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEMPLATE_PARAMETER_SUBSTITUTION__MUST_BE_COMPATIBLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustBeCompatible", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(templateParameterSubstitution, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{templateParameterSubstitution})); + } + return false; + } + return true; + } + +} // TemplateParameterSubstitutionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateSignatureOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateSignatureOperations.java new file mode 100644 index 00000000..914bc945 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateSignatureOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateSignatureOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TemplateSignature; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Template Signature' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateSignature#validateOwnElements(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Own Elements}
  • + *
+ *

+ * + * @generated + */ +public final class TemplateSignatureOperations { + + /** + * + * + * @generated + */ + private TemplateSignatureOperations() { + super(); + } + + /** + * + * + * + * Parameters must own the elements they parameter or those elements must be owned by the element being templated. + * templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement) + * + * @generated + */ + public static boolean validateOwnElements( + TemplateSignature templateSignature, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEMPLATE_SIGNATURE__OWN_ELEMENTS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOwnElements", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(templateSignature, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{templateSignature})); + } + return false; + } + return true; + } + +} // TemplateSignatureOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateableElementOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateableElementOperations.java new file mode 100644 index 00000000..a6f9d823 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TemplateableElementOperations.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TemplateableElementOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; + +import org.eclipse.uml2.uml.TemplateableElement; + +/** + * + * A static utility class that provides operations related to 'Templateable Element' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TemplateableElement#parameterableElements() Parameterable Elements}
  • + *
  • {@link org.eclipse.uml2.uml.TemplateableElement#isTemplate() Is Template}
  • + *
+ *

+ * + * @generated + */ +public final class TemplateableElementOperations { + + /** + * + * + * @generated + */ + private TemplateableElementOperations() { + super(); + } + + /** + * + * + * + * The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements. + * result = allOwnedElements->select(oclIsKindOf(ParameterableElement)) + * + * @generated + */ + public static List parameterableElements( + TemplateableElement templateableElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isTemplate() returns whether this templateable element is actually a template. + * result = ownedSignature->notEmpty() + * + * @generated + */ + public static boolean isTemplate(TemplateableElement templateableElement) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // TemplateableElementOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TestIdentityActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TestIdentityActionOperations.java new file mode 100644 index 00000000..191113a5 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TestIdentityActionOperations.java @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TestIdentityActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TestIdentityAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Test Identity Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TestIdentityAction#validateNoType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Type}
  • + *
  • {@link org.eclipse.uml2.uml.TestIdentityAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
  • {@link org.eclipse.uml2.uml.TestIdentityAction#validateResultIsBoolean(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Result Is Boolean}
  • + *
+ *

+ * + * @generated + */ +public final class TestIdentityActionOperations { + + /** + * + * + * @generated + */ + private TestIdentityActionOperations() { + super(); + } + + /** + * + * + * + * The input pins have no type. + * self.first.type->size() = 0 + * and self.second.type->size() = 0 + * + * + * @generated + */ + public static boolean validateNoType(TestIdentityAction testIdentityAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEST_IDENTITY_ACTION__NO_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(testIdentityAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{testIdentityAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the input pins is 1..1. + * self.first.multiplicity.is(1,1) + * and self.second.multiplicity.is(1,1) + * + * + * @generated + */ + public static boolean validateMultiplicity( + TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEST_IDENTITY_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(testIdentityAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{testIdentityAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type of the result is Boolean. + * self.result.type.oclIsTypeOf(Boolean) + * + * @generated + */ + public static boolean validateResultIsBoolean( + TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TEST_IDENTITY_ACTION__RESULT_IS_BOOLEAN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateResultIsBoolean", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(testIdentityAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{testIdentityAction})); + } + return false; + } + return true; + } + +} // TestIdentityActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java new file mode 100644 index 00000000..15c3d4e1 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeEventOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeEventOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TimeEvent; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Time Event' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TimeEvent#validateStartingTime(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Starting Time}
  • + *
+ *

+ * + * @generated + */ +public final class TimeEventOperations { + + /** + * + * + * @generated + */ + private TimeEventOperations() { + super(); + } + + /** + * + * + * + * The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine. + * true + * + * @generated + */ + public static boolean validateStartingTime(TimeEvent timeEvent, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TIME_EVENT__STARTING_TIME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateStartingTime", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(timeEvent, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{timeEvent})); + } + return false; + } + return true; + } + +} // TimeEventOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeObservationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeObservationActionOperations.java new file mode 100644 index 00000000..4d9ed225 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TimeObservationActionOperations.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TimeObservationActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.TimeObservationAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Time Observation Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.TimeObservationAction#validateInputValueTimeExpression(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Value Time Expression}
  • + *
  • {@link org.eclipse.uml2.uml.TimeObservationAction#getNow() Get Now}
  • + *
+ *

+ * + * @generated + */ +public final class TimeObservationActionOperations { + + /** + * + * + * @generated + */ + private TimeObservationActionOperations() { + super(); + } + + /** + * + * + * + * The value of a TimeObservationAction’s input must be a TimeExpression. + * self.value.value.oclIsKindOf(TimeExpression) + * + * @generated + */ + public static boolean validateInputValueTimeExpression( + TimeObservationAction timeObservationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TIME_OBSERVATION_ACTION__INPUT_VALUE_TIME_EXPRESSION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputValueTimeExpression", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(timeObservationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{timeObservationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * self.value.value.oclAsType(TimeExpression) + * + * @generated + */ + public static TimeExpression getNow( + TimeObservationAction timeObservationAction) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // TimeObservationActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java new file mode 100644 index 00000000..c52217cb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TransitionOperations.java @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TransitionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.Transition; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Transition' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Transition#validateForkSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Fork Segment Guards}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#validateJoinSegmentGuards(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Join Segment Guards}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#validateForkSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Fork Segment State}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#validateJoinSegmentState(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Join Segment State}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#validateOutgoingPseudostates(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Outgoing Pseudostates}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#validateInitialTransition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Initial Transition}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#validateSignaturesCompatible(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Signatures Compatible}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#redefinitionContext() Redefinition Context}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#containingStateMachine() Containing State Machine}
  • + *
  • {@link org.eclipse.uml2.uml.Transition#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement) Is Consistent With}
  • + *
+ *

+ * + * @generated + */ +public final class TransitionOperations { + + /** + * + * + * @generated + */ + private TransitionOperations() { + super(); + } + + /** + * + * + * + * A fork segment must not have guards or triggers. + * (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty()) + * + * @generated + */ + public static boolean validateForkSegmentGuards(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__FORK_SEGMENT_GUARDS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateForkSegmentGuards", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * A join segment must not have guards or triggers. + * (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty()) + * + * @generated + */ + public static boolean validateJoinSegmentGuards(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__JOIN_SEGMENT_GUARDS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateJoinSegmentGuards", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * A fork segment must always target a state. + * (source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State)) + * + * @generated + */ + public static boolean validateForkSegmentState(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__FORK_SEGMENT_STATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateForkSegmentState", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * A join segment must always originate from a state. + * (target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State)) + * + * @generated + */ + public static boolean validateJoinSegmentState(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__JOIN_SEGMENT_STATE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateJoinSegmentState", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * Transitions outgoing pseudostates may not have a trigger. + * source.oclIsKindOf(Pseudostate) and + * ((source.kind <> #junction) and (source.kind <> #join) and (source.kind <> #initial)) implies trigger->isEmpty() + * + * + * @generated + */ + public static boolean validateOutgoingPseudostates(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__OUTGOING_PSEUDOSTATES, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOutgoingPseudostates", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype ?create?. + * self.source.oclIsKindOf(Pseudostate) implies + * (self.source.oclAsType(Pseudostate).kind = #initial) implies + * (self.source.container = self.stateMachine.top) implies + * ((self.trigger->isEmpty) or + * (self.trigger.stereotype.name = 'create')) + * + * + * @generated + */ + public static boolean validateInitialTransition(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__INITIAL_TRANSITION, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInitialTransition", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes. + * + * + * true + * + * @generated + */ + public static boolean validateSignaturesCompatible(Transition transition, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.TRANSITION__SIGNATURES_COMPATIBLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSignaturesCompatible", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(transition, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transition})); + } + return false; + } + return true; + } + + /** + * + * + * + * The redefinition context of a transition is the nearest containing statemachine. + * result = let sm = containingStateMachine() in + * if sm.context->isEmpty() or sm.general->notEmpty() then + * sm + * else + * sm.context + * endif + * + * @generated + */ + public static Classifier redefinitionContext(Transition transition) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query containingStateMachine() returns the state machine that contains the transition either directly or transitively. + * result = container.containingStateMachine() + * + * @generated + */ + public static StateMachine containingStateMachine(Transition transition) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger. + * result = (redefinee.oclIsKindOf(Transition) and + * + * let trans: Transition = redefinee.oclAsType(Transition) in + * + * (source() = trans.source() and trigger() = tran.trigger()) + * redefinee.isRedefinitionContextValid(self) + * + * @generated + */ + public static boolean isConsistentWith(Transition transition, + RedefinableElement redefinee) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // TransitionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TypeOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TypeOperations.java new file mode 100644 index 00000000..5d6981d9 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/TypeOperations.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: TypeOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.Type; + +/** + * + * A static utility class that provides operations related to 'Type' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Type#conformsTo(org.eclipse.uml2.uml.Type) Conforms To}
  • + *
+ *

+ * + * @generated + */ +public final class TypeOperations { + + /** + * + * + * @generated + */ + private TypeOperations() { + super(); + } + + /** + * + * + * + * The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations. + * result = false + * + * @generated + */ + public static boolean conformsTo(Type type, Type other) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // TypeOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java new file mode 100644 index 00000000..85b01e94 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UnmarshallActionOperations.java @@ -0,0 +1,288 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UnmarshallActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.UnmarshallAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Unmarshall Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfObject(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Object}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateNumberOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Number Of Result}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateTypeAndOrdering(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Type And Ordering}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateMultiplicityOfResult(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity Of Result}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateStructuralFeature(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Structural Feature}
  • + *
  • {@link org.eclipse.uml2.uml.UnmarshallAction#validateUnmarshallTypeIsClassifier(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Unmarshall Type Is Classifier}
  • + *
+ *

+ * + * @generated + */ +public final class UnmarshallActionOperations { + + /** + * + * + * @generated + */ + private UnmarshallActionOperations() { + super(); + } + + /** + * + * + * + * The type of the object input pin must be the same as the unmarshall classifier. + * true + * + * @generated + */ + public static boolean validateSameType(UnmarshallAction unmarshallAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the object input pin is 1..1 + * true + * + * @generated + */ + public static boolean validateMultiplicityOfObject( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__MULTIPLICITY_OF_OBJECT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfObject", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The number of result output pins must be the same as the number of structural features of the unmarshall classifier. + * true + * + * @generated + */ + public static boolean validateNumberOfResult( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__NUMBER_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNumberOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier. + * true + * + * @generated + */ + public static boolean validateTypeAndOrdering( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__TYPE_AND_ORDERING, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateTypeAndOrdering", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier. + * + * + * true + * + * @generated + */ + public static boolean validateMultiplicityOfResult( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__MULTIPLICITY_OF_RESULT, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicityOfResult", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The unmarshall classifier must have at least one structural feature. + * true + * + * @generated + */ + public static boolean validateStructuralFeature( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__STRUCTURAL_FEATURE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateStructuralFeature", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * unmarshallType must be a Classifier with ordered attributes + * true + * + * @generated + */ + public static boolean validateUnmarshallTypeIsClassifier( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.UNMARSHALL_ACTION__UNMARSHALL_TYPE_IS_CLASSIFIER, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateUnmarshallTypeIsClassifier", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(unmarshallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{unmarshallAction})); + } + return false; + } + return true; + } + +} // UnmarshallActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java new file mode 100644 index 00000000..ede29c88 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/UseCaseOperations.java @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UseCaseOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.UseCase; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Use Case' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.UseCase#validateMustHaveName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Must Have Name}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#validateBinaryAssociations(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Binary Associations}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#validateNoAssociationToUseCase(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate No Association To Use Case}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#validateCannotIncludeSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Cannot Include Self}
  • + *
  • {@link org.eclipse.uml2.uml.UseCase#allIncludedUseCases() All Included Use Cases}
  • + *
+ *

+ * + * @generated + */ +public final class UseCaseOperations { + + /** + * + * + * @generated + */ + private UseCaseOperations() { + super(); + } + + /** + * + * + * + * A UseCase must have a name. + * self.name -> notEmpty () + * + * @generated + */ + public static boolean validateMustHaveName(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.USE_CASE__MUST_HAVE_NAME, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMustHaveName", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(useCase, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{useCase})); + } + return false; + } + return true; + } + + /** + * + * + * + * UseCases can only be involved in binary Associations. + * true + * + * @generated + */ + public static boolean validateBinaryAssociations(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.USE_CASE__BINARY_ASSOCIATIONS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateBinaryAssociations", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(useCase, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{useCase})); + } + return false; + } + return true; + } + + /** + * + * + * + * UseCases can not have Associations to UseCases specifying the same subject. + * true + * + * @generated + */ + public static boolean validateNoAssociationToUseCase(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.USE_CASE__NO_ASSOCIATION_TO_USE_CASE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateNoAssociationToUseCase", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(useCase, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{useCase})); + } + return false; + } + return true; + } + + /** + * + * + * + * A use case cannot include use cases that directly or indirectly include it. + * not self.allIncludedUseCases()->includes(self) + * + * @generated + */ + public static boolean validateCannotIncludeSelf(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.USE_CASE__CANNOT_INCLUDE_SELF, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCannotIncludeSelf", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(useCase, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{useCase})); + } + return false; + } + return true; + } + + /** + * + * + * + * The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case. + * result = self.include->union(self.include->collect(in | in.allIncludedUseCases())) + * + * @generated + */ + public static List allIncludedUseCases(UseCase useCase) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // UseCaseOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java new file mode 100644 index 00000000..fb090fa4 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValuePinOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValuePinOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ValuePin; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Value Pin' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ValuePin#validateCompatibleType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Compatible Type}
  • + *
+ *

+ * + * @generated + */ +public final class ValuePinOperations { + + /** + * + * + * @generated + */ + private ValuePinOperations() { + super(); + } + + /** + * + * + * + * The type of value specification must be compatible with the type of the value pin. + * true + * + * @generated + */ + public static boolean validateCompatibleType(ValuePin valuePin, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.VALUE_PIN__COMPATIBLE_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompatibleType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(valuePin, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{valuePin})); + } + return false; + } + return true; + } + +} // ValuePinOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationActionOperations.java new file mode 100644 index 00000000..dea3bd52 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValueSpecificationActionOperations.java,v 1.1 2005/11/14 22:25:56 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.ValueSpecificationAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Value Specification Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ValueSpecificationAction#validateCompatibleType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Compatible Type}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecificationAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class ValueSpecificationActionOperations { + + /** + * + * + * @generated + */ + private ValueSpecificationActionOperations() { + super(); + } + + /** + * + * + * + * The type of value specification must be compatible with the type of the result pin. + * true + * + * @generated + */ + public static boolean validateCompatibleType( + ValueSpecificationAction valueSpecificationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.VALUE_SPECIFICATION_ACTION__COMPATIBLE_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateCompatibleType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(valueSpecificationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{valueSpecificationAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the result pin is 1..1 + * true + * + * @generated + */ + public static boolean validateMultiplicity( + ValueSpecificationAction valueSpecificationAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.VALUE_SPECIFICATION_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(valueSpecificationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{valueSpecificationAction})); + } + return false; + } + return true; + } + +} // ValueSpecificationActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationOperations.java new file mode 100644 index 00000000..519603cb --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/ValueSpecificationOperations.java @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: ValueSpecificationOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.ValueSpecification; + +/** + * + * A static utility class that provides operations related to 'Value Specification' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#isComputable() Is Computable}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#integerValue() Integer Value}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#booleanValue() Boolean Value}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#stringValue() String Value}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#unlimitedValue() Unlimited Value}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#isNull() Is Null}
  • + *
  • {@link org.eclipse.uml2.uml.ValueSpecification#isCompatibleWith(org.eclipse.uml2.uml.ParameterableElement) Is Compatible With}
  • + *
+ *

+ * + * @generated + */ +public final class ValueSpecificationOperations { + + /** + * + * + * @generated + */ + private ValueSpecificationOperations() { + super(); + } + + /** + * + * + * + * The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals. + * result = false + * + * @generated + */ + public static boolean isComputable(ValueSpecification valueSpecification) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query integerValue() gives a single Integer value when one can be computed. + * result = Set{} + * + * @generated + */ + public static int integerValue(ValueSpecification valueSpecification) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query booleanValue() gives a single Boolean value when one can be computed. + * result = Set{} + * + * @generated + */ + public static boolean booleanValue(ValueSpecification valueSpecification) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query stringValue() gives a single String value when one can be computed. + * result = Set{} + * + * @generated + */ + public static String stringValue(ValueSpecification valueSpecification) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed. + * result = Set{} + * + * @generated + */ + public static int unlimitedValue(ValueSpecification valueSpecification) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isNull() returns true when it can be computed that the value is null. + * result = false + * + * @generated + */ + public static boolean isNull(ValueSpecification valueSpecification) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * + * The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element. + * + * + * result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type) + * + * @generated + */ + public static boolean isCompatibleWith( + ValueSpecification valueSpecification, ParameterableElement p) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // ValueSpecificationOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableActionOperations.java new file mode 100644 index 00000000..8274a319 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableActionOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VariableActionOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.VariableAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Variable Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.VariableAction#validateScopeOfVariable(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Scope Of Variable}
  • + *
+ *

+ * + * @generated + */ +public final class VariableActionOperations { + + /** + * + * + * @generated + */ + private VariableActionOperations() { + super(); + } + + /** + * + * + * + * The action must be in the scope of the variable. + * self.variable.isAccessibleBy(self) + * + * @generated + */ + public static boolean validateScopeOfVariable( + VariableAction variableAction, DiagnosticChain diagnostics, + Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.VARIABLE_ACTION__SCOPE_OF_VARIABLE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateScopeOfVariable", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(variableAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{variableAction})); + } + return false; + } + return true; + } + +} // VariableActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableOperations.java new file mode 100644 index 00000000..8ea61478 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VariableOperations.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VariableOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.Variable; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Variable' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Variable#validateOwned(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Owned}
  • + *
  • {@link org.eclipse.uml2.uml.Variable#isAccessibleBy(org.eclipse.uml2.uml.Action) Is Accessible By}
  • + *
+ *

+ * + * @generated + */ +public final class VariableOperations { + + /** + * + * + * @generated + */ + private VariableOperations() { + super(); + } + + /** + * + * + * + * A variable is owned by a StructuredNode or Activity, but not both. + * true + * + * @generated + */ + public static boolean validateOwned(Variable variable, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.VARIABLE__OWNED, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateOwned", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(variable, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{variable})); + } + return false; + } + return true; + } + + /** + * + * + * + * The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable. + * + * + * result = true + * + * @generated + */ + public static boolean isAccessibleBy(Variable variable, Action a) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // VariableOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VertexOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VertexOperations.java new file mode 100644 index 00000000..b4461891 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/VertexOperations.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: VertexOperations.java,v 1.1 2005/11/14 22:25:54 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.Vertex; + +/** + * + * A static utility class that provides operations related to 'Vertex' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.Vertex#containingStatemachine() Containing Statemachine}
  • + *
+ *

+ * + * @generated + */ +public final class VertexOperations { + + /** + * + * + * @generated + */ + private VertexOperations() { + super(); + } + + /** + * + * + * + * The operation containingStatemachine() returns the state machine in which this Vertex is defined + * result = if not container->isEmpty() + * then + * -- the container is a region + * container.containingStateMachine() + * else if (oclIsKindOf(Pseudostate)) then + * -- entry or exit point? + * if (kind = #entryPoint) or (kind = #exitPoint) then + * stateMachine + * else if (oclIsKindOf(ConnectionPointReference)) then + * state.containingStateMachine() -- no other valid cases possible + * endif + * + * + * @generated + */ + public static StateMachine containingStatemachine(Vertex vertex) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + +} // VertexOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteLinkActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteLinkActionOperations.java new file mode 100644 index 00000000..16272308 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteLinkActionOperations.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteLinkActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.WriteLinkAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Write Link Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.WriteLinkAction#validateAllowAccess(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Allow Access}
  • + *
+ *

+ * + * @generated + */ +public final class WriteLinkActionOperations { + + /** + * + * + * @generated + */ + private WriteLinkActionOperations() { + super(); + } + + /** + * + * + * + * The visibility of at least one end must allow access to the class using the action. + * true + * + * @generated + */ + public static boolean validateAllowAccess(WriteLinkAction writeLinkAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.WRITE_LINK_ACTION__ALLOW_ACCESS, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateAllowAccess", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(writeLinkAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{writeLinkAction})); + } + return false; + } + return true; + } + +} // WriteLinkActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java new file mode 100644 index 00000000..56566343 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteStructuralFeatureActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteStructuralFeatureActionOperations.java,v 1.1 2005/11/14 22:25:53 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.WriteStructuralFeatureAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Write Structural Feature Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateInputPin(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Input Pin}
  • + *
  • {@link org.eclipse.uml2.uml.WriteStructuralFeatureAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class WriteStructuralFeatureActionOperations { + + /** + * + * + * @generated + */ + private WriteStructuralFeatureActionOperations() { + super(); + } + + /** + * + * + * + * The type input pin is the same as the classifier of the structural feature. + * self.value.type = self.structuralFeature.featuringClassifier + * + * @generated + */ + public static boolean validateInputPin( + WriteStructuralFeatureAction writeStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.WRITE_STRUCTURAL_FEATURE_ACTION__INPUT_PIN, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateInputPin", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(writeStructuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{writeStructuralFeatureAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.value.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + WriteStructuralFeatureAction writeStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.WRITE_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(writeStructuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{writeStructuralFeatureAction})); + } + return false; + } + return true; + } + +} // WriteStructuralFeatureActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java new file mode 100644 index 00000000..3c40ec47 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/WriteVariableActionOperations.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: WriteVariableActionOperations.java,v 1.1 2005/11/14 22:25:55 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.operations; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.uml2.uml.WriteVariableAction; + +import org.eclipse.uml2.uml.util.UMLValidator; + +/** + * + * A static utility class that provides operations related to 'Write Variable Action' model objects. + * + * + *

+ * The following operations are supported: + *

    + *
  • {@link org.eclipse.uml2.uml.WriteVariableAction#validateSameType(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Same Type}
  • + *
  • {@link org.eclipse.uml2.uml.WriteVariableAction#validateMultiplicity(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) Validate Multiplicity}
  • + *
+ *

+ * + * @generated + */ +public final class WriteVariableActionOperations { + + /** + * + * + * @generated + */ + private WriteVariableActionOperations() { + super(); + } + + /** + * + * + * + * The type input pin is the same as the type of the variable. + * self.value.type = self.variable.type + * + * @generated + */ + public static boolean validateSameType( + WriteVariableAction writeVariableAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.WRITE_VARIABLE_ACTION__SAME_TYPE, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateSameType", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(writeVariableAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{writeVariableAction})); + } + return false; + } + return true; + } + + /** + * + * + * + * The multiplicity of the input pin is 1..1. + * self.value.multiplicity.is(1,1) + * + * @generated + */ + public static boolean validateMultiplicity( + WriteVariableAction writeVariableAction, + DiagnosticChain diagnostics, Map context) { + // TODO: implement this method + // -> specify the condition that violates the invariant + // -> verify the details of the diagnostic, including severity and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + UMLValidator.DIAGNOSTIC_SOURCE, + UMLValidator.WRITE_VARIABLE_ACTION__MULTIPLICITY, + org.eclipse.emf.ecore.plugin.EcorePlugin.INSTANCE + .getString( + "_UI_GenericInvariant_diagnostic", new Object[]{"validateMultiplicity", org.eclipse.emf.ecore.util.EObjectValidator.getObjectLabel(writeVariableAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{writeVariableAction})); + } + return false; + } + return true; + } + +} // WriteVariableActionOperations \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceFactoryImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceFactoryImpl.java new file mode 100644 index 00000000..49c66c3d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceFactoryImpl.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLResourceFactoryImpl.java,v 1.1 2005/11/14 22:26:08 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.util; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.resource.Resource; + +import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl; +import org.eclipse.uml2.uml.util.UMLResource; + +/** + * + * The Resource Factory associated with the package. + * + * @see org.eclipse.uml2.uml.internal.util.UMLResourceImpl + * @generated + */ +public class UMLResourceFactoryImpl + extends ResourceFactoryImpl + implements UMLResource.Factory { + + /** + * Creates an instance of the resource factory. + * + * + * @generated + */ + public UMLResourceFactoryImpl() { + super(); + } + + /** + * Creates an instance of the resource. + * + * + * @generated + */ + public Resource createResource(URI uri) { + UMLResource result = new UMLResourceImpl(uri); + result.setEncoding(UMLResource.DEFAULT_ENCODING); + return result; + } + +} //UMLResourceFactoryImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceImpl.java new file mode 100644 index 00000000..08726898 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/util/UMLResourceImpl.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLResourceImpl.java,v 1.1 2005/11/14 22:26:08 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.util; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; +import org.eclipse.uml2.uml.util.UMLResource; + +/** + * + * The Resource associated with the package. + * + * @see org.eclipse.uml2.uml.internal.util.UMLResourceFactoryImpl + * @generated + */ +public class UMLResourceImpl + extends XMIResourceImpl + implements UMLResource { + + /** + * Creates an instance of the resource. + * + * + * @param uri the URI of the new resource. + * @generated + */ + public UMLResourceImpl(URI uri) { + super(uri); + } + +} //UMLResourceImpl diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java new file mode 100644 index 00000000..aab34e02 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLAdapterFactory.java @@ -0,0 +1,4747 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLAdapterFactory.java,v 1.1 2005/11/14 22:26:08 khussey Exp $ + */ +package org.eclipse.uml2.uml.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EModelElement; +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.uml2.uml.Abstraction; +import org.eclipse.uml2.uml.AcceptCallAction; +import org.eclipse.uml2.uml.AcceptEventAction; +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.ActionExecutionSpecification; +import org.eclipse.uml2.uml.ActionInputPin; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityFinalNode; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityParameterNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; +import org.eclipse.uml2.uml.AddVariableValueAction; +import org.eclipse.uml2.uml.AnyReceiveEvent; +import org.eclipse.uml2.uml.Artifact; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.AssociationClass; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehaviorExecutionSpecification; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.BroadcastSignalAction; +import org.eclipse.uml2.uml.CallAction; +import org.eclipse.uml2.uml.CallBehaviorAction; +import org.eclipse.uml2.uml.CallEvent; +import org.eclipse.uml2.uml.CallOperationAction; +import org.eclipse.uml2.uml.CentralBufferNode; +import org.eclipse.uml2.uml.ChangeEvent; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ClassifierTemplateParameter; +import org.eclipse.uml2.uml.Clause; +import org.eclipse.uml2.uml.ClearAssociationAction; +import org.eclipse.uml2.uml.ClearStructuralFeatureAction; +import org.eclipse.uml2.uml.ClearVariableAction; +import org.eclipse.uml2.uml.Collaboration; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.CombinedFragment; +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.CommunicationPath; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.ComponentRealization; +import org.eclipse.uml2.uml.ConditionalNode; +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ConnectionPointReference; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.ConsiderIgnoreFragment; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Continuation; +import org.eclipse.uml2.uml.ControlFlow; +import org.eclipse.uml2.uml.ControlNode; +import org.eclipse.uml2.uml.CreateLinkAction; +import org.eclipse.uml2.uml.CreateLinkObjectAction; +import org.eclipse.uml2.uml.CreateObjectAction; +import org.eclipse.uml2.uml.CreationEvent; +import org.eclipse.uml2.uml.DataStoreNode; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.DecisionNode; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.DeployedArtifact; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentSpecification; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.DestroyLinkAction; +import org.eclipse.uml2.uml.DestroyObjectAction; +import org.eclipse.uml2.uml.DestructionEvent; +import org.eclipse.uml2.uml.Device; +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.DurationConstraint; +import org.eclipse.uml2.uml.DurationInterval; +import org.eclipse.uml2.uml.DurationObservationAction; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.EncapsulatedClassifier; +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.ExceptionHandler; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.ExecutionEnvironment; +import org.eclipse.uml2.uml.ExecutionEvent; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.ExecutionSpecification; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; +import org.eclipse.uml2.uml.Expression; +import org.eclipse.uml2.uml.Extend; +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.ExtensionEnd; +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.FinalNode; +import org.eclipse.uml2.uml.FinalState; +import org.eclipse.uml2.uml.FlowFinalNode; +import org.eclipse.uml2.uml.ForkNode; +import org.eclipse.uml2.uml.FunctionBehavior; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.Image; +import org.eclipse.uml2.uml.Include; +import org.eclipse.uml2.uml.InformationFlow; +import org.eclipse.uml2.uml.InformationItem; +import org.eclipse.uml2.uml.InitialNode; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.InstanceValue; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionConstraint; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionUse; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.Interval; +import org.eclipse.uml2.uml.IntervalConstraint; +import org.eclipse.uml2.uml.InvocationAction; +import org.eclipse.uml2.uml.JoinNode; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.LinkAction; +import org.eclipse.uml2.uml.LinkEndCreationData; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.LinkEndDestructionData; +import org.eclipse.uml2.uml.LiteralBoolean; +import org.eclipse.uml2.uml.LiteralInteger; +import org.eclipse.uml2.uml.LiteralNull; +import org.eclipse.uml2.uml.LiteralSpecification; +import org.eclipse.uml2.uml.LiteralString; +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; +import org.eclipse.uml2.uml.LoopNode; +import org.eclipse.uml2.uml.Manifestation; +import org.eclipse.uml2.uml.MergeNode; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageEnd; +import org.eclipse.uml2.uml.MessageEvent; +import org.eclipse.uml2.uml.MessageOccurrenceSpecification; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Node; +import org.eclipse.uml2.uml.ObjectFlow; +import org.eclipse.uml2.uml.ObjectNode; +import org.eclipse.uml2.uml.OccurrenceSpecification; +import org.eclipse.uml2.uml.OpaqueAction; +import org.eclipse.uml2.uml.OpaqueBehavior; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.PartDecomposition; +import org.eclipse.uml2.uml.Pin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.PrimitiveType; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ProtocolConformance; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.ProtocolTransition; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.QualifierValue; +import org.eclipse.uml2.uml.RaiseExceptionAction; +import org.eclipse.uml2.uml.ReadExtentAction; +import org.eclipse.uml2.uml.ReadIsClassifiedObjectAction; +import org.eclipse.uml2.uml.ReadLinkAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction; +import org.eclipse.uml2.uml.ReadSelfAction; +import org.eclipse.uml2.uml.ReadStructuralFeatureAction; +import org.eclipse.uml2.uml.ReadVariableAction; +import org.eclipse.uml2.uml.Realization; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.ReclassifyObjectAction; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction; +import org.eclipse.uml2.uml.RemoveVariableValueAction; +import org.eclipse.uml2.uml.ReplyAction; +import org.eclipse.uml2.uml.SendObjectAction; +import org.eclipse.uml2.uml.SendOperationEvent; +import org.eclipse.uml2.uml.SendSignalAction; +import org.eclipse.uml2.uml.SendSignalEvent; +import org.eclipse.uml2.uml.SequenceNode; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.SignalEvent; +import org.eclipse.uml2.uml.Slot; +import org.eclipse.uml2.uml.StartClassifierBehaviorAction; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateInvariant; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuralFeatureAction; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.StructuredClassifier; +import org.eclipse.uml2.uml.Substitution; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateParameterSubstitution; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.TestIdentityAction; +import org.eclipse.uml2.uml.TimeConstraint; +import org.eclipse.uml2.uml.TimeEvent; +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.TimeInterval; +import org.eclipse.uml2.uml.TimeObservationAction; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UnmarshallAction; +import org.eclipse.uml2.uml.Usage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.ValuePin; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.ValueSpecificationAction; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VariableAction; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.WriteLinkAction; +import org.eclipse.uml2.uml.WriteStructuralFeatureAction; +import org.eclipse.uml2.uml.WriteVariableAction; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see org.eclipse.uml2.uml.UMLPackage + * @generated + */ +public class UMLAdapterFactory + extends AdapterFactoryImpl { + + /** + * The cached model package. + * + * + * @generated + */ + protected static UMLPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public UMLAdapterFactory() { + if (modelPackage == null) { + modelPackage = UMLPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject) object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch the delegates to the createXXX methods. + * + * + * @generated + */ + protected UMLSwitch modelSwitch = new UMLSwitch() { + + public Object caseComment(Comment object) { + return createCommentAdapter(); + } + + public Object caseElement(Element object) { + return createElementAdapter(); + } + + public Object caseDirectedRelationship(DirectedRelationship object) { + return createDirectedRelationshipAdapter(); + } + + public Object caseRelationship(Relationship object) { + return createRelationshipAdapter(); + } + + public Object caseLiteralSpecification(LiteralSpecification object) { + return createLiteralSpecificationAdapter(); + } + + public Object caseValueSpecification(ValueSpecification object) { + return createValueSpecificationAdapter(); + } + + public Object caseTypedElement(TypedElement object) { + return createTypedElementAdapter(); + } + + public Object caseNamedElement(NamedElement object) { + return createNamedElementAdapter(); + } + + public Object caseDependency(Dependency object) { + return createDependencyAdapter(); + } + + public Object casePackageableElement(PackageableElement object) { + return createPackageableElementAdapter(); + } + + public Object caseParameterableElement(ParameterableElement object) { + return createParameterableElementAdapter(); + } + + public Object caseTemplateParameter(TemplateParameter object) { + return createTemplateParameterAdapter(); + } + + public Object caseTemplateSignature(TemplateSignature object) { + return createTemplateSignatureAdapter(); + } + + public Object caseTemplateableElement(TemplateableElement object) { + return createTemplateableElementAdapter(); + } + + public Object caseTemplateBinding(TemplateBinding object) { + return createTemplateBindingAdapter(); + } + + public Object caseTemplateParameterSubstitution( + TemplateParameterSubstitution object) { + return createTemplateParameterSubstitutionAdapter(); + } + + public Object caseNamespace(Namespace object) { + return createNamespaceAdapter(); + } + + public Object caseElementImport(ElementImport object) { + return createElementImportAdapter(); + } + + public Object casePackageImport(PackageImport object) { + return createPackageImportAdapter(); + } + + public Object casePackage(org.eclipse.uml2.uml.Package object) { + return createPackageAdapter(); + } + + public Object casePackageMerge(PackageMerge object) { + return createPackageMergeAdapter(); + } + + public Object caseType(Type object) { + return createTypeAdapter(); + } + + public Object caseProfileApplication(ProfileApplication object) { + return createProfileApplicationAdapter(); + } + + public Object caseProfile(Profile object) { + return createProfileAdapter(); + } + + public Object caseStereotype(Stereotype object) { + return createStereotypeAdapter(); + } + + public Object caseClass(org.eclipse.uml2.uml.Class object) { + return createClassAdapter(); + } + + public Object caseBehavioredClassifier(BehavioredClassifier object) { + return createBehavioredClassifierAdapter(); + } + + public Object caseClassifier(Classifier object) { + return createClassifierAdapter(); + } + + public Object caseRedefinableElement(RedefinableElement object) { + return createRedefinableElementAdapter(); + } + + public Object caseGeneralization(Generalization object) { + return createGeneralizationAdapter(); + } + + public Object caseGeneralizationSet(GeneralizationSet object) { + return createGeneralizationSetAdapter(); + } + + public Object caseFeature(Feature object) { + return createFeatureAdapter(); + } + + public Object caseUseCase(UseCase object) { + return createUseCaseAdapter(); + } + + public Object caseInclude(Include object) { + return createIncludeAdapter(); + } + + public Object caseExtend(Extend object) { + return createExtendAdapter(); + } + + public Object caseConstraint(Constraint object) { + return createConstraintAdapter(); + } + + public Object caseExtensionPoint(ExtensionPoint object) { + return createExtensionPointAdapter(); + } + + public Object caseSubstitution(Substitution object) { + return createSubstitutionAdapter(); + } + + public Object caseRealization(Realization object) { + return createRealizationAdapter(); + } + + public Object caseAbstraction(Abstraction object) { + return createAbstractionAdapter(); + } + + public Object caseOpaqueExpression(OpaqueExpression object) { + return createOpaqueExpressionAdapter(); + } + + public Object caseParameter(Parameter object) { + return createParameterAdapter(); + } + + public Object caseMultiplicityElement(MultiplicityElement object) { + return createMultiplicityElementAdapter(); + } + + public Object caseConnectableElement(ConnectableElement object) { + return createConnectableElementAdapter(); + } + + public Object caseConnectorEnd(ConnectorEnd object) { + return createConnectorEndAdapter(); + } + + public Object caseProperty(Property object) { + return createPropertyAdapter(); + } + + public Object caseDeploymentTarget(DeploymentTarget object) { + return createDeploymentTargetAdapter(); + } + + public Object caseDeployment(Deployment object) { + return createDeploymentAdapter(); + } + + public Object caseDeployedArtifact(DeployedArtifact object) { + return createDeployedArtifactAdapter(); + } + + public Object caseDeploymentSpecification(DeploymentSpecification object) { + return createDeploymentSpecificationAdapter(); + } + + public Object caseArtifact(Artifact object) { + return createArtifactAdapter(); + } + + public Object caseManifestation(Manifestation object) { + return createManifestationAdapter(); + } + + public Object caseOperation(Operation object) { + return createOperationAdapter(); + } + + public Object caseBehavioralFeature(BehavioralFeature object) { + return createBehavioralFeatureAdapter(); + } + + public Object caseBehavior(Behavior object) { + return createBehaviorAdapter(); + } + + public Object caseParameterSet(ParameterSet object) { + return createParameterSetAdapter(); + } + + public Object caseDataType(DataType object) { + return createDataTypeAdapter(); + } + + public Object caseInterface(Interface object) { + return createInterfaceAdapter(); + } + + public Object caseReception(Reception object) { + return createReceptionAdapter(); + } + + public Object caseSignal(Signal object) { + return createSignalAdapter(); + } + + public Object caseProtocolStateMachine(ProtocolStateMachine object) { + return createProtocolStateMachineAdapter(); + } + + public Object caseStateMachine(StateMachine object) { + return createStateMachineAdapter(); + } + + public Object caseRegion(Region object) { + return createRegionAdapter(); + } + + public Object caseVertex(Vertex object) { + return createVertexAdapter(); + } + + public Object caseTransition(Transition object) { + return createTransitionAdapter(); + } + + public Object caseTrigger(Trigger object) { + return createTriggerAdapter(); + } + + public Object caseEvent(Event object) { + return createEventAdapter(); + } + + public Object casePort(Port object) { + return createPortAdapter(); + } + + public Object caseState(State object) { + return createStateAdapter(); + } + + public Object caseConnectionPointReference( + ConnectionPointReference object) { + return createConnectionPointReferenceAdapter(); + } + + public Object casePseudostate(Pseudostate object) { + return createPseudostateAdapter(); + } + + public Object caseProtocolConformance(ProtocolConformance object) { + return createProtocolConformanceAdapter(); + } + + public Object caseOperationTemplateParameter( + OperationTemplateParameter object) { + return createOperationTemplateParameterAdapter(); + } + + public Object caseStructuralFeature(StructuralFeature object) { + return createStructuralFeatureAdapter(); + } + + public Object caseAssociation(Association object) { + return createAssociationAdapter(); + } + + public Object caseConnectableElementTemplateParameter( + ConnectableElementTemplateParameter object) { + return createConnectableElementTemplateParameterAdapter(); + } + + public Object caseCollaborationUse(CollaborationUse object) { + return createCollaborationUseAdapter(); + } + + public Object caseCollaboration(Collaboration object) { + return createCollaborationAdapter(); + } + + public Object caseStructuredClassifier(StructuredClassifier object) { + return createStructuredClassifierAdapter(); + } + + public Object caseConnector(Connector object) { + return createConnectorAdapter(); + } + + public Object caseRedefinableTemplateSignature( + RedefinableTemplateSignature object) { + return createRedefinableTemplateSignatureAdapter(); + } + + public Object caseClassifierTemplateParameter( + ClassifierTemplateParameter object) { + return createClassifierTemplateParameterAdapter(); + } + + public Object caseInterfaceRealization(InterfaceRealization object) { + return createInterfaceRealizationAdapter(); + } + + public Object caseEncapsulatedClassifier(EncapsulatedClassifier object) { + return createEncapsulatedClassifierAdapter(); + } + + public Object caseExtension(Extension object) { + return createExtensionAdapter(); + } + + public Object caseExtensionEnd(ExtensionEnd object) { + return createExtensionEndAdapter(); + } + + public Object caseImage(Image object) { + return createImageAdapter(); + } + + public Object caseStringExpression(StringExpression object) { + return createStringExpressionAdapter(); + } + + public Object caseExpression(Expression object) { + return createExpressionAdapter(); + } + + public Object caseLiteralInteger(LiteralInteger object) { + return createLiteralIntegerAdapter(); + } + + public Object caseLiteralString(LiteralString object) { + return createLiteralStringAdapter(); + } + + public Object caseLiteralBoolean(LiteralBoolean object) { + return createLiteralBooleanAdapter(); + } + + public Object caseLiteralNull(LiteralNull object) { + return createLiteralNullAdapter(); + } + + public Object caseSlot(Slot object) { + return createSlotAdapter(); + } + + public Object caseInstanceSpecification(InstanceSpecification object) { + return createInstanceSpecificationAdapter(); + } + + public Object caseEnumeration(Enumeration object) { + return createEnumerationAdapter(); + } + + public Object caseEnumerationLiteral(EnumerationLiteral object) { + return createEnumerationLiteralAdapter(); + } + + public Object casePrimitiveType(PrimitiveType object) { + return createPrimitiveTypeAdapter(); + } + + public Object caseInstanceValue(InstanceValue object) { + return createInstanceValueAdapter(); + } + + public Object caseLiteralUnlimitedNatural(LiteralUnlimitedNatural object) { + return createLiteralUnlimitedNaturalAdapter(); + } + + public Object caseOpaqueBehavior(OpaqueBehavior object) { + return createOpaqueBehaviorAdapter(); + } + + public Object caseFunctionBehavior(FunctionBehavior object) { + return createFunctionBehaviorAdapter(); + } + + public Object caseActor(Actor object) { + return createActorAdapter(); + } + + public Object caseUsage(Usage object) { + return createUsageAdapter(); + } + + public Object caseMessage(Message object) { + return createMessageAdapter(); + } + + public Object caseMessageEnd(MessageEnd object) { + return createMessageEndAdapter(); + } + + public Object caseInteraction(Interaction object) { + return createInteractionAdapter(); + } + + public Object caseInteractionFragment(InteractionFragment object) { + return createInteractionFragmentAdapter(); + } + + public Object caseLifeline(Lifeline object) { + return createLifelineAdapter(); + } + + public Object casePartDecomposition(PartDecomposition object) { + return createPartDecompositionAdapter(); + } + + public Object caseInteractionUse(InteractionUse object) { + return createInteractionUseAdapter(); + } + + public Object caseGate(Gate object) { + return createGateAdapter(); + } + + public Object caseAction(Action object) { + return createActionAdapter(); + } + + public Object caseExecutableNode(ExecutableNode object) { + return createExecutableNodeAdapter(); + } + + public Object caseActivityNode(ActivityNode object) { + return createActivityNodeAdapter(); + } + + public Object caseActivityEdge(ActivityEdge object) { + return createActivityEdgeAdapter(); + } + + public Object caseActivity(Activity object) { + return createActivityAdapter(); + } + + public Object caseActivityPartition(ActivityPartition object) { + return createActivityPartitionAdapter(); + } + + public Object caseActivityGroup(ActivityGroup object) { + return createActivityGroupAdapter(); + } + + public Object caseStructuredActivityNode(StructuredActivityNode object) { + return createStructuredActivityNodeAdapter(); + } + + public Object caseVariable(Variable object) { + return createVariableAdapter(); + } + + public Object caseInterruptibleActivityRegion( + InterruptibleActivityRegion object) { + return createInterruptibleActivityRegionAdapter(); + } + + public Object caseExceptionHandler(ExceptionHandler object) { + return createExceptionHandlerAdapter(); + } + + public Object caseObjectNode(ObjectNode object) { + return createObjectNodeAdapter(); + } + + public Object caseOutputPin(OutputPin object) { + return createOutputPinAdapter(); + } + + public Object casePin(Pin object) { + return createPinAdapter(); + } + + public Object caseInputPin(InputPin object) { + return createInputPinAdapter(); + } + + public Object caseGeneralOrdering(GeneralOrdering object) { + return createGeneralOrderingAdapter(); + } + + public Object caseOccurrenceSpecification(OccurrenceSpecification object) { + return createOccurrenceSpecificationAdapter(); + } + + public Object caseInteractionOperand(InteractionOperand object) { + return createInteractionOperandAdapter(); + } + + public Object caseInteractionConstraint(InteractionConstraint object) { + return createInteractionConstraintAdapter(); + } + + public Object caseExecutionSpecification(ExecutionSpecification object) { + return createExecutionSpecificationAdapter(); + } + + public Object caseExecutionOccurrenceSpecification( + ExecutionOccurrenceSpecification object) { + return createExecutionOccurrenceSpecificationAdapter(); + } + + public Object caseExecutionEvent(ExecutionEvent object) { + return createExecutionEventAdapter(); + } + + public Object caseStateInvariant(StateInvariant object) { + return createStateInvariantAdapter(); + } + + public Object caseActionExecutionSpecification( + ActionExecutionSpecification object) { + return createActionExecutionSpecificationAdapter(); + } + + public Object caseBehaviorExecutionSpecification( + BehaviorExecutionSpecification object) { + return createBehaviorExecutionSpecificationAdapter(); + } + + public Object caseCreationEvent(CreationEvent object) { + return createCreationEventAdapter(); + } + + public Object caseDestructionEvent(DestructionEvent object) { + return createDestructionEventAdapter(); + } + + public Object caseSendOperationEvent(SendOperationEvent object) { + return createSendOperationEventAdapter(); + } + + public Object caseMessageEvent(MessageEvent object) { + return createMessageEventAdapter(); + } + + public Object caseSendSignalEvent(SendSignalEvent object) { + return createSendSignalEventAdapter(); + } + + public Object caseMessageOccurrenceSpecification( + MessageOccurrenceSpecification object) { + return createMessageOccurrenceSpecificationAdapter(); + } + + public Object caseCombinedFragment(CombinedFragment object) { + return createCombinedFragmentAdapter(); + } + + public Object caseContinuation(Continuation object) { + return createContinuationAdapter(); + } + + public Object caseConsiderIgnoreFragment(ConsiderIgnoreFragment object) { + return createConsiderIgnoreFragmentAdapter(); + } + + public Object caseCallEvent(CallEvent object) { + return createCallEventAdapter(); + } + + public Object caseChangeEvent(ChangeEvent object) { + return createChangeEventAdapter(); + } + + public Object caseSignalEvent(SignalEvent object) { + return createSignalEventAdapter(); + } + + public Object caseAnyReceiveEvent(AnyReceiveEvent object) { + return createAnyReceiveEventAdapter(); + } + + public Object caseCreateObjectAction(CreateObjectAction object) { + return createCreateObjectActionAdapter(); + } + + public Object caseDestroyObjectAction(DestroyObjectAction object) { + return createDestroyObjectActionAdapter(); + } + + public Object caseTestIdentityAction(TestIdentityAction object) { + return createTestIdentityActionAdapter(); + } + + public Object caseReadSelfAction(ReadSelfAction object) { + return createReadSelfActionAdapter(); + } + + public Object caseStructuralFeatureAction(StructuralFeatureAction object) { + return createStructuralFeatureActionAdapter(); + } + + public Object caseReadStructuralFeatureAction( + ReadStructuralFeatureAction object) { + return createReadStructuralFeatureActionAdapter(); + } + + public Object caseWriteStructuralFeatureAction( + WriteStructuralFeatureAction object) { + return createWriteStructuralFeatureActionAdapter(); + } + + public Object caseClearStructuralFeatureAction( + ClearStructuralFeatureAction object) { + return createClearStructuralFeatureActionAdapter(); + } + + public Object caseRemoveStructuralFeatureValueAction( + RemoveStructuralFeatureValueAction object) { + return createRemoveStructuralFeatureValueActionAdapter(); + } + + public Object caseAddStructuralFeatureValueAction( + AddStructuralFeatureValueAction object) { + return createAddStructuralFeatureValueActionAdapter(); + } + + public Object caseLinkAction(LinkAction object) { + return createLinkActionAdapter(); + } + + public Object caseLinkEndData(LinkEndData object) { + return createLinkEndDataAdapter(); + } + + public Object caseQualifierValue(QualifierValue object) { + return createQualifierValueAdapter(); + } + + public Object caseReadLinkAction(ReadLinkAction object) { + return createReadLinkActionAdapter(); + } + + public Object caseLinkEndCreationData(LinkEndCreationData object) { + return createLinkEndCreationDataAdapter(); + } + + public Object caseCreateLinkAction(CreateLinkAction object) { + return createCreateLinkActionAdapter(); + } + + public Object caseWriteLinkAction(WriteLinkAction object) { + return createWriteLinkActionAdapter(); + } + + public Object caseDestroyLinkAction(DestroyLinkAction object) { + return createDestroyLinkActionAdapter(); + } + + public Object caseLinkEndDestructionData(LinkEndDestructionData object) { + return createLinkEndDestructionDataAdapter(); + } + + public Object caseClearAssociationAction(ClearAssociationAction object) { + return createClearAssociationActionAdapter(); + } + + public Object caseBroadcastSignalAction(BroadcastSignalAction object) { + return createBroadcastSignalActionAdapter(); + } + + public Object caseInvocationAction(InvocationAction object) { + return createInvocationActionAdapter(); + } + + public Object caseSendObjectAction(SendObjectAction object) { + return createSendObjectActionAdapter(); + } + + public Object caseValueSpecificationAction( + ValueSpecificationAction object) { + return createValueSpecificationActionAdapter(); + } + + public Object caseTimeExpression(TimeExpression object) { + return createTimeExpressionAdapter(); + } + + public Object caseDuration(Duration object) { + return createDurationAdapter(); + } + + public Object caseTimeObservationAction(TimeObservationAction object) { + return createTimeObservationActionAdapter(); + } + + public Object caseValuePin(ValuePin object) { + return createValuePinAdapter(); + } + + public Object caseDurationInterval(DurationInterval object) { + return createDurationIntervalAdapter(); + } + + public Object caseInterval(Interval object) { + return createIntervalAdapter(); + } + + public Object caseTimeConstraint(TimeConstraint object) { + return createTimeConstraintAdapter(); + } + + public Object caseIntervalConstraint(IntervalConstraint object) { + return createIntervalConstraintAdapter(); + } + + public Object caseTimeInterval(TimeInterval object) { + return createTimeIntervalAdapter(); + } + + public Object caseDurationObservationAction( + DurationObservationAction object) { + return createDurationObservationActionAdapter(); + } + + public Object caseDurationConstraint(DurationConstraint object) { + return createDurationConstraintAdapter(); + } + + public Object caseOpaqueAction(OpaqueAction object) { + return createOpaqueActionAdapter(); + } + + public Object caseCallAction(CallAction object) { + return createCallActionAdapter(); + } + + public Object caseSendSignalAction(SendSignalAction object) { + return createSendSignalActionAdapter(); + } + + public Object caseCallOperationAction(CallOperationAction object) { + return createCallOperationActionAdapter(); + } + + public Object caseCallBehaviorAction(CallBehaviorAction object) { + return createCallBehaviorActionAdapter(); + } + + public Object caseInformationItem(InformationItem object) { + return createInformationItemAdapter(); + } + + public Object caseInformationFlow(InformationFlow object) { + return createInformationFlowAdapter(); + } + + public Object caseModel(Model object) { + return createModelAdapter(); + } + + public Object caseVariableAction(VariableAction object) { + return createVariableActionAdapter(); + } + + public Object caseReadVariableAction(ReadVariableAction object) { + return createReadVariableActionAdapter(); + } + + public Object caseWriteVariableAction(WriteVariableAction object) { + return createWriteVariableActionAdapter(); + } + + public Object caseClearVariableAction(ClearVariableAction object) { + return createClearVariableActionAdapter(); + } + + public Object caseAddVariableValueAction(AddVariableValueAction object) { + return createAddVariableValueActionAdapter(); + } + + public Object caseRemoveVariableValueAction( + RemoveVariableValueAction object) { + return createRemoveVariableValueActionAdapter(); + } + + public Object caseRaiseExceptionAction(RaiseExceptionAction object) { + return createRaiseExceptionActionAdapter(); + } + + public Object caseActionInputPin(ActionInputPin object) { + return createActionInputPinAdapter(); + } + + public Object caseReadExtentAction(ReadExtentAction object) { + return createReadExtentActionAdapter(); + } + + public Object caseReclassifyObjectAction(ReclassifyObjectAction object) { + return createReclassifyObjectActionAdapter(); + } + + public Object caseReadIsClassifiedObjectAction( + ReadIsClassifiedObjectAction object) { + return createReadIsClassifiedObjectActionAdapter(); + } + + public Object caseStartClassifierBehaviorAction( + StartClassifierBehaviorAction object) { + return createStartClassifierBehaviorActionAdapter(); + } + + public Object caseReadLinkObjectEndAction(ReadLinkObjectEndAction object) { + return createReadLinkObjectEndActionAdapter(); + } + + public Object caseReadLinkObjectEndQualifierAction( + ReadLinkObjectEndQualifierAction object) { + return createReadLinkObjectEndQualifierActionAdapter(); + } + + public Object caseCreateLinkObjectAction(CreateLinkObjectAction object) { + return createCreateLinkObjectActionAdapter(); + } + + public Object caseAcceptEventAction(AcceptEventAction object) { + return createAcceptEventActionAdapter(); + } + + public Object caseAcceptCallAction(AcceptCallAction object) { + return createAcceptCallActionAdapter(); + } + + public Object caseReplyAction(ReplyAction object) { + return createReplyActionAdapter(); + } + + public Object caseUnmarshallAction(UnmarshallAction object) { + return createUnmarshallActionAdapter(); + } + + public Object caseControlNode(ControlNode object) { + return createControlNodeAdapter(); + } + + public Object caseControlFlow(ControlFlow object) { + return createControlFlowAdapter(); + } + + public Object caseInitialNode(InitialNode object) { + return createInitialNodeAdapter(); + } + + public Object caseActivityParameterNode(ActivityParameterNode object) { + return createActivityParameterNodeAdapter(); + } + + public Object caseForkNode(ForkNode object) { + return createForkNodeAdapter(); + } + + public Object caseFlowFinalNode(FlowFinalNode object) { + return createFlowFinalNodeAdapter(); + } + + public Object caseFinalNode(FinalNode object) { + return createFinalNodeAdapter(); + } + + public Object caseCentralBufferNode(CentralBufferNode object) { + return createCentralBufferNodeAdapter(); + } + + public Object caseMergeNode(MergeNode object) { + return createMergeNodeAdapter(); + } + + public Object caseDecisionNode(DecisionNode object) { + return createDecisionNodeAdapter(); + } + + public Object caseActivityFinalNode(ActivityFinalNode object) { + return createActivityFinalNodeAdapter(); + } + + public Object caseJoinNode(JoinNode object) { + return createJoinNodeAdapter(); + } + + public Object caseDataStoreNode(DataStoreNode object) { + return createDataStoreNodeAdapter(); + } + + public Object caseObjectFlow(ObjectFlow object) { + return createObjectFlowAdapter(); + } + + public Object caseSequenceNode(SequenceNode object) { + return createSequenceNodeAdapter(); + } + + public Object caseConditionalNode(ConditionalNode object) { + return createConditionalNodeAdapter(); + } + + public Object caseClause(Clause object) { + return createClauseAdapter(); + } + + public Object caseLoopNode(LoopNode object) { + return createLoopNodeAdapter(); + } + + public Object caseExpansionNode(ExpansionNode object) { + return createExpansionNodeAdapter(); + } + + public Object caseExpansionRegion(ExpansionRegion object) { + return createExpansionRegionAdapter(); + } + + public Object caseComponentRealization(ComponentRealization object) { + return createComponentRealizationAdapter(); + } + + public Object caseComponent(Component object) { + return createComponentAdapter(); + } + + public Object caseNode(Node object) { + return createNodeAdapter(); + } + + public Object caseDevice(Device object) { + return createDeviceAdapter(); + } + + public Object caseExecutionEnvironment(ExecutionEnvironment object) { + return createExecutionEnvironmentAdapter(); + } + + public Object caseCommunicationPath(CommunicationPath object) { + return createCommunicationPathAdapter(); + } + + public Object caseFinalState(FinalState object) { + return createFinalStateAdapter(); + } + + public Object caseTimeEvent(TimeEvent object) { + return createTimeEventAdapter(); + } + + public Object caseProtocolTransition(ProtocolTransition object) { + return createProtocolTransitionAdapter(); + } + + public Object caseAssociationClass(AssociationClass object) { + return createAssociationClassAdapter(); + } + + public Object caseEModelElement(EModelElement object) { + return createEModelElementAdapter(); + } + + public Object defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + public Adapter createAdapter(Notifier target) { + return (Adapter) modelSwitch.doSwitch((EObject) target); + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Comment Comment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Comment + * @generated + */ + public Adapter createCommentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Element Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Element + * @generated + */ + public Adapter createElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DirectedRelationship Directed Relationship}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DirectedRelationship + * @generated + */ + public Adapter createDirectedRelationshipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Relationship Relationship}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Relationship + * @generated + */ + public Adapter createRelationshipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LiteralSpecification Literal Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LiteralSpecification + * @generated + */ + public Adapter createLiteralSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ValueSpecification Value Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ValueSpecification + * @generated + */ + public Adapter createValueSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TypedElement Typed Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TypedElement + * @generated + */ + public Adapter createTypedElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.NamedElement Named Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.NamedElement + * @generated + */ + public Adapter createNamedElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Dependency Dependency}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Dependency + * @generated + */ + public Adapter createDependencyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.PackageableElement Packageable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.PackageableElement + * @generated + */ + public Adapter createPackageableElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ParameterableElement Parameterable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ParameterableElement + * @generated + */ + public Adapter createParameterableElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TemplateParameter Template Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TemplateParameter + * @generated + */ + public Adapter createTemplateParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TemplateSignature Template Signature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TemplateSignature + * @generated + */ + public Adapter createTemplateSignatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TemplateableElement Templateable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TemplateableElement + * @generated + */ + public Adapter createTemplateableElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TemplateBinding Template Binding}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TemplateBinding + * @generated + */ + public Adapter createTemplateBindingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TemplateParameterSubstitution Template Parameter Substitution}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TemplateParameterSubstitution + * @generated + */ + public Adapter createTemplateParameterSubstitutionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Namespace Namespace}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Namespace + * @generated + */ + public Adapter createNamespaceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ElementImport Element Import}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ElementImport + * @generated + */ + public Adapter createElementImportAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.PackageImport Package Import}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.PackageImport + * @generated + */ + public Adapter createPackageImportAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Package Package}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Package + * @generated + */ + public Adapter createPackageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.PackageMerge Package Merge}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.PackageMerge + * @generated + */ + public Adapter createPackageMergeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Type Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Type + * @generated + */ + public Adapter createTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ProfileApplication Profile Application}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ProfileApplication + * @generated + */ + public Adapter createProfileApplicationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Profile Profile}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Profile + * @generated + */ + public Adapter createProfileAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Stereotype Stereotype}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Stereotype + * @generated + */ + public Adapter createStereotypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Class Class}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Class + * @generated + */ + public Adapter createClassAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.BehavioredClassifier Behaviored Classifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.BehavioredClassifier + * @generated + */ + public Adapter createBehavioredClassifierAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Classifier Classifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Classifier + * @generated + */ + public Adapter createClassifierAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.RedefinableElement Redefinable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.RedefinableElement + * @generated + */ + public Adapter createRedefinableElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Generalization Generalization}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Generalization + * @generated + */ + public Adapter createGeneralizationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.GeneralizationSet Generalization Set}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.GeneralizationSet + * @generated + */ + public Adapter createGeneralizationSetAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Feature Feature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Feature + * @generated + */ + public Adapter createFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.UseCase Use Case}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.UseCase + * @generated + */ + public Adapter createUseCaseAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Include Include}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Include + * @generated + */ + public Adapter createIncludeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Extend Extend}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Extend + * @generated + */ + public Adapter createExtendAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Constraint Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Constraint + * @generated + */ + public Adapter createConstraintAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExtensionPoint Extension Point}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExtensionPoint + * @generated + */ + public Adapter createExtensionPointAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Substitution Substitution}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Substitution + * @generated + */ + public Adapter createSubstitutionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Realization Realization}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Realization + * @generated + */ + public Adapter createRealizationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Abstraction Abstraction}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Abstraction + * @generated + */ + public Adapter createAbstractionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.OpaqueExpression Opaque Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.OpaqueExpression + * @generated + */ + public Adapter createOpaqueExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Parameter Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Parameter + * @generated + */ + public Adapter createParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.MultiplicityElement Multiplicity Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.MultiplicityElement + * @generated + */ + public Adapter createMultiplicityElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ConnectableElement Connectable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ConnectableElement + * @generated + */ + public Adapter createConnectableElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ConnectorEnd Connector End}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ConnectorEnd + * @generated + */ + public Adapter createConnectorEndAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Property Property}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Property + * @generated + */ + public Adapter createPropertyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DeploymentTarget Deployment Target}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DeploymentTarget + * @generated + */ + public Adapter createDeploymentTargetAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Deployment Deployment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Deployment + * @generated + */ + public Adapter createDeploymentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DeployedArtifact Deployed Artifact}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DeployedArtifact + * @generated + */ + public Adapter createDeployedArtifactAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DeploymentSpecification Deployment Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DeploymentSpecification + * @generated + */ + public Adapter createDeploymentSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Artifact Artifact}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Artifact + * @generated + */ + public Adapter createArtifactAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Manifestation Manifestation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Manifestation + * @generated + */ + public Adapter createManifestationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Operation Operation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Operation + * @generated + */ + public Adapter createOperationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.BehavioralFeature Behavioral Feature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.BehavioralFeature + * @generated + */ + public Adapter createBehavioralFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Behavior Behavior}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Behavior + * @generated + */ + public Adapter createBehaviorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ParameterSet Parameter Set}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ParameterSet + * @generated + */ + public Adapter createParameterSetAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DataType Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DataType + * @generated + */ + public Adapter createDataTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Interface Interface}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Interface + * @generated + */ + public Adapter createInterfaceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Reception Reception}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Reception + * @generated + */ + public Adapter createReceptionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Signal Signal}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Signal + * @generated + */ + public Adapter createSignalAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ProtocolStateMachine Protocol State Machine}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ProtocolStateMachine + * @generated + */ + public Adapter createProtocolStateMachineAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StateMachine State Machine}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StateMachine + * @generated + */ + public Adapter createStateMachineAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Region Region}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Region + * @generated + */ + public Adapter createRegionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Vertex Vertex}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Vertex + * @generated + */ + public Adapter createVertexAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Transition Transition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Transition + * @generated + */ + public Adapter createTransitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Trigger Trigger}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Trigger + * @generated + */ + public Adapter createTriggerAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Event Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Event + * @generated + */ + public Adapter createEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Port Port}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Port + * @generated + */ + public Adapter createPortAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.State State}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.State + * @generated + */ + public Adapter createStateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ConnectionPointReference Connection Point Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ConnectionPointReference + * @generated + */ + public Adapter createConnectionPointReferenceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Pseudostate Pseudostate}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Pseudostate + * @generated + */ + public Adapter createPseudostateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ProtocolConformance Protocol Conformance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ProtocolConformance + * @generated + */ + public Adapter createProtocolConformanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.OperationTemplateParameter Operation Template Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.OperationTemplateParameter + * @generated + */ + public Adapter createOperationTemplateParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StructuralFeature Structural Feature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StructuralFeature + * @generated + */ + public Adapter createStructuralFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Association Association}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Association + * @generated + */ + public Adapter createAssociationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ConnectableElementTemplateParameter Connectable Element Template Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ConnectableElementTemplateParameter + * @generated + */ + public Adapter createConnectableElementTemplateParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CollaborationUse Collaboration Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CollaborationUse + * @generated + */ + public Adapter createCollaborationUseAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Collaboration Collaboration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Collaboration + * @generated + */ + public Adapter createCollaborationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StructuredClassifier Structured Classifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StructuredClassifier + * @generated + */ + public Adapter createStructuredClassifierAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Connector Connector}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Connector + * @generated + */ + public Adapter createConnectorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.RedefinableTemplateSignature Redefinable Template Signature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.RedefinableTemplateSignature + * @generated + */ + public Adapter createRedefinableTemplateSignatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ClassifierTemplateParameter Classifier Template Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ClassifierTemplateParameter + * @generated + */ + public Adapter createClassifierTemplateParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InterfaceRealization Interface Realization}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InterfaceRealization + * @generated + */ + public Adapter createInterfaceRealizationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.EncapsulatedClassifier Encapsulated Classifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.EncapsulatedClassifier + * @generated + */ + public Adapter createEncapsulatedClassifierAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Extension Extension}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Extension + * @generated + */ + public Adapter createExtensionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExtensionEnd Extension End}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExtensionEnd + * @generated + */ + public Adapter createExtensionEndAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Image Image}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Image + * @generated + */ + public Adapter createImageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StringExpression String Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StringExpression + * @generated + */ + public Adapter createStringExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Expression Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Expression + * @generated + */ + public Adapter createExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LiteralInteger Literal Integer}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LiteralInteger + * @generated + */ + public Adapter createLiteralIntegerAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LiteralString Literal String}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LiteralString + * @generated + */ + public Adapter createLiteralStringAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LiteralBoolean Literal Boolean}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LiteralBoolean + * @generated + */ + public Adapter createLiteralBooleanAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LiteralNull Literal Null}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LiteralNull + * @generated + */ + public Adapter createLiteralNullAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Slot Slot}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Slot + * @generated + */ + public Adapter createSlotAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InstanceSpecification Instance Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InstanceSpecification + * @generated + */ + public Adapter createInstanceSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Enumeration Enumeration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Enumeration + * @generated + */ + public Adapter createEnumerationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.EnumerationLiteral Enumeration Literal}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.EnumerationLiteral + * @generated + */ + public Adapter createEnumerationLiteralAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.PrimitiveType Primitive Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.PrimitiveType + * @generated + */ + public Adapter createPrimitiveTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InstanceValue Instance Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InstanceValue + * @generated + */ + public Adapter createInstanceValueAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LiteralUnlimitedNatural Literal Unlimited Natural}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LiteralUnlimitedNatural + * @generated + */ + public Adapter createLiteralUnlimitedNaturalAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.OpaqueBehavior Opaque Behavior}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.OpaqueBehavior + * @generated + */ + public Adapter createOpaqueBehaviorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.FunctionBehavior Function Behavior}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.FunctionBehavior + * @generated + */ + public Adapter createFunctionBehaviorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Actor Actor}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Actor + * @generated + */ + public Adapter createActorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Usage Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Usage + * @generated + */ + public Adapter createUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Message Message}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Message + * @generated + */ + public Adapter createMessageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.MessageEnd Message End}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.MessageEnd + * @generated + */ + public Adapter createMessageEndAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Interaction Interaction}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Interaction + * @generated + */ + public Adapter createInteractionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InteractionFragment Interaction Fragment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InteractionFragment + * @generated + */ + public Adapter createInteractionFragmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Lifeline Lifeline}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Lifeline + * @generated + */ + public Adapter createLifelineAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.PartDecomposition Part Decomposition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.PartDecomposition + * @generated + */ + public Adapter createPartDecompositionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InteractionUse Interaction Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InteractionUse + * @generated + */ + public Adapter createInteractionUseAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Gate Gate}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Gate + * @generated + */ + public Adapter createGateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Action Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Action + * @generated + */ + public Adapter createActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExecutableNode Executable Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExecutableNode + * @generated + */ + public Adapter createExecutableNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActivityNode Activity Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActivityNode + * @generated + */ + public Adapter createActivityNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActivityEdge Activity Edge}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActivityEdge + * @generated + */ + public Adapter createActivityEdgeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Activity Activity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Activity + * @generated + */ + public Adapter createActivityAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActivityPartition Activity Partition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActivityPartition + * @generated + */ + public Adapter createActivityPartitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActivityGroup Activity Group}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActivityGroup + * @generated + */ + public Adapter createActivityGroupAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StructuredActivityNode Structured Activity Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StructuredActivityNode + * @generated + */ + public Adapter createStructuredActivityNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Variable Variable}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Variable + * @generated + */ + public Adapter createVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InterruptibleActivityRegion Interruptible Activity Region}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InterruptibleActivityRegion + * @generated + */ + public Adapter createInterruptibleActivityRegionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExceptionHandler Exception Handler}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExceptionHandler + * @generated + */ + public Adapter createExceptionHandlerAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ObjectNode Object Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ObjectNode + * @generated + */ + public Adapter createObjectNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.OutputPin Output Pin}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.OutputPin + * @generated + */ + public Adapter createOutputPinAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Pin Pin}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Pin + * @generated + */ + public Adapter createPinAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InputPin Input Pin}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InputPin + * @generated + */ + public Adapter createInputPinAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.GeneralOrdering General Ordering}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.GeneralOrdering + * @generated + */ + public Adapter createGeneralOrderingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.OccurrenceSpecification Occurrence Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.OccurrenceSpecification + * @generated + */ + public Adapter createOccurrenceSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InteractionOperand Interaction Operand}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InteractionOperand + * @generated + */ + public Adapter createInteractionOperandAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InteractionConstraint Interaction Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InteractionConstraint + * @generated + */ + public Adapter createInteractionConstraintAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExecutionSpecification Execution Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExecutionSpecification + * @generated + */ + public Adapter createExecutionSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExecutionOccurrenceSpecification Execution Occurrence Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExecutionOccurrenceSpecification + * @generated + */ + public Adapter createExecutionOccurrenceSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExecutionEvent Execution Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExecutionEvent + * @generated + */ + public Adapter createExecutionEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StateInvariant State Invariant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StateInvariant + * @generated + */ + public Adapter createStateInvariantAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActionExecutionSpecification Action Execution Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActionExecutionSpecification + * @generated + */ + public Adapter createActionExecutionSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.BehaviorExecutionSpecification Behavior Execution Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.BehaviorExecutionSpecification + * @generated + */ + public Adapter createBehaviorExecutionSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CreationEvent Creation Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CreationEvent + * @generated + */ + public Adapter createCreationEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DestructionEvent Destruction Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DestructionEvent + * @generated + */ + public Adapter createDestructionEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.SendOperationEvent Send Operation Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.SendOperationEvent + * @generated + */ + public Adapter createSendOperationEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.MessageEvent Message Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.MessageEvent + * @generated + */ + public Adapter createMessageEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.SendSignalEvent Send Signal Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.SendSignalEvent + * @generated + */ + public Adapter createSendSignalEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.MessageOccurrenceSpecification Message Occurrence Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.MessageOccurrenceSpecification + * @generated + */ + public Adapter createMessageOccurrenceSpecificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CombinedFragment Combined Fragment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CombinedFragment + * @generated + */ + public Adapter createCombinedFragmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Continuation Continuation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Continuation + * @generated + */ + public Adapter createContinuationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ConsiderIgnoreFragment Consider Ignore Fragment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ConsiderIgnoreFragment + * @generated + */ + public Adapter createConsiderIgnoreFragmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CallEvent Call Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CallEvent + * @generated + */ + public Adapter createCallEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ChangeEvent Change Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ChangeEvent + * @generated + */ + public Adapter createChangeEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.SignalEvent Signal Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.SignalEvent + * @generated + */ + public Adapter createSignalEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.AnyReceiveEvent Any Receive Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.AnyReceiveEvent + * @generated + */ + public Adapter createAnyReceiveEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CreateObjectAction Create Object Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CreateObjectAction + * @generated + */ + public Adapter createCreateObjectActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DestroyObjectAction Destroy Object Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DestroyObjectAction + * @generated + */ + public Adapter createDestroyObjectActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TestIdentityAction Test Identity Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TestIdentityAction + * @generated + */ + public Adapter createTestIdentityActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadSelfAction Read Self Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadSelfAction + * @generated + */ + public Adapter createReadSelfActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StructuralFeatureAction Structural Feature Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StructuralFeatureAction + * @generated + */ + public Adapter createStructuralFeatureActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadStructuralFeatureAction Read Structural Feature Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadStructuralFeatureAction + * @generated + */ + public Adapter createReadStructuralFeatureActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.WriteStructuralFeatureAction Write Structural Feature Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.WriteStructuralFeatureAction + * @generated + */ + public Adapter createWriteStructuralFeatureActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ClearStructuralFeatureAction Clear Structural Feature Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ClearStructuralFeatureAction + * @generated + */ + public Adapter createClearStructuralFeatureActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction Remove Structural Feature Value Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction + * @generated + */ + public Adapter createRemoveStructuralFeatureValueActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.AddStructuralFeatureValueAction Add Structural Feature Value Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.AddStructuralFeatureValueAction + * @generated + */ + public Adapter createAddStructuralFeatureValueActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LinkAction Link Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LinkAction + * @generated + */ + public Adapter createLinkActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LinkEndData Link End Data}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LinkEndData + * @generated + */ + public Adapter createLinkEndDataAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.QualifierValue Qualifier Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.QualifierValue + * @generated + */ + public Adapter createQualifierValueAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadLinkAction Read Link Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadLinkAction + * @generated + */ + public Adapter createReadLinkActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LinkEndCreationData Link End Creation Data}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LinkEndCreationData + * @generated + */ + public Adapter createLinkEndCreationDataAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CreateLinkAction Create Link Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CreateLinkAction + * @generated + */ + public Adapter createCreateLinkActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.WriteLinkAction Write Link Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.WriteLinkAction + * @generated + */ + public Adapter createWriteLinkActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DestroyLinkAction Destroy Link Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DestroyLinkAction + * @generated + */ + public Adapter createDestroyLinkActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LinkEndDestructionData Link End Destruction Data}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LinkEndDestructionData + * @generated + */ + public Adapter createLinkEndDestructionDataAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ClearAssociationAction Clear Association Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ClearAssociationAction + * @generated + */ + public Adapter createClearAssociationActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.BroadcastSignalAction Broadcast Signal Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.BroadcastSignalAction + * @generated + */ + public Adapter createBroadcastSignalActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InvocationAction Invocation Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InvocationAction + * @generated + */ + public Adapter createInvocationActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.SendObjectAction Send Object Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.SendObjectAction + * @generated + */ + public Adapter createSendObjectActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ValueSpecificationAction Value Specification Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ValueSpecificationAction + * @generated + */ + public Adapter createValueSpecificationActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TimeExpression Time Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TimeExpression + * @generated + */ + public Adapter createTimeExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Duration Duration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Duration + * @generated + */ + public Adapter createDurationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TimeObservationAction Time Observation Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TimeObservationAction + * @generated + */ + public Adapter createTimeObservationActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ValuePin Value Pin}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ValuePin + * @generated + */ + public Adapter createValuePinAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DurationInterval Duration Interval}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DurationInterval + * @generated + */ + public Adapter createDurationIntervalAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Interval Interval}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Interval + * @generated + */ + public Adapter createIntervalAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TimeConstraint Time Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TimeConstraint + * @generated + */ + public Adapter createTimeConstraintAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.IntervalConstraint Interval Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.IntervalConstraint + * @generated + */ + public Adapter createIntervalConstraintAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TimeInterval Time Interval}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TimeInterval + * @generated + */ + public Adapter createTimeIntervalAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DurationObservationAction Duration Observation Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DurationObservationAction + * @generated + */ + public Adapter createDurationObservationActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DurationConstraint Duration Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DurationConstraint + * @generated + */ + public Adapter createDurationConstraintAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.OpaqueAction Opaque Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.OpaqueAction + * @generated + */ + public Adapter createOpaqueActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CallAction Call Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CallAction + * @generated + */ + public Adapter createCallActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.SendSignalAction Send Signal Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.SendSignalAction + * @generated + */ + public Adapter createSendSignalActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CallOperationAction Call Operation Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CallOperationAction + * @generated + */ + public Adapter createCallOperationActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CallBehaviorAction Call Behavior Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CallBehaviorAction + * @generated + */ + public Adapter createCallBehaviorActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InformationItem Information Item}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InformationItem + * @generated + */ + public Adapter createInformationItemAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InformationFlow Information Flow}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InformationFlow + * @generated + */ + public Adapter createInformationFlowAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Model Model}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Model + * @generated + */ + public Adapter createModelAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.VariableAction Variable Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.VariableAction + * @generated + */ + public Adapter createVariableActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadVariableAction Read Variable Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadVariableAction + * @generated + */ + public Adapter createReadVariableActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.WriteVariableAction Write Variable Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.WriteVariableAction + * @generated + */ + public Adapter createWriteVariableActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ClearVariableAction Clear Variable Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ClearVariableAction + * @generated + */ + public Adapter createClearVariableActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.AddVariableValueAction Add Variable Value Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.AddVariableValueAction + * @generated + */ + public Adapter createAddVariableValueActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.RemoveVariableValueAction Remove Variable Value Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.RemoveVariableValueAction + * @generated + */ + public Adapter createRemoveVariableValueActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.RaiseExceptionAction Raise Exception Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.RaiseExceptionAction + * @generated + */ + public Adapter createRaiseExceptionActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActionInputPin Action Input Pin}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActionInputPin + * @generated + */ + public Adapter createActionInputPinAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadExtentAction Read Extent Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadExtentAction + * @generated + */ + public Adapter createReadExtentActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReclassifyObjectAction Reclassify Object Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReclassifyObjectAction + * @generated + */ + public Adapter createReclassifyObjectActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadIsClassifiedObjectAction Read Is Classified Object Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadIsClassifiedObjectAction + * @generated + */ + public Adapter createReadIsClassifiedObjectActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.StartClassifierBehaviorAction Start Classifier Behavior Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.StartClassifierBehaviorAction + * @generated + */ + public Adapter createStartClassifierBehaviorActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadLinkObjectEndAction Read Link Object End Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndAction + * @generated + */ + public Adapter createReadLinkObjectEndActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction Read Link Object End Qualifier Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction + * @generated + */ + public Adapter createReadLinkObjectEndQualifierActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CreateLinkObjectAction Create Link Object Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CreateLinkObjectAction + * @generated + */ + public Adapter createCreateLinkObjectActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.AcceptEventAction Accept Event Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.AcceptEventAction + * @generated + */ + public Adapter createAcceptEventActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.AcceptCallAction Accept Call Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.AcceptCallAction + * @generated + */ + public Adapter createAcceptCallActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ReplyAction Reply Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ReplyAction + * @generated + */ + public Adapter createReplyActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.UnmarshallAction Unmarshall Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.UnmarshallAction + * @generated + */ + public Adapter createUnmarshallActionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ControlNode Control Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ControlNode + * @generated + */ + public Adapter createControlNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ControlFlow Control Flow}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ControlFlow + * @generated + */ + public Adapter createControlFlowAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.InitialNode Initial Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.InitialNode + * @generated + */ + public Adapter createInitialNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActivityParameterNode Activity Parameter Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActivityParameterNode + * @generated + */ + public Adapter createActivityParameterNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ForkNode Fork Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ForkNode + * @generated + */ + public Adapter createForkNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.FlowFinalNode Flow Final Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.FlowFinalNode + * @generated + */ + public Adapter createFlowFinalNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.FinalNode Final Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.FinalNode + * @generated + */ + public Adapter createFinalNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CentralBufferNode Central Buffer Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CentralBufferNode + * @generated + */ + public Adapter createCentralBufferNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.MergeNode Merge Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.MergeNode + * @generated + */ + public Adapter createMergeNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DecisionNode Decision Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DecisionNode + * @generated + */ + public Adapter createDecisionNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ActivityFinalNode Activity Final Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ActivityFinalNode + * @generated + */ + public Adapter createActivityFinalNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.JoinNode Join Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.JoinNode + * @generated + */ + public Adapter createJoinNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.DataStoreNode Data Store Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.DataStoreNode + * @generated + */ + public Adapter createDataStoreNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ObjectFlow Object Flow}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ObjectFlow + * @generated + */ + public Adapter createObjectFlowAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.SequenceNode Sequence Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.SequenceNode + * @generated + */ + public Adapter createSequenceNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ConditionalNode Conditional Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ConditionalNode + * @generated + */ + public Adapter createConditionalNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Clause Clause}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Clause + * @generated + */ + public Adapter createClauseAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.LoopNode Loop Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.LoopNode + * @generated + */ + public Adapter createLoopNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExpansionNode Expansion Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExpansionNode + * @generated + */ + public Adapter createExpansionNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExpansionRegion Expansion Region}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExpansionRegion + * @generated + */ + public Adapter createExpansionRegionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ComponentRealization Component Realization}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ComponentRealization + * @generated + */ + public Adapter createComponentRealizationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Component Component}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Component + * @generated + */ + public Adapter createComponentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Node Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Node + * @generated + */ + public Adapter createNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.Device Device}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.Device + * @generated + */ + public Adapter createDeviceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ExecutionEnvironment Execution Environment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ExecutionEnvironment + * @generated + */ + public Adapter createExecutionEnvironmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.CommunicationPath Communication Path}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.CommunicationPath + * @generated + */ + public Adapter createCommunicationPathAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.FinalState Final State}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.FinalState + * @generated + */ + public Adapter createFinalStateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.TimeEvent Time Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.TimeEvent + * @generated + */ + public Adapter createTimeEventAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.ProtocolTransition Protocol Transition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.ProtocolTransition + * @generated + */ + public Adapter createProtocolTransitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.AssociationClass Association Class}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.uml2.uml.AssociationClass + * @generated + */ + public Adapter createAssociationClassAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement EModel Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.emf.ecore.EModelElement + * @generated + */ + public Adapter createEModelElementAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //UMLAdapterFactory diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLResource.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLResource.java new file mode 100644 index 00000000..4e4f9c22 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLResource.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLResource.java,v 1.1 2005/11/14 22:26:08 khussey Exp $ + */ +package org.eclipse.uml2.uml.util; + +import org.eclipse.emf.ecore.resource.Resource; + +import org.eclipse.emf.ecore.xmi.XMIResource; +import org.eclipse.uml2.uml.internal.util.UMLResourceFactoryImpl; + +/** + * + * The resource associated with the 'uml' package. + * + * @generated + */ +public interface UMLResource + extends XMIResource { + + /** + * + * The factory for 'uml' resources. + * + * @generated + */ + public interface Factory + extends Resource.Factory { + + /** + * + * + * @generated + */ + public static final Factory INSTANCE = new UMLResourceFactoryImpl(); + + } + + /** + * + * The file extension for 'uml' resources. + * + * @generated + */ + public static final String FILE_EXTENSION = "uml"; //$NON-NLS-1$ + + /** + * + * The default encoding for 'uml' resources. + * + * @generated + */ + public static final String DEFAULT_ENCODING = "UTF-8"; //$NON-NLS-1$ + +} //UMLResource \ No newline at end of file diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java new file mode 100644 index 00000000..6cddcd5d --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLSwitch.java @@ -0,0 +1,9055 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLSwitch.java,v 1.1 2005/11/14 22:26:08 khussey Exp $ + */ +package org.eclipse.uml2.uml.util; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EModelElement; +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.uml2.uml.Abstraction; +import org.eclipse.uml2.uml.AcceptCallAction; +import org.eclipse.uml2.uml.AcceptEventAction; +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.ActionExecutionSpecification; +import org.eclipse.uml2.uml.ActionInputPin; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityFinalNode; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityParameterNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; +import org.eclipse.uml2.uml.AddVariableValueAction; +import org.eclipse.uml2.uml.AnyReceiveEvent; +import org.eclipse.uml2.uml.Artifact; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.AssociationClass; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehaviorExecutionSpecification; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.BroadcastSignalAction; +import org.eclipse.uml2.uml.CallAction; +import org.eclipse.uml2.uml.CallBehaviorAction; +import org.eclipse.uml2.uml.CallEvent; +import org.eclipse.uml2.uml.CallOperationAction; +import org.eclipse.uml2.uml.CentralBufferNode; +import org.eclipse.uml2.uml.ChangeEvent; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ClassifierTemplateParameter; +import org.eclipse.uml2.uml.Clause; +import org.eclipse.uml2.uml.ClearAssociationAction; +import org.eclipse.uml2.uml.ClearStructuralFeatureAction; +import org.eclipse.uml2.uml.ClearVariableAction; +import org.eclipse.uml2.uml.Collaboration; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.CombinedFragment; +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.CommunicationPath; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.ComponentRealization; +import org.eclipse.uml2.uml.ConditionalNode; +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ConnectionPointReference; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.ConsiderIgnoreFragment; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Continuation; +import org.eclipse.uml2.uml.ControlFlow; +import org.eclipse.uml2.uml.ControlNode; +import org.eclipse.uml2.uml.CreateLinkAction; +import org.eclipse.uml2.uml.CreateLinkObjectAction; +import org.eclipse.uml2.uml.CreateObjectAction; +import org.eclipse.uml2.uml.CreationEvent; +import org.eclipse.uml2.uml.DataStoreNode; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.DecisionNode; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.DeployedArtifact; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentSpecification; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.DestroyLinkAction; +import org.eclipse.uml2.uml.DestroyObjectAction; +import org.eclipse.uml2.uml.DestructionEvent; +import org.eclipse.uml2.uml.Device; +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.DurationConstraint; +import org.eclipse.uml2.uml.DurationInterval; +import org.eclipse.uml2.uml.DurationObservationAction; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.EncapsulatedClassifier; +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.ExceptionHandler; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.ExecutionEnvironment; +import org.eclipse.uml2.uml.ExecutionEvent; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.ExecutionSpecification; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; +import org.eclipse.uml2.uml.Expression; +import org.eclipse.uml2.uml.Extend; +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.ExtensionEnd; +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.FinalNode; +import org.eclipse.uml2.uml.FinalState; +import org.eclipse.uml2.uml.FlowFinalNode; +import org.eclipse.uml2.uml.ForkNode; +import org.eclipse.uml2.uml.FunctionBehavior; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.Image; +import org.eclipse.uml2.uml.Include; +import org.eclipse.uml2.uml.InformationFlow; +import org.eclipse.uml2.uml.InformationItem; +import org.eclipse.uml2.uml.InitialNode; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.InstanceValue; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionConstraint; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionUse; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.Interval; +import org.eclipse.uml2.uml.IntervalConstraint; +import org.eclipse.uml2.uml.InvocationAction; +import org.eclipse.uml2.uml.JoinNode; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.LinkAction; +import org.eclipse.uml2.uml.LinkEndCreationData; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.LinkEndDestructionData; +import org.eclipse.uml2.uml.LiteralBoolean; +import org.eclipse.uml2.uml.LiteralInteger; +import org.eclipse.uml2.uml.LiteralNull; +import org.eclipse.uml2.uml.LiteralSpecification; +import org.eclipse.uml2.uml.LiteralString; +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; +import org.eclipse.uml2.uml.LoopNode; +import org.eclipse.uml2.uml.Manifestation; +import org.eclipse.uml2.uml.MergeNode; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageEnd; +import org.eclipse.uml2.uml.MessageEvent; +import org.eclipse.uml2.uml.MessageOccurrenceSpecification; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Node; +import org.eclipse.uml2.uml.ObjectFlow; +import org.eclipse.uml2.uml.ObjectNode; +import org.eclipse.uml2.uml.OccurrenceSpecification; +import org.eclipse.uml2.uml.OpaqueAction; +import org.eclipse.uml2.uml.OpaqueBehavior; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.PartDecomposition; +import org.eclipse.uml2.uml.Pin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.PrimitiveType; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ProtocolConformance; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.ProtocolTransition; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.QualifierValue; +import org.eclipse.uml2.uml.RaiseExceptionAction; +import org.eclipse.uml2.uml.ReadExtentAction; +import org.eclipse.uml2.uml.ReadIsClassifiedObjectAction; +import org.eclipse.uml2.uml.ReadLinkAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction; +import org.eclipse.uml2.uml.ReadSelfAction; +import org.eclipse.uml2.uml.ReadStructuralFeatureAction; +import org.eclipse.uml2.uml.ReadVariableAction; +import org.eclipse.uml2.uml.Realization; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.ReclassifyObjectAction; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction; +import org.eclipse.uml2.uml.RemoveVariableValueAction; +import org.eclipse.uml2.uml.ReplyAction; +import org.eclipse.uml2.uml.SendObjectAction; +import org.eclipse.uml2.uml.SendOperationEvent; +import org.eclipse.uml2.uml.SendSignalAction; +import org.eclipse.uml2.uml.SendSignalEvent; +import org.eclipse.uml2.uml.SequenceNode; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.SignalEvent; +import org.eclipse.uml2.uml.Slot; +import org.eclipse.uml2.uml.StartClassifierBehaviorAction; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateInvariant; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuralFeatureAction; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.StructuredClassifier; +import org.eclipse.uml2.uml.Substitution; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateParameterSubstitution; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.TestIdentityAction; +import org.eclipse.uml2.uml.TimeConstraint; +import org.eclipse.uml2.uml.TimeEvent; +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.TimeInterval; +import org.eclipse.uml2.uml.TimeObservationAction; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UnmarshallAction; +import org.eclipse.uml2.uml.Usage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.ValuePin; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.ValueSpecificationAction; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VariableAction; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.WriteLinkAction; +import org.eclipse.uml2.uml.WriteStructuralFeatureAction; +import org.eclipse.uml2.uml.WriteVariableAction; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see org.eclipse.uml2.uml.UMLPackage + * @generated + */ +public class UMLSwitch { + + /** + * The cached model package + * + * + * @generated + */ + protected static UMLPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public UMLSwitch() { + if (modelPackage == null) { + modelPackage = UMLPackage.eINSTANCE; + } + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + public Object doSwitch(EObject theEObject) { + return doSwitch(theEObject.eClass(), theEObject); + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + protected Object doSwitch(EClass theEClass, EObject theEObject) { + if (theEClass.eContainer() == modelPackage) { + return doSwitch(theEClass.getClassifierID(), theEObject); + } else { + List eSuperTypes = theEClass.getESuperTypes(); + return eSuperTypes.isEmpty() + ? defaultCase(theEObject) + : doSwitch((EClass) eSuperTypes.get(0), theEObject); + } + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + protected Object doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case UMLPackage.COMMENT : { + Comment comment = (Comment) theEObject; + Object result = caseComment(comment); + if (result == null) + result = caseElement(comment); + if (result == null) + result = caseEModelElement(comment); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ELEMENT : { + Element element = (Element) theEObject; + Object result = caseElement(element); + if (result == null) + result = caseEModelElement(element); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DIRECTED_RELATIONSHIP : { + DirectedRelationship directedRelationship = (DirectedRelationship) theEObject; + Object result = caseDirectedRelationship(directedRelationship); + if (result == null) + result = caseRelationship(directedRelationship); + if (result == null) + result = caseElement(directedRelationship); + if (result == null) + result = caseEModelElement(directedRelationship); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.RELATIONSHIP : { + Relationship relationship = (Relationship) theEObject; + Object result = caseRelationship(relationship); + if (result == null) + result = caseElement(relationship); + if (result == null) + result = caseEModelElement(relationship); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LITERAL_SPECIFICATION : { + LiteralSpecification literalSpecification = (LiteralSpecification) theEObject; + Object result = caseLiteralSpecification(literalSpecification); + if (result == null) + result = caseValueSpecification(literalSpecification); + if (result == null) + result = casePackageableElement(literalSpecification); + if (result == null) + result = caseTypedElement(literalSpecification); + if (result == null) + result = caseNamedElement(literalSpecification); + if (result == null) + result = caseParameterableElement(literalSpecification); + if (result == null) + result = caseElement(literalSpecification); + if (result == null) + result = caseEModelElement(literalSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.VALUE_SPECIFICATION : { + ValueSpecification valueSpecification = (ValueSpecification) theEObject; + Object result = caseValueSpecification(valueSpecification); + if (result == null) + result = casePackageableElement(valueSpecification); + if (result == null) + result = caseTypedElement(valueSpecification); + if (result == null) + result = caseNamedElement(valueSpecification); + if (result == null) + result = caseParameterableElement(valueSpecification); + if (result == null) + result = caseElement(valueSpecification); + if (result == null) + result = caseEModelElement(valueSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TYPED_ELEMENT : { + TypedElement typedElement = (TypedElement) theEObject; + Object result = caseTypedElement(typedElement); + if (result == null) + result = caseNamedElement(typedElement); + if (result == null) + result = caseElement(typedElement); + if (result == null) + result = caseEModelElement(typedElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.NAMED_ELEMENT : { + NamedElement namedElement = (NamedElement) theEObject; + Object result = caseNamedElement(namedElement); + if (result == null) + result = caseElement(namedElement); + if (result == null) + result = caseEModelElement(namedElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DEPENDENCY : { + Dependency dependency = (Dependency) theEObject; + Object result = caseDependency(dependency); + if (result == null) + result = casePackageableElement(dependency); + if (result == null) + result = caseDirectedRelationship(dependency); + if (result == null) + result = caseNamedElement(dependency); + if (result == null) + result = caseParameterableElement(dependency); + if (result == null) + result = caseRelationship(dependency); + if (result == null) + result = caseElement(dependency); + if (result == null) + result = caseEModelElement(dependency); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PACKAGEABLE_ELEMENT : { + PackageableElement packageableElement = (PackageableElement) theEObject; + Object result = casePackageableElement(packageableElement); + if (result == null) + result = caseNamedElement(packageableElement); + if (result == null) + result = caseParameterableElement(packageableElement); + if (result == null) + result = caseElement(packageableElement); + if (result == null) + result = caseEModelElement(packageableElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PARAMETERABLE_ELEMENT : { + ParameterableElement parameterableElement = (ParameterableElement) theEObject; + Object result = caseParameterableElement(parameterableElement); + if (result == null) + result = caseElement(parameterableElement); + if (result == null) + result = caseEModelElement(parameterableElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TEMPLATE_PARAMETER : { + TemplateParameter templateParameter = (TemplateParameter) theEObject; + Object result = caseTemplateParameter(templateParameter); + if (result == null) + result = caseElement(templateParameter); + if (result == null) + result = caseEModelElement(templateParameter); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TEMPLATE_SIGNATURE : { + TemplateSignature templateSignature = (TemplateSignature) theEObject; + Object result = caseTemplateSignature(templateSignature); + if (result == null) + result = caseElement(templateSignature); + if (result == null) + result = caseEModelElement(templateSignature); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TEMPLATEABLE_ELEMENT : { + TemplateableElement templateableElement = (TemplateableElement) theEObject; + Object result = caseTemplateableElement(templateableElement); + if (result == null) + result = caseElement(templateableElement); + if (result == null) + result = caseEModelElement(templateableElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TEMPLATE_BINDING : { + TemplateBinding templateBinding = (TemplateBinding) theEObject; + Object result = caseTemplateBinding(templateBinding); + if (result == null) + result = caseDirectedRelationship(templateBinding); + if (result == null) + result = caseRelationship(templateBinding); + if (result == null) + result = caseElement(templateBinding); + if (result == null) + result = caseEModelElement(templateBinding); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION : { + TemplateParameterSubstitution templateParameterSubstitution = (TemplateParameterSubstitution) theEObject; + Object result = caseTemplateParameterSubstitution(templateParameterSubstitution); + if (result == null) + result = caseElement(templateParameterSubstitution); + if (result == null) + result = caseEModelElement(templateParameterSubstitution); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.NAMESPACE : { + Namespace namespace = (Namespace) theEObject; + Object result = caseNamespace(namespace); + if (result == null) + result = caseNamedElement(namespace); + if (result == null) + result = caseElement(namespace); + if (result == null) + result = caseEModelElement(namespace); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ELEMENT_IMPORT : { + ElementImport elementImport = (ElementImport) theEObject; + Object result = caseElementImport(elementImport); + if (result == null) + result = caseDirectedRelationship(elementImport); + if (result == null) + result = caseRelationship(elementImport); + if (result == null) + result = caseElement(elementImport); + if (result == null) + result = caseEModelElement(elementImport); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PACKAGE_IMPORT : { + PackageImport packageImport = (PackageImport) theEObject; + Object result = casePackageImport(packageImport); + if (result == null) + result = caseDirectedRelationship(packageImport); + if (result == null) + result = caseRelationship(packageImport); + if (result == null) + result = caseElement(packageImport); + if (result == null) + result = caseEModelElement(packageImport); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PACKAGE : { + org.eclipse.uml2.uml.Package package_ = (org.eclipse.uml2.uml.Package) theEObject; + Object result = casePackage(package_); + if (result == null) + result = caseNamespace(package_); + if (result == null) + result = casePackageableElement(package_); + if (result == null) + result = caseTemplateableElement(package_); + if (result == null) + result = caseNamedElement(package_); + if (result == null) + result = caseParameterableElement(package_); + if (result == null) + result = caseElement(package_); + if (result == null) + result = caseEModelElement(package_); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PACKAGE_MERGE : { + PackageMerge packageMerge = (PackageMerge) theEObject; + Object result = casePackageMerge(packageMerge); + if (result == null) + result = caseDirectedRelationship(packageMerge); + if (result == null) + result = caseRelationship(packageMerge); + if (result == null) + result = caseElement(packageMerge); + if (result == null) + result = caseEModelElement(packageMerge); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TYPE : { + Type type = (Type) theEObject; + Object result = caseType(type); + if (result == null) + result = casePackageableElement(type); + if (result == null) + result = caseNamedElement(type); + if (result == null) + result = caseParameterableElement(type); + if (result == null) + result = caseElement(type); + if (result == null) + result = caseEModelElement(type); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PROFILE_APPLICATION : { + ProfileApplication profileApplication = (ProfileApplication) theEObject; + Object result = caseProfileApplication(profileApplication); + if (result == null) + result = casePackageImport(profileApplication); + if (result == null) + result = caseDirectedRelationship(profileApplication); + if (result == null) + result = caseRelationship(profileApplication); + if (result == null) + result = caseElement(profileApplication); + if (result == null) + result = caseEModelElement(profileApplication); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PROFILE : { + Profile profile = (Profile) theEObject; + Object result = caseProfile(profile); + if (result == null) + result = casePackage(profile); + if (result == null) + result = caseNamespace(profile); + if (result == null) + result = casePackageableElement(profile); + if (result == null) + result = caseTemplateableElement(profile); + if (result == null) + result = caseNamedElement(profile); + if (result == null) + result = caseParameterableElement(profile); + if (result == null) + result = caseElement(profile); + if (result == null) + result = caseEModelElement(profile); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STEREOTYPE : { + Stereotype stereotype = (Stereotype) theEObject; + Object result = caseStereotype(stereotype); + if (result == null) + result = caseClass(stereotype); + if (result == null) + result = caseEncapsulatedClassifier(stereotype); + if (result == null) + result = caseBehavioredClassifier(stereotype); + if (result == null) + result = caseStructuredClassifier(stereotype); + if (result == null) + result = caseClassifier(stereotype); + if (result == null) + result = caseNamespace(stereotype); + if (result == null) + result = caseRedefinableElement(stereotype); + if (result == null) + result = caseType(stereotype); + if (result == null) + result = caseTemplateableElement(stereotype); + if (result == null) + result = caseNamedElement(stereotype); + if (result == null) + result = casePackageableElement(stereotype); + if (result == null) + result = caseElement(stereotype); + if (result == null) + result = caseParameterableElement(stereotype); + if (result == null) + result = caseEModelElement(stereotype); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLASS : { + org.eclipse.uml2.uml.Class class_ = (org.eclipse.uml2.uml.Class) theEObject; + Object result = caseClass(class_); + if (result == null) + result = caseEncapsulatedClassifier(class_); + if (result == null) + result = caseBehavioredClassifier(class_); + if (result == null) + result = caseStructuredClassifier(class_); + if (result == null) + result = caseClassifier(class_); + if (result == null) + result = caseNamespace(class_); + if (result == null) + result = caseRedefinableElement(class_); + if (result == null) + result = caseType(class_); + if (result == null) + result = caseTemplateableElement(class_); + if (result == null) + result = caseNamedElement(class_); + if (result == null) + result = casePackageableElement(class_); + if (result == null) + result = caseElement(class_); + if (result == null) + result = caseParameterableElement(class_); + if (result == null) + result = caseEModelElement(class_); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.BEHAVIORED_CLASSIFIER : { + BehavioredClassifier behavioredClassifier = (BehavioredClassifier) theEObject; + Object result = caseBehavioredClassifier(behavioredClassifier); + if (result == null) + result = caseClassifier(behavioredClassifier); + if (result == null) + result = caseNamespace(behavioredClassifier); + if (result == null) + result = caseRedefinableElement(behavioredClassifier); + if (result == null) + result = caseType(behavioredClassifier); + if (result == null) + result = caseTemplateableElement(behavioredClassifier); + if (result == null) + result = caseNamedElement(behavioredClassifier); + if (result == null) + result = casePackageableElement(behavioredClassifier); + if (result == null) + result = caseElement(behavioredClassifier); + if (result == null) + result = caseParameterableElement(behavioredClassifier); + if (result == null) + result = caseEModelElement(behavioredClassifier); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLASSIFIER : { + Classifier classifier = (Classifier) theEObject; + Object result = caseClassifier(classifier); + if (result == null) + result = caseNamespace(classifier); + if (result == null) + result = caseRedefinableElement(classifier); + if (result == null) + result = caseType(classifier); + if (result == null) + result = caseTemplateableElement(classifier); + if (result == null) + result = caseNamedElement(classifier); + if (result == null) + result = casePackageableElement(classifier); + if (result == null) + result = caseElement(classifier); + if (result == null) + result = caseParameterableElement(classifier); + if (result == null) + result = caseEModelElement(classifier); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REDEFINABLE_ELEMENT : { + RedefinableElement redefinableElement = (RedefinableElement) theEObject; + Object result = caseRedefinableElement(redefinableElement); + if (result == null) + result = caseNamedElement(redefinableElement); + if (result == null) + result = caseElement(redefinableElement); + if (result == null) + result = caseEModelElement(redefinableElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.GENERALIZATION : { + Generalization generalization = (Generalization) theEObject; + Object result = caseGeneralization(generalization); + if (result == null) + result = caseDirectedRelationship(generalization); + if (result == null) + result = caseRelationship(generalization); + if (result == null) + result = caseElement(generalization); + if (result == null) + result = caseEModelElement(generalization); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.GENERALIZATION_SET : { + GeneralizationSet generalizationSet = (GeneralizationSet) theEObject; + Object result = caseGeneralizationSet(generalizationSet); + if (result == null) + result = casePackageableElement(generalizationSet); + if (result == null) + result = caseNamedElement(generalizationSet); + if (result == null) + result = caseParameterableElement(generalizationSet); + if (result == null) + result = caseElement(generalizationSet); + if (result == null) + result = caseEModelElement(generalizationSet); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.FEATURE : { + Feature feature = (Feature) theEObject; + Object result = caseFeature(feature); + if (result == null) + result = caseRedefinableElement(feature); + if (result == null) + result = caseNamedElement(feature); + if (result == null) + result = caseElement(feature); + if (result == null) + result = caseEModelElement(feature); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.USE_CASE : { + UseCase useCase = (UseCase) theEObject; + Object result = caseUseCase(useCase); + if (result == null) + result = caseBehavioredClassifier(useCase); + if (result == null) + result = caseClassifier(useCase); + if (result == null) + result = caseNamespace(useCase); + if (result == null) + result = caseRedefinableElement(useCase); + if (result == null) + result = caseType(useCase); + if (result == null) + result = caseTemplateableElement(useCase); + if (result == null) + result = caseNamedElement(useCase); + if (result == null) + result = casePackageableElement(useCase); + if (result == null) + result = caseElement(useCase); + if (result == null) + result = caseParameterableElement(useCase); + if (result == null) + result = caseEModelElement(useCase); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INCLUDE : { + Include include = (Include) theEObject; + Object result = caseInclude(include); + if (result == null) + result = caseNamedElement(include); + if (result == null) + result = caseDirectedRelationship(include); + if (result == null) + result = caseElement(include); + if (result == null) + result = caseRelationship(include); + if (result == null) + result = caseEModelElement(include); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXTEND : { + Extend extend = (Extend) theEObject; + Object result = caseExtend(extend); + if (result == null) + result = caseNamedElement(extend); + if (result == null) + result = caseDirectedRelationship(extend); + if (result == null) + result = caseElement(extend); + if (result == null) + result = caseRelationship(extend); + if (result == null) + result = caseEModelElement(extend); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONSTRAINT : { + Constraint constraint = (Constraint) theEObject; + Object result = caseConstraint(constraint); + if (result == null) + result = casePackageableElement(constraint); + if (result == null) + result = caseNamedElement(constraint); + if (result == null) + result = caseParameterableElement(constraint); + if (result == null) + result = caseElement(constraint); + if (result == null) + result = caseEModelElement(constraint); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXTENSION_POINT : { + ExtensionPoint extensionPoint = (ExtensionPoint) theEObject; + Object result = caseExtensionPoint(extensionPoint); + if (result == null) + result = caseRedefinableElement(extensionPoint); + if (result == null) + result = caseNamedElement(extensionPoint); + if (result == null) + result = caseElement(extensionPoint); + if (result == null) + result = caseEModelElement(extensionPoint); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SUBSTITUTION : { + Substitution substitution = (Substitution) theEObject; + Object result = caseSubstitution(substitution); + if (result == null) + result = caseRealization(substitution); + if (result == null) + result = caseAbstraction(substitution); + if (result == null) + result = caseDependency(substitution); + if (result == null) + result = casePackageableElement(substitution); + if (result == null) + result = caseDirectedRelationship(substitution); + if (result == null) + result = caseNamedElement(substitution); + if (result == null) + result = caseParameterableElement(substitution); + if (result == null) + result = caseRelationship(substitution); + if (result == null) + result = caseElement(substitution); + if (result == null) + result = caseEModelElement(substitution); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REALIZATION : { + Realization realization = (Realization) theEObject; + Object result = caseRealization(realization); + if (result == null) + result = caseAbstraction(realization); + if (result == null) + result = caseDependency(realization); + if (result == null) + result = casePackageableElement(realization); + if (result == null) + result = caseDirectedRelationship(realization); + if (result == null) + result = caseNamedElement(realization); + if (result == null) + result = caseParameterableElement(realization); + if (result == null) + result = caseRelationship(realization); + if (result == null) + result = caseElement(realization); + if (result == null) + result = caseEModelElement(realization); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ABSTRACTION : { + Abstraction abstraction = (Abstraction) theEObject; + Object result = caseAbstraction(abstraction); + if (result == null) + result = caseDependency(abstraction); + if (result == null) + result = casePackageableElement(abstraction); + if (result == null) + result = caseDirectedRelationship(abstraction); + if (result == null) + result = caseNamedElement(abstraction); + if (result == null) + result = caseParameterableElement(abstraction); + if (result == null) + result = caseRelationship(abstraction); + if (result == null) + result = caseElement(abstraction); + if (result == null) + result = caseEModelElement(abstraction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OPAQUE_EXPRESSION : { + OpaqueExpression opaqueExpression = (OpaqueExpression) theEObject; + Object result = caseOpaqueExpression(opaqueExpression); + if (result == null) + result = caseValueSpecification(opaqueExpression); + if (result == null) + result = casePackageableElement(opaqueExpression); + if (result == null) + result = caseTypedElement(opaqueExpression); + if (result == null) + result = caseNamedElement(opaqueExpression); + if (result == null) + result = caseParameterableElement(opaqueExpression); + if (result == null) + result = caseElement(opaqueExpression); + if (result == null) + result = caseEModelElement(opaqueExpression); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PARAMETER : { + Parameter parameter = (Parameter) theEObject; + Object result = caseParameter(parameter); + if (result == null) + result = caseConnectableElement(parameter); + if (result == null) + result = caseMultiplicityElement(parameter); + if (result == null) + result = caseTypedElement(parameter); + if (result == null) + result = caseParameterableElement(parameter); + if (result == null) + result = caseElement(parameter); + if (result == null) + result = caseNamedElement(parameter); + if (result == null) + result = caseEModelElement(parameter); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MULTIPLICITY_ELEMENT : { + MultiplicityElement multiplicityElement = (MultiplicityElement) theEObject; + Object result = caseMultiplicityElement(multiplicityElement); + if (result == null) + result = caseElement(multiplicityElement); + if (result == null) + result = caseEModelElement(multiplicityElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONNECTABLE_ELEMENT : { + ConnectableElement connectableElement = (ConnectableElement) theEObject; + Object result = caseConnectableElement(connectableElement); + if (result == null) + result = caseTypedElement(connectableElement); + if (result == null) + result = caseParameterableElement(connectableElement); + if (result == null) + result = caseNamedElement(connectableElement); + if (result == null) + result = caseElement(connectableElement); + if (result == null) + result = caseEModelElement(connectableElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONNECTOR_END : { + ConnectorEnd connectorEnd = (ConnectorEnd) theEObject; + Object result = caseConnectorEnd(connectorEnd); + if (result == null) + result = caseMultiplicityElement(connectorEnd); + if (result == null) + result = caseElement(connectorEnd); + if (result == null) + result = caseEModelElement(connectorEnd); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PROPERTY : { + Property property = (Property) theEObject; + Object result = caseProperty(property); + if (result == null) + result = caseStructuralFeature(property); + if (result == null) + result = caseConnectableElement(property); + if (result == null) + result = caseDeploymentTarget(property); + if (result == null) + result = caseTemplateableElement(property); + if (result == null) + result = caseFeature(property); + if (result == null) + result = caseTypedElement(property); + if (result == null) + result = caseMultiplicityElement(property); + if (result == null) + result = caseParameterableElement(property); + if (result == null) + result = caseNamedElement(property); + if (result == null) + result = caseElement(property); + if (result == null) + result = caseRedefinableElement(property); + if (result == null) + result = caseEModelElement(property); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DEPLOYMENT_TARGET : { + DeploymentTarget deploymentTarget = (DeploymentTarget) theEObject; + Object result = caseDeploymentTarget(deploymentTarget); + if (result == null) + result = caseNamedElement(deploymentTarget); + if (result == null) + result = caseElement(deploymentTarget); + if (result == null) + result = caseEModelElement(deploymentTarget); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DEPLOYMENT : { + Deployment deployment = (Deployment) theEObject; + Object result = caseDeployment(deployment); + if (result == null) + result = caseDependency(deployment); + if (result == null) + result = casePackageableElement(deployment); + if (result == null) + result = caseDirectedRelationship(deployment); + if (result == null) + result = caseNamedElement(deployment); + if (result == null) + result = caseParameterableElement(deployment); + if (result == null) + result = caseRelationship(deployment); + if (result == null) + result = caseElement(deployment); + if (result == null) + result = caseEModelElement(deployment); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DEPLOYED_ARTIFACT : { + DeployedArtifact deployedArtifact = (DeployedArtifact) theEObject; + Object result = caseDeployedArtifact(deployedArtifact); + if (result == null) + result = caseNamedElement(deployedArtifact); + if (result == null) + result = caseElement(deployedArtifact); + if (result == null) + result = caseEModelElement(deployedArtifact); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DEPLOYMENT_SPECIFICATION : { + DeploymentSpecification deploymentSpecification = (DeploymentSpecification) theEObject; + Object result = caseDeploymentSpecification(deploymentSpecification); + if (result == null) + result = caseArtifact(deploymentSpecification); + if (result == null) + result = caseClassifier(deploymentSpecification); + if (result == null) + result = caseDeployedArtifact(deploymentSpecification); + if (result == null) + result = caseNamespace(deploymentSpecification); + if (result == null) + result = caseRedefinableElement(deploymentSpecification); + if (result == null) + result = caseType(deploymentSpecification); + if (result == null) + result = caseTemplateableElement(deploymentSpecification); + if (result == null) + result = caseNamedElement(deploymentSpecification); + if (result == null) + result = casePackageableElement(deploymentSpecification); + if (result == null) + result = caseElement(deploymentSpecification); + if (result == null) + result = caseParameterableElement(deploymentSpecification); + if (result == null) + result = caseEModelElement(deploymentSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ARTIFACT : { + Artifact artifact = (Artifact) theEObject; + Object result = caseArtifact(artifact); + if (result == null) + result = caseClassifier(artifact); + if (result == null) + result = caseDeployedArtifact(artifact); + if (result == null) + result = caseNamespace(artifact); + if (result == null) + result = caseRedefinableElement(artifact); + if (result == null) + result = caseType(artifact); + if (result == null) + result = caseTemplateableElement(artifact); + if (result == null) + result = caseNamedElement(artifact); + if (result == null) + result = casePackageableElement(artifact); + if (result == null) + result = caseElement(artifact); + if (result == null) + result = caseParameterableElement(artifact); + if (result == null) + result = caseEModelElement(artifact); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MANIFESTATION : { + Manifestation manifestation = (Manifestation) theEObject; + Object result = caseManifestation(manifestation); + if (result == null) + result = caseAbstraction(manifestation); + if (result == null) + result = caseDependency(manifestation); + if (result == null) + result = casePackageableElement(manifestation); + if (result == null) + result = caseDirectedRelationship(manifestation); + if (result == null) + result = caseNamedElement(manifestation); + if (result == null) + result = caseParameterableElement(manifestation); + if (result == null) + result = caseRelationship(manifestation); + if (result == null) + result = caseElement(manifestation); + if (result == null) + result = caseEModelElement(manifestation); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OPERATION : { + Operation operation = (Operation) theEObject; + Object result = caseOperation(operation); + if (result == null) + result = caseBehavioralFeature(operation); + if (result == null) + result = caseParameterableElement(operation); + if (result == null) + result = caseTemplateableElement(operation); + if (result == null) + result = caseNamespace(operation); + if (result == null) + result = caseFeature(operation); + if (result == null) + result = caseElement(operation); + if (result == null) + result = caseNamedElement(operation); + if (result == null) + result = caseRedefinableElement(operation); + if (result == null) + result = caseEModelElement(operation); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.BEHAVIORAL_FEATURE : { + BehavioralFeature behavioralFeature = (BehavioralFeature) theEObject; + Object result = caseBehavioralFeature(behavioralFeature); + if (result == null) + result = caseNamespace(behavioralFeature); + if (result == null) + result = caseFeature(behavioralFeature); + if (result == null) + result = caseNamedElement(behavioralFeature); + if (result == null) + result = caseRedefinableElement(behavioralFeature); + if (result == null) + result = caseElement(behavioralFeature); + if (result == null) + result = caseEModelElement(behavioralFeature); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.BEHAVIOR : { + Behavior behavior = (Behavior) theEObject; + Object result = caseBehavior(behavior); + if (result == null) + result = caseClass(behavior); + if (result == null) + result = caseEncapsulatedClassifier(behavior); + if (result == null) + result = caseBehavioredClassifier(behavior); + if (result == null) + result = caseStructuredClassifier(behavior); + if (result == null) + result = caseClassifier(behavior); + if (result == null) + result = caseNamespace(behavior); + if (result == null) + result = caseRedefinableElement(behavior); + if (result == null) + result = caseType(behavior); + if (result == null) + result = caseTemplateableElement(behavior); + if (result == null) + result = caseNamedElement(behavior); + if (result == null) + result = casePackageableElement(behavior); + if (result == null) + result = caseElement(behavior); + if (result == null) + result = caseParameterableElement(behavior); + if (result == null) + result = caseEModelElement(behavior); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PARAMETER_SET : { + ParameterSet parameterSet = (ParameterSet) theEObject; + Object result = caseParameterSet(parameterSet); + if (result == null) + result = caseNamedElement(parameterSet); + if (result == null) + result = caseElement(parameterSet); + if (result == null) + result = caseEModelElement(parameterSet); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DATA_TYPE : { + DataType dataType = (DataType) theEObject; + Object result = caseDataType(dataType); + if (result == null) + result = caseClassifier(dataType); + if (result == null) + result = caseNamespace(dataType); + if (result == null) + result = caseRedefinableElement(dataType); + if (result == null) + result = caseType(dataType); + if (result == null) + result = caseTemplateableElement(dataType); + if (result == null) + result = caseNamedElement(dataType); + if (result == null) + result = casePackageableElement(dataType); + if (result == null) + result = caseElement(dataType); + if (result == null) + result = caseParameterableElement(dataType); + if (result == null) + result = caseEModelElement(dataType); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERFACE : { + Interface interface_ = (Interface) theEObject; + Object result = caseInterface(interface_); + if (result == null) + result = caseClassifier(interface_); + if (result == null) + result = caseNamespace(interface_); + if (result == null) + result = caseRedefinableElement(interface_); + if (result == null) + result = caseType(interface_); + if (result == null) + result = caseTemplateableElement(interface_); + if (result == null) + result = caseNamedElement(interface_); + if (result == null) + result = casePackageableElement(interface_); + if (result == null) + result = caseElement(interface_); + if (result == null) + result = caseParameterableElement(interface_); + if (result == null) + result = caseEModelElement(interface_); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.RECEPTION : { + Reception reception = (Reception) theEObject; + Object result = caseReception(reception); + if (result == null) + result = caseBehavioralFeature(reception); + if (result == null) + result = caseNamespace(reception); + if (result == null) + result = caseFeature(reception); + if (result == null) + result = caseNamedElement(reception); + if (result == null) + result = caseRedefinableElement(reception); + if (result == null) + result = caseElement(reception); + if (result == null) + result = caseEModelElement(reception); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SIGNAL : { + Signal signal = (Signal) theEObject; + Object result = caseSignal(signal); + if (result == null) + result = caseClassifier(signal); + if (result == null) + result = caseNamespace(signal); + if (result == null) + result = caseRedefinableElement(signal); + if (result == null) + result = caseType(signal); + if (result == null) + result = caseTemplateableElement(signal); + if (result == null) + result = caseNamedElement(signal); + if (result == null) + result = casePackageableElement(signal); + if (result == null) + result = caseElement(signal); + if (result == null) + result = caseParameterableElement(signal); + if (result == null) + result = caseEModelElement(signal); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PROTOCOL_STATE_MACHINE : { + ProtocolStateMachine protocolStateMachine = (ProtocolStateMachine) theEObject; + Object result = caseProtocolStateMachine(protocolStateMachine); + if (result == null) + result = caseStateMachine(protocolStateMachine); + if (result == null) + result = caseBehavior(protocolStateMachine); + if (result == null) + result = caseClass(protocolStateMachine); + if (result == null) + result = caseEncapsulatedClassifier(protocolStateMachine); + if (result == null) + result = caseBehavioredClassifier(protocolStateMachine); + if (result == null) + result = caseStructuredClassifier(protocolStateMachine); + if (result == null) + result = caseClassifier(protocolStateMachine); + if (result == null) + result = caseNamespace(protocolStateMachine); + if (result == null) + result = caseRedefinableElement(protocolStateMachine); + if (result == null) + result = caseType(protocolStateMachine); + if (result == null) + result = caseTemplateableElement(protocolStateMachine); + if (result == null) + result = caseNamedElement(protocolStateMachine); + if (result == null) + result = casePackageableElement(protocolStateMachine); + if (result == null) + result = caseElement(protocolStateMachine); + if (result == null) + result = caseParameterableElement(protocolStateMachine); + if (result == null) + result = caseEModelElement(protocolStateMachine); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STATE_MACHINE : { + StateMachine stateMachine = (StateMachine) theEObject; + Object result = caseStateMachine(stateMachine); + if (result == null) + result = caseBehavior(stateMachine); + if (result == null) + result = caseClass(stateMachine); + if (result == null) + result = caseEncapsulatedClassifier(stateMachine); + if (result == null) + result = caseBehavioredClassifier(stateMachine); + if (result == null) + result = caseStructuredClassifier(stateMachine); + if (result == null) + result = caseClassifier(stateMachine); + if (result == null) + result = caseNamespace(stateMachine); + if (result == null) + result = caseRedefinableElement(stateMachine); + if (result == null) + result = caseType(stateMachine); + if (result == null) + result = caseTemplateableElement(stateMachine); + if (result == null) + result = caseNamedElement(stateMachine); + if (result == null) + result = casePackageableElement(stateMachine); + if (result == null) + result = caseElement(stateMachine); + if (result == null) + result = caseParameterableElement(stateMachine); + if (result == null) + result = caseEModelElement(stateMachine); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REGION : { + Region region = (Region) theEObject; + Object result = caseRegion(region); + if (result == null) + result = caseNamespace(region); + if (result == null) + result = caseRedefinableElement(region); + if (result == null) + result = caseNamedElement(region); + if (result == null) + result = caseElement(region); + if (result == null) + result = caseEModelElement(region); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.VERTEX : { + Vertex vertex = (Vertex) theEObject; + Object result = caseVertex(vertex); + if (result == null) + result = caseNamedElement(vertex); + if (result == null) + result = caseElement(vertex); + if (result == null) + result = caseEModelElement(vertex); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TRANSITION : { + Transition transition = (Transition) theEObject; + Object result = caseTransition(transition); + if (result == null) + result = caseRedefinableElement(transition); + if (result == null) + result = caseNamedElement(transition); + if (result == null) + result = caseElement(transition); + if (result == null) + result = caseEModelElement(transition); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TRIGGER : { + Trigger trigger = (Trigger) theEObject; + Object result = caseTrigger(trigger); + if (result == null) + result = caseNamedElement(trigger); + if (result == null) + result = caseElement(trigger); + if (result == null) + result = caseEModelElement(trigger); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EVENT : { + Event event = (Event) theEObject; + Object result = caseEvent(event); + if (result == null) + result = casePackageableElement(event); + if (result == null) + result = caseNamedElement(event); + if (result == null) + result = caseParameterableElement(event); + if (result == null) + result = caseElement(event); + if (result == null) + result = caseEModelElement(event); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PORT : { + Port port = (Port) theEObject; + Object result = casePort(port); + if (result == null) + result = caseProperty(port); + if (result == null) + result = caseStructuralFeature(port); + if (result == null) + result = caseConnectableElement(port); + if (result == null) + result = caseDeploymentTarget(port); + if (result == null) + result = caseTemplateableElement(port); + if (result == null) + result = caseFeature(port); + if (result == null) + result = caseTypedElement(port); + if (result == null) + result = caseMultiplicityElement(port); + if (result == null) + result = caseParameterableElement(port); + if (result == null) + result = caseNamedElement(port); + if (result == null) + result = caseElement(port); + if (result == null) + result = caseRedefinableElement(port); + if (result == null) + result = caseEModelElement(port); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STATE : { + State state = (State) theEObject; + Object result = caseState(state); + if (result == null) + result = caseNamespace(state); + if (result == null) + result = caseRedefinableElement(state); + if (result == null) + result = caseVertex(state); + if (result == null) + result = caseNamedElement(state); + if (result == null) + result = caseElement(state); + if (result == null) + result = caseEModelElement(state); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONNECTION_POINT_REFERENCE : { + ConnectionPointReference connectionPointReference = (ConnectionPointReference) theEObject; + Object result = caseConnectionPointReference(connectionPointReference); + if (result == null) + result = caseVertex(connectionPointReference); + if (result == null) + result = caseNamedElement(connectionPointReference); + if (result == null) + result = caseElement(connectionPointReference); + if (result == null) + result = caseEModelElement(connectionPointReference); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PSEUDOSTATE : { + Pseudostate pseudostate = (Pseudostate) theEObject; + Object result = casePseudostate(pseudostate); + if (result == null) + result = caseVertex(pseudostate); + if (result == null) + result = caseNamedElement(pseudostate); + if (result == null) + result = caseElement(pseudostate); + if (result == null) + result = caseEModelElement(pseudostate); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PROTOCOL_CONFORMANCE : { + ProtocolConformance protocolConformance = (ProtocolConformance) theEObject; + Object result = caseProtocolConformance(protocolConformance); + if (result == null) + result = caseDirectedRelationship(protocolConformance); + if (result == null) + result = caseRelationship(protocolConformance); + if (result == null) + result = caseElement(protocolConformance); + if (result == null) + result = caseEModelElement(protocolConformance); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OPERATION_TEMPLATE_PARAMETER : { + OperationTemplateParameter operationTemplateParameter = (OperationTemplateParameter) theEObject; + Object result = caseOperationTemplateParameter(operationTemplateParameter); + if (result == null) + result = caseTemplateParameter(operationTemplateParameter); + if (result == null) + result = caseElement(operationTemplateParameter); + if (result == null) + result = caseEModelElement(operationTemplateParameter); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STRUCTURAL_FEATURE : { + StructuralFeature structuralFeature = (StructuralFeature) theEObject; + Object result = caseStructuralFeature(structuralFeature); + if (result == null) + result = caseFeature(structuralFeature); + if (result == null) + result = caseTypedElement(structuralFeature); + if (result == null) + result = caseMultiplicityElement(structuralFeature); + if (result == null) + result = caseRedefinableElement(structuralFeature); + if (result == null) + result = caseNamedElement(structuralFeature); + if (result == null) + result = caseElement(structuralFeature); + if (result == null) + result = caseEModelElement(structuralFeature); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ASSOCIATION : { + Association association = (Association) theEObject; + Object result = caseAssociation(association); + if (result == null) + result = caseClassifier(association); + if (result == null) + result = caseRelationship(association); + if (result == null) + result = caseNamespace(association); + if (result == null) + result = caseRedefinableElement(association); + if (result == null) + result = caseType(association); + if (result == null) + result = caseTemplateableElement(association); + if (result == null) + result = caseElement(association); + if (result == null) + result = caseNamedElement(association); + if (result == null) + result = casePackageableElement(association); + if (result == null) + result = caseEModelElement(association); + if (result == null) + result = caseParameterableElement(association); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER : { + ConnectableElementTemplateParameter connectableElementTemplateParameter = (ConnectableElementTemplateParameter) theEObject; + Object result = caseConnectableElementTemplateParameter(connectableElementTemplateParameter); + if (result == null) + result = caseTemplateParameter(connectableElementTemplateParameter); + if (result == null) + result = caseElement(connectableElementTemplateParameter); + if (result == null) + result = caseEModelElement(connectableElementTemplateParameter); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.COLLABORATION_USE : { + CollaborationUse collaborationUse = (CollaborationUse) theEObject; + Object result = caseCollaborationUse(collaborationUse); + if (result == null) + result = caseNamedElement(collaborationUse); + if (result == null) + result = caseElement(collaborationUse); + if (result == null) + result = caseEModelElement(collaborationUse); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.COLLABORATION : { + Collaboration collaboration = (Collaboration) theEObject; + Object result = caseCollaboration(collaboration); + if (result == null) + result = caseBehavioredClassifier(collaboration); + if (result == null) + result = caseStructuredClassifier(collaboration); + if (result == null) + result = caseClassifier(collaboration); + if (result == null) + result = caseNamespace(collaboration); + if (result == null) + result = caseRedefinableElement(collaboration); + if (result == null) + result = caseType(collaboration); + if (result == null) + result = caseTemplateableElement(collaboration); + if (result == null) + result = caseNamedElement(collaboration); + if (result == null) + result = casePackageableElement(collaboration); + if (result == null) + result = caseElement(collaboration); + if (result == null) + result = caseParameterableElement(collaboration); + if (result == null) + result = caseEModelElement(collaboration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STRUCTURED_CLASSIFIER : { + StructuredClassifier structuredClassifier = (StructuredClassifier) theEObject; + Object result = caseStructuredClassifier(structuredClassifier); + if (result == null) + result = caseClassifier(structuredClassifier); + if (result == null) + result = caseNamespace(structuredClassifier); + if (result == null) + result = caseRedefinableElement(structuredClassifier); + if (result == null) + result = caseType(structuredClassifier); + if (result == null) + result = caseTemplateableElement(structuredClassifier); + if (result == null) + result = caseNamedElement(structuredClassifier); + if (result == null) + result = casePackageableElement(structuredClassifier); + if (result == null) + result = caseElement(structuredClassifier); + if (result == null) + result = caseParameterableElement(structuredClassifier); + if (result == null) + result = caseEModelElement(structuredClassifier); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONNECTOR : { + Connector connector = (Connector) theEObject; + Object result = caseConnector(connector); + if (result == null) + result = caseFeature(connector); + if (result == null) + result = caseRedefinableElement(connector); + if (result == null) + result = caseNamedElement(connector); + if (result == null) + result = caseElement(connector); + if (result == null) + result = caseEModelElement(connector); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE : { + RedefinableTemplateSignature redefinableTemplateSignature = (RedefinableTemplateSignature) theEObject; + Object result = caseRedefinableTemplateSignature(redefinableTemplateSignature); + if (result == null) + result = caseRedefinableElement(redefinableTemplateSignature); + if (result == null) + result = caseTemplateSignature(redefinableTemplateSignature); + if (result == null) + result = caseNamedElement(redefinableTemplateSignature); + if (result == null) + result = caseElement(redefinableTemplateSignature); + if (result == null) + result = caseEModelElement(redefinableTemplateSignature); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER : { + ClassifierTemplateParameter classifierTemplateParameter = (ClassifierTemplateParameter) theEObject; + Object result = caseClassifierTemplateParameter(classifierTemplateParameter); + if (result == null) + result = caseTemplateParameter(classifierTemplateParameter); + if (result == null) + result = caseElement(classifierTemplateParameter); + if (result == null) + result = caseEModelElement(classifierTemplateParameter); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERFACE_REALIZATION : { + InterfaceRealization interfaceRealization = (InterfaceRealization) theEObject; + Object result = caseInterfaceRealization(interfaceRealization); + if (result == null) + result = caseRealization(interfaceRealization); + if (result == null) + result = caseAbstraction(interfaceRealization); + if (result == null) + result = caseDependency(interfaceRealization); + if (result == null) + result = casePackageableElement(interfaceRealization); + if (result == null) + result = caseDirectedRelationship(interfaceRealization); + if (result == null) + result = caseNamedElement(interfaceRealization); + if (result == null) + result = caseParameterableElement(interfaceRealization); + if (result == null) + result = caseRelationship(interfaceRealization); + if (result == null) + result = caseElement(interfaceRealization); + if (result == null) + result = caseEModelElement(interfaceRealization); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ENCAPSULATED_CLASSIFIER : { + EncapsulatedClassifier encapsulatedClassifier = (EncapsulatedClassifier) theEObject; + Object result = caseEncapsulatedClassifier(encapsulatedClassifier); + if (result == null) + result = caseStructuredClassifier(encapsulatedClassifier); + if (result == null) + result = caseClassifier(encapsulatedClassifier); + if (result == null) + result = caseNamespace(encapsulatedClassifier); + if (result == null) + result = caseRedefinableElement(encapsulatedClassifier); + if (result == null) + result = caseType(encapsulatedClassifier); + if (result == null) + result = caseTemplateableElement(encapsulatedClassifier); + if (result == null) + result = caseNamedElement(encapsulatedClassifier); + if (result == null) + result = casePackageableElement(encapsulatedClassifier); + if (result == null) + result = caseElement(encapsulatedClassifier); + if (result == null) + result = caseParameterableElement(encapsulatedClassifier); + if (result == null) + result = caseEModelElement(encapsulatedClassifier); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXTENSION : { + Extension extension = (Extension) theEObject; + Object result = caseExtension(extension); + if (result == null) + result = caseAssociation(extension); + if (result == null) + result = caseClassifier(extension); + if (result == null) + result = caseRelationship(extension); + if (result == null) + result = caseNamespace(extension); + if (result == null) + result = caseRedefinableElement(extension); + if (result == null) + result = caseType(extension); + if (result == null) + result = caseTemplateableElement(extension); + if (result == null) + result = caseElement(extension); + if (result == null) + result = caseNamedElement(extension); + if (result == null) + result = casePackageableElement(extension); + if (result == null) + result = caseEModelElement(extension); + if (result == null) + result = caseParameterableElement(extension); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXTENSION_END : { + ExtensionEnd extensionEnd = (ExtensionEnd) theEObject; + Object result = caseExtensionEnd(extensionEnd); + if (result == null) + result = caseProperty(extensionEnd); + if (result == null) + result = caseStructuralFeature(extensionEnd); + if (result == null) + result = caseConnectableElement(extensionEnd); + if (result == null) + result = caseDeploymentTarget(extensionEnd); + if (result == null) + result = caseTemplateableElement(extensionEnd); + if (result == null) + result = caseFeature(extensionEnd); + if (result == null) + result = caseTypedElement(extensionEnd); + if (result == null) + result = caseMultiplicityElement(extensionEnd); + if (result == null) + result = caseParameterableElement(extensionEnd); + if (result == null) + result = caseNamedElement(extensionEnd); + if (result == null) + result = caseElement(extensionEnd); + if (result == null) + result = caseRedefinableElement(extensionEnd); + if (result == null) + result = caseEModelElement(extensionEnd); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.IMAGE : { + Image image = (Image) theEObject; + Object result = caseImage(image); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STRING_EXPRESSION : { + StringExpression stringExpression = (StringExpression) theEObject; + Object result = caseStringExpression(stringExpression); + if (result == null) + result = caseExpression(stringExpression); + if (result == null) + result = caseTemplateableElement(stringExpression); + if (result == null) + result = caseValueSpecification(stringExpression); + if (result == null) + result = caseElement(stringExpression); + if (result == null) + result = casePackageableElement(stringExpression); + if (result == null) + result = caseTypedElement(stringExpression); + if (result == null) + result = caseEModelElement(stringExpression); + if (result == null) + result = caseNamedElement(stringExpression); + if (result == null) + result = caseParameterableElement(stringExpression); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXPRESSION : { + Expression expression = (Expression) theEObject; + Object result = caseExpression(expression); + if (result == null) + result = caseValueSpecification(expression); + if (result == null) + result = casePackageableElement(expression); + if (result == null) + result = caseTypedElement(expression); + if (result == null) + result = caseNamedElement(expression); + if (result == null) + result = caseParameterableElement(expression); + if (result == null) + result = caseElement(expression); + if (result == null) + result = caseEModelElement(expression); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LITERAL_INTEGER : { + LiteralInteger literalInteger = (LiteralInteger) theEObject; + Object result = caseLiteralInteger(literalInteger); + if (result == null) + result = caseLiteralSpecification(literalInteger); + if (result == null) + result = caseValueSpecification(literalInteger); + if (result == null) + result = casePackageableElement(literalInteger); + if (result == null) + result = caseTypedElement(literalInteger); + if (result == null) + result = caseNamedElement(literalInteger); + if (result == null) + result = caseParameterableElement(literalInteger); + if (result == null) + result = caseElement(literalInteger); + if (result == null) + result = caseEModelElement(literalInteger); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LITERAL_STRING : { + LiteralString literalString = (LiteralString) theEObject; + Object result = caseLiteralString(literalString); + if (result == null) + result = caseLiteralSpecification(literalString); + if (result == null) + result = caseValueSpecification(literalString); + if (result == null) + result = casePackageableElement(literalString); + if (result == null) + result = caseTypedElement(literalString); + if (result == null) + result = caseNamedElement(literalString); + if (result == null) + result = caseParameterableElement(literalString); + if (result == null) + result = caseElement(literalString); + if (result == null) + result = caseEModelElement(literalString); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LITERAL_BOOLEAN : { + LiteralBoolean literalBoolean = (LiteralBoolean) theEObject; + Object result = caseLiteralBoolean(literalBoolean); + if (result == null) + result = caseLiteralSpecification(literalBoolean); + if (result == null) + result = caseValueSpecification(literalBoolean); + if (result == null) + result = casePackageableElement(literalBoolean); + if (result == null) + result = caseTypedElement(literalBoolean); + if (result == null) + result = caseNamedElement(literalBoolean); + if (result == null) + result = caseParameterableElement(literalBoolean); + if (result == null) + result = caseElement(literalBoolean); + if (result == null) + result = caseEModelElement(literalBoolean); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LITERAL_NULL : { + LiteralNull literalNull = (LiteralNull) theEObject; + Object result = caseLiteralNull(literalNull); + if (result == null) + result = caseLiteralSpecification(literalNull); + if (result == null) + result = caseValueSpecification(literalNull); + if (result == null) + result = casePackageableElement(literalNull); + if (result == null) + result = caseTypedElement(literalNull); + if (result == null) + result = caseNamedElement(literalNull); + if (result == null) + result = caseParameterableElement(literalNull); + if (result == null) + result = caseElement(literalNull); + if (result == null) + result = caseEModelElement(literalNull); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SLOT : { + Slot slot = (Slot) theEObject; + Object result = caseSlot(slot); + if (result == null) + result = caseElement(slot); + if (result == null) + result = caseEModelElement(slot); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INSTANCE_SPECIFICATION : { + InstanceSpecification instanceSpecification = (InstanceSpecification) theEObject; + Object result = caseInstanceSpecification(instanceSpecification); + if (result == null) + result = caseDeploymentTarget(instanceSpecification); + if (result == null) + result = casePackageableElement(instanceSpecification); + if (result == null) + result = caseDeployedArtifact(instanceSpecification); + if (result == null) + result = caseNamedElement(instanceSpecification); + if (result == null) + result = caseParameterableElement(instanceSpecification); + if (result == null) + result = caseElement(instanceSpecification); + if (result == null) + result = caseEModelElement(instanceSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ENUMERATION : { + Enumeration enumeration = (Enumeration) theEObject; + Object result = caseEnumeration(enumeration); + if (result == null) + result = caseDataType(enumeration); + if (result == null) + result = caseClassifier(enumeration); + if (result == null) + result = caseNamespace(enumeration); + if (result == null) + result = caseRedefinableElement(enumeration); + if (result == null) + result = caseType(enumeration); + if (result == null) + result = caseTemplateableElement(enumeration); + if (result == null) + result = caseNamedElement(enumeration); + if (result == null) + result = casePackageableElement(enumeration); + if (result == null) + result = caseElement(enumeration); + if (result == null) + result = caseParameterableElement(enumeration); + if (result == null) + result = caseEModelElement(enumeration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ENUMERATION_LITERAL : { + EnumerationLiteral enumerationLiteral = (EnumerationLiteral) theEObject; + Object result = caseEnumerationLiteral(enumerationLiteral); + if (result == null) + result = caseInstanceSpecification(enumerationLiteral); + if (result == null) + result = caseDeploymentTarget(enumerationLiteral); + if (result == null) + result = casePackageableElement(enumerationLiteral); + if (result == null) + result = caseDeployedArtifact(enumerationLiteral); + if (result == null) + result = caseNamedElement(enumerationLiteral); + if (result == null) + result = caseParameterableElement(enumerationLiteral); + if (result == null) + result = caseElement(enumerationLiteral); + if (result == null) + result = caseEModelElement(enumerationLiteral); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PRIMITIVE_TYPE : { + PrimitiveType primitiveType = (PrimitiveType) theEObject; + Object result = casePrimitiveType(primitiveType); + if (result == null) + result = caseDataType(primitiveType); + if (result == null) + result = caseClassifier(primitiveType); + if (result == null) + result = caseNamespace(primitiveType); + if (result == null) + result = caseRedefinableElement(primitiveType); + if (result == null) + result = caseType(primitiveType); + if (result == null) + result = caseTemplateableElement(primitiveType); + if (result == null) + result = caseNamedElement(primitiveType); + if (result == null) + result = casePackageableElement(primitiveType); + if (result == null) + result = caseElement(primitiveType); + if (result == null) + result = caseParameterableElement(primitiveType); + if (result == null) + result = caseEModelElement(primitiveType); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INSTANCE_VALUE : { + InstanceValue instanceValue = (InstanceValue) theEObject; + Object result = caseInstanceValue(instanceValue); + if (result == null) + result = caseValueSpecification(instanceValue); + if (result == null) + result = casePackageableElement(instanceValue); + if (result == null) + result = caseTypedElement(instanceValue); + if (result == null) + result = caseNamedElement(instanceValue); + if (result == null) + result = caseParameterableElement(instanceValue); + if (result == null) + result = caseElement(instanceValue); + if (result == null) + result = caseEModelElement(instanceValue); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LITERAL_UNLIMITED_NATURAL : { + LiteralUnlimitedNatural literalUnlimitedNatural = (LiteralUnlimitedNatural) theEObject; + Object result = caseLiteralUnlimitedNatural(literalUnlimitedNatural); + if (result == null) + result = caseLiteralSpecification(literalUnlimitedNatural); + if (result == null) + result = caseValueSpecification(literalUnlimitedNatural); + if (result == null) + result = casePackageableElement(literalUnlimitedNatural); + if (result == null) + result = caseTypedElement(literalUnlimitedNatural); + if (result == null) + result = caseNamedElement(literalUnlimitedNatural); + if (result == null) + result = caseParameterableElement(literalUnlimitedNatural); + if (result == null) + result = caseElement(literalUnlimitedNatural); + if (result == null) + result = caseEModelElement(literalUnlimitedNatural); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OPAQUE_BEHAVIOR : { + OpaqueBehavior opaqueBehavior = (OpaqueBehavior) theEObject; + Object result = caseOpaqueBehavior(opaqueBehavior); + if (result == null) + result = caseBehavior(opaqueBehavior); + if (result == null) + result = caseClass(opaqueBehavior); + if (result == null) + result = caseEncapsulatedClassifier(opaqueBehavior); + if (result == null) + result = caseBehavioredClassifier(opaqueBehavior); + if (result == null) + result = caseStructuredClassifier(opaqueBehavior); + if (result == null) + result = caseClassifier(opaqueBehavior); + if (result == null) + result = caseNamespace(opaqueBehavior); + if (result == null) + result = caseRedefinableElement(opaqueBehavior); + if (result == null) + result = caseType(opaqueBehavior); + if (result == null) + result = caseTemplateableElement(opaqueBehavior); + if (result == null) + result = caseNamedElement(opaqueBehavior); + if (result == null) + result = casePackageableElement(opaqueBehavior); + if (result == null) + result = caseElement(opaqueBehavior); + if (result == null) + result = caseParameterableElement(opaqueBehavior); + if (result == null) + result = caseEModelElement(opaqueBehavior); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.FUNCTION_BEHAVIOR : { + FunctionBehavior functionBehavior = (FunctionBehavior) theEObject; + Object result = caseFunctionBehavior(functionBehavior); + if (result == null) + result = caseOpaqueBehavior(functionBehavior); + if (result == null) + result = caseBehavior(functionBehavior); + if (result == null) + result = caseClass(functionBehavior); + if (result == null) + result = caseEncapsulatedClassifier(functionBehavior); + if (result == null) + result = caseBehavioredClassifier(functionBehavior); + if (result == null) + result = caseStructuredClassifier(functionBehavior); + if (result == null) + result = caseClassifier(functionBehavior); + if (result == null) + result = caseNamespace(functionBehavior); + if (result == null) + result = caseRedefinableElement(functionBehavior); + if (result == null) + result = caseType(functionBehavior); + if (result == null) + result = caseTemplateableElement(functionBehavior); + if (result == null) + result = caseNamedElement(functionBehavior); + if (result == null) + result = casePackageableElement(functionBehavior); + if (result == null) + result = caseElement(functionBehavior); + if (result == null) + result = caseParameterableElement(functionBehavior); + if (result == null) + result = caseEModelElement(functionBehavior); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTOR : { + Actor actor = (Actor) theEObject; + Object result = caseActor(actor); + if (result == null) + result = caseBehavioredClassifier(actor); + if (result == null) + result = caseClassifier(actor); + if (result == null) + result = caseNamespace(actor); + if (result == null) + result = caseRedefinableElement(actor); + if (result == null) + result = caseType(actor); + if (result == null) + result = caseTemplateableElement(actor); + if (result == null) + result = caseNamedElement(actor); + if (result == null) + result = casePackageableElement(actor); + if (result == null) + result = caseElement(actor); + if (result == null) + result = caseParameterableElement(actor); + if (result == null) + result = caseEModelElement(actor); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.USAGE : { + Usage usage = (Usage) theEObject; + Object result = caseUsage(usage); + if (result == null) + result = caseDependency(usage); + if (result == null) + result = casePackageableElement(usage); + if (result == null) + result = caseDirectedRelationship(usage); + if (result == null) + result = caseNamedElement(usage); + if (result == null) + result = caseParameterableElement(usage); + if (result == null) + result = caseRelationship(usage); + if (result == null) + result = caseElement(usage); + if (result == null) + result = caseEModelElement(usage); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MESSAGE : { + Message message = (Message) theEObject; + Object result = caseMessage(message); + if (result == null) + result = caseNamedElement(message); + if (result == null) + result = caseElement(message); + if (result == null) + result = caseEModelElement(message); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MESSAGE_END : { + MessageEnd messageEnd = (MessageEnd) theEObject; + Object result = caseMessageEnd(messageEnd); + if (result == null) + result = caseNamedElement(messageEnd); + if (result == null) + result = caseElement(messageEnd); + if (result == null) + result = caseEModelElement(messageEnd); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERACTION : { + Interaction interaction = (Interaction) theEObject; + Object result = caseInteraction(interaction); + if (result == null) + result = caseBehavior(interaction); + if (result == null) + result = caseInteractionFragment(interaction); + if (result == null) + result = caseClass(interaction); + if (result == null) + result = caseNamedElement(interaction); + if (result == null) + result = caseEncapsulatedClassifier(interaction); + if (result == null) + result = caseBehavioredClassifier(interaction); + if (result == null) + result = caseElement(interaction); + if (result == null) + result = caseStructuredClassifier(interaction); + if (result == null) + result = caseClassifier(interaction); + if (result == null) + result = caseEModelElement(interaction); + if (result == null) + result = caseNamespace(interaction); + if (result == null) + result = caseRedefinableElement(interaction); + if (result == null) + result = caseType(interaction); + if (result == null) + result = caseTemplateableElement(interaction); + if (result == null) + result = casePackageableElement(interaction); + if (result == null) + result = caseParameterableElement(interaction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERACTION_FRAGMENT : { + InteractionFragment interactionFragment = (InteractionFragment) theEObject; + Object result = caseInteractionFragment(interactionFragment); + if (result == null) + result = caseNamedElement(interactionFragment); + if (result == null) + result = caseElement(interactionFragment); + if (result == null) + result = caseEModelElement(interactionFragment); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LIFELINE : { + Lifeline lifeline = (Lifeline) theEObject; + Object result = caseLifeline(lifeline); + if (result == null) + result = caseNamedElement(lifeline); + if (result == null) + result = caseElement(lifeline); + if (result == null) + result = caseEModelElement(lifeline); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PART_DECOMPOSITION : { + PartDecomposition partDecomposition = (PartDecomposition) theEObject; + Object result = casePartDecomposition(partDecomposition); + if (result == null) + result = caseInteractionUse(partDecomposition); + if (result == null) + result = caseInteractionFragment(partDecomposition); + if (result == null) + result = caseNamedElement(partDecomposition); + if (result == null) + result = caseElement(partDecomposition); + if (result == null) + result = caseEModelElement(partDecomposition); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERACTION_USE : { + InteractionUse interactionUse = (InteractionUse) theEObject; + Object result = caseInteractionUse(interactionUse); + if (result == null) + result = caseInteractionFragment(interactionUse); + if (result == null) + result = caseNamedElement(interactionUse); + if (result == null) + result = caseElement(interactionUse); + if (result == null) + result = caseEModelElement(interactionUse); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.GATE : { + Gate gate = (Gate) theEObject; + Object result = caseGate(gate); + if (result == null) + result = caseMessageEnd(gate); + if (result == null) + result = caseNamedElement(gate); + if (result == null) + result = caseElement(gate); + if (result == null) + result = caseEModelElement(gate); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTION : { + Action action = (Action) theEObject; + Object result = caseAction(action); + if (result == null) + result = caseExecutableNode(action); + if (result == null) + result = caseActivityNode(action); + if (result == null) + result = caseRedefinableElement(action); + if (result == null) + result = caseNamedElement(action); + if (result == null) + result = caseElement(action); + if (result == null) + result = caseEModelElement(action); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXECUTABLE_NODE : { + ExecutableNode executableNode = (ExecutableNode) theEObject; + Object result = caseExecutableNode(executableNode); + if (result == null) + result = caseActivityNode(executableNode); + if (result == null) + result = caseRedefinableElement(executableNode); + if (result == null) + result = caseNamedElement(executableNode); + if (result == null) + result = caseElement(executableNode); + if (result == null) + result = caseEModelElement(executableNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY_NODE : { + ActivityNode activityNode = (ActivityNode) theEObject; + Object result = caseActivityNode(activityNode); + if (result == null) + result = caseRedefinableElement(activityNode); + if (result == null) + result = caseNamedElement(activityNode); + if (result == null) + result = caseElement(activityNode); + if (result == null) + result = caseEModelElement(activityNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY_EDGE : { + ActivityEdge activityEdge = (ActivityEdge) theEObject; + Object result = caseActivityEdge(activityEdge); + if (result == null) + result = caseRedefinableElement(activityEdge); + if (result == null) + result = caseNamedElement(activityEdge); + if (result == null) + result = caseElement(activityEdge); + if (result == null) + result = caseEModelElement(activityEdge); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY : { + Activity activity = (Activity) theEObject; + Object result = caseActivity(activity); + if (result == null) + result = caseBehavior(activity); + if (result == null) + result = caseClass(activity); + if (result == null) + result = caseEncapsulatedClassifier(activity); + if (result == null) + result = caseBehavioredClassifier(activity); + if (result == null) + result = caseStructuredClassifier(activity); + if (result == null) + result = caseClassifier(activity); + if (result == null) + result = caseNamespace(activity); + if (result == null) + result = caseRedefinableElement(activity); + if (result == null) + result = caseType(activity); + if (result == null) + result = caseTemplateableElement(activity); + if (result == null) + result = caseNamedElement(activity); + if (result == null) + result = casePackageableElement(activity); + if (result == null) + result = caseElement(activity); + if (result == null) + result = caseParameterableElement(activity); + if (result == null) + result = caseEModelElement(activity); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY_PARTITION : { + ActivityPartition activityPartition = (ActivityPartition) theEObject; + Object result = caseActivityPartition(activityPartition); + if (result == null) + result = caseNamedElement(activityPartition); + if (result == null) + result = caseActivityGroup(activityPartition); + if (result == null) + result = caseElement(activityPartition); + if (result == null) + result = caseEModelElement(activityPartition); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY_GROUP : { + ActivityGroup activityGroup = (ActivityGroup) theEObject; + Object result = caseActivityGroup(activityGroup); + if (result == null) + result = caseElement(activityGroup); + if (result == null) + result = caseEModelElement(activityGroup); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STRUCTURED_ACTIVITY_NODE : { + StructuredActivityNode structuredActivityNode = (StructuredActivityNode) theEObject; + Object result = caseStructuredActivityNode(structuredActivityNode); + if (result == null) + result = caseAction(structuredActivityNode); + if (result == null) + result = caseNamespace(structuredActivityNode); + if (result == null) + result = caseActivityGroup(structuredActivityNode); + if (result == null) + result = caseExecutableNode(structuredActivityNode); + if (result == null) + result = caseNamedElement(structuredActivityNode); + if (result == null) + result = caseElement(structuredActivityNode); + if (result == null) + result = caseActivityNode(structuredActivityNode); + if (result == null) + result = caseEModelElement(structuredActivityNode); + if (result == null) + result = caseRedefinableElement(structuredActivityNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.VARIABLE : { + Variable variable = (Variable) theEObject; + Object result = caseVariable(variable); + if (result == null) + result = caseTypedElement(variable); + if (result == null) + result = caseMultiplicityElement(variable); + if (result == null) + result = caseNamedElement(variable); + if (result == null) + result = caseElement(variable); + if (result == null) + result = caseEModelElement(variable); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION : { + InterruptibleActivityRegion interruptibleActivityRegion = (InterruptibleActivityRegion) theEObject; + Object result = caseInterruptibleActivityRegion(interruptibleActivityRegion); + if (result == null) + result = caseActivityGroup(interruptibleActivityRegion); + if (result == null) + result = caseElement(interruptibleActivityRegion); + if (result == null) + result = caseEModelElement(interruptibleActivityRegion); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXCEPTION_HANDLER : { + ExceptionHandler exceptionHandler = (ExceptionHandler) theEObject; + Object result = caseExceptionHandler(exceptionHandler); + if (result == null) + result = caseElement(exceptionHandler); + if (result == null) + result = caseEModelElement(exceptionHandler); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OBJECT_NODE : { + ObjectNode objectNode = (ObjectNode) theEObject; + Object result = caseObjectNode(objectNode); + if (result == null) + result = caseActivityNode(objectNode); + if (result == null) + result = caseTypedElement(objectNode); + if (result == null) + result = caseRedefinableElement(objectNode); + if (result == null) + result = caseNamedElement(objectNode); + if (result == null) + result = caseElement(objectNode); + if (result == null) + result = caseEModelElement(objectNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OUTPUT_PIN : { + OutputPin outputPin = (OutputPin) theEObject; + Object result = caseOutputPin(outputPin); + if (result == null) + result = casePin(outputPin); + if (result == null) + result = caseObjectNode(outputPin); + if (result == null) + result = caseActivityNode(outputPin); + if (result == null) + result = caseTypedElement(outputPin); + if (result == null) + result = caseRedefinableElement(outputPin); + if (result == null) + result = caseNamedElement(outputPin); + if (result == null) + result = caseElement(outputPin); + if (result == null) + result = caseEModelElement(outputPin); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PIN : { + Pin pin = (Pin) theEObject; + Object result = casePin(pin); + if (result == null) + result = caseObjectNode(pin); + if (result == null) + result = caseActivityNode(pin); + if (result == null) + result = caseTypedElement(pin); + if (result == null) + result = caseRedefinableElement(pin); + if (result == null) + result = caseNamedElement(pin); + if (result == null) + result = caseElement(pin); + if (result == null) + result = caseEModelElement(pin); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INPUT_PIN : { + InputPin inputPin = (InputPin) theEObject; + Object result = caseInputPin(inputPin); + if (result == null) + result = casePin(inputPin); + if (result == null) + result = caseObjectNode(inputPin); + if (result == null) + result = caseActivityNode(inputPin); + if (result == null) + result = caseTypedElement(inputPin); + if (result == null) + result = caseRedefinableElement(inputPin); + if (result == null) + result = caseNamedElement(inputPin); + if (result == null) + result = caseElement(inputPin); + if (result == null) + result = caseEModelElement(inputPin); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.GENERAL_ORDERING : { + GeneralOrdering generalOrdering = (GeneralOrdering) theEObject; + Object result = caseGeneralOrdering(generalOrdering); + if (result == null) + result = caseNamedElement(generalOrdering); + if (result == null) + result = caseElement(generalOrdering); + if (result == null) + result = caseEModelElement(generalOrdering); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OCCURRENCE_SPECIFICATION : { + OccurrenceSpecification occurrenceSpecification = (OccurrenceSpecification) theEObject; + Object result = caseOccurrenceSpecification(occurrenceSpecification); + if (result == null) + result = caseInteractionFragment(occurrenceSpecification); + if (result == null) + result = caseNamedElement(occurrenceSpecification); + if (result == null) + result = caseElement(occurrenceSpecification); + if (result == null) + result = caseEModelElement(occurrenceSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERACTION_OPERAND : { + InteractionOperand interactionOperand = (InteractionOperand) theEObject; + Object result = caseInteractionOperand(interactionOperand); + if (result == null) + result = caseNamespace(interactionOperand); + if (result == null) + result = caseInteractionFragment(interactionOperand); + if (result == null) + result = caseNamedElement(interactionOperand); + if (result == null) + result = caseElement(interactionOperand); + if (result == null) + result = caseEModelElement(interactionOperand); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERACTION_CONSTRAINT : { + InteractionConstraint interactionConstraint = (InteractionConstraint) theEObject; + Object result = caseInteractionConstraint(interactionConstraint); + if (result == null) + result = caseConstraint(interactionConstraint); + if (result == null) + result = casePackageableElement(interactionConstraint); + if (result == null) + result = caseNamedElement(interactionConstraint); + if (result == null) + result = caseParameterableElement(interactionConstraint); + if (result == null) + result = caseElement(interactionConstraint); + if (result == null) + result = caseEModelElement(interactionConstraint); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXECUTION_SPECIFICATION : { + ExecutionSpecification executionSpecification = (ExecutionSpecification) theEObject; + Object result = caseExecutionSpecification(executionSpecification); + if (result == null) + result = caseInteractionFragment(executionSpecification); + if (result == null) + result = caseNamedElement(executionSpecification); + if (result == null) + result = caseElement(executionSpecification); + if (result == null) + result = caseEModelElement(executionSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION : { + ExecutionOccurrenceSpecification executionOccurrenceSpecification = (ExecutionOccurrenceSpecification) theEObject; + Object result = caseExecutionOccurrenceSpecification(executionOccurrenceSpecification); + if (result == null) + result = caseOccurrenceSpecification(executionOccurrenceSpecification); + if (result == null) + result = caseInteractionFragment(executionOccurrenceSpecification); + if (result == null) + result = caseNamedElement(executionOccurrenceSpecification); + if (result == null) + result = caseElement(executionOccurrenceSpecification); + if (result == null) + result = caseEModelElement(executionOccurrenceSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXECUTION_EVENT : { + ExecutionEvent executionEvent = (ExecutionEvent) theEObject; + Object result = caseExecutionEvent(executionEvent); + if (result == null) + result = caseEvent(executionEvent); + if (result == null) + result = casePackageableElement(executionEvent); + if (result == null) + result = caseNamedElement(executionEvent); + if (result == null) + result = caseParameterableElement(executionEvent); + if (result == null) + result = caseElement(executionEvent); + if (result == null) + result = caseEModelElement(executionEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STATE_INVARIANT : { + StateInvariant stateInvariant = (StateInvariant) theEObject; + Object result = caseStateInvariant(stateInvariant); + if (result == null) + result = caseInteractionFragment(stateInvariant); + if (result == null) + result = caseNamedElement(stateInvariant); + if (result == null) + result = caseElement(stateInvariant); + if (result == null) + result = caseEModelElement(stateInvariant); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTION_EXECUTION_SPECIFICATION : { + ActionExecutionSpecification actionExecutionSpecification = (ActionExecutionSpecification) theEObject; + Object result = caseActionExecutionSpecification(actionExecutionSpecification); + if (result == null) + result = caseExecutionSpecification(actionExecutionSpecification); + if (result == null) + result = caseInteractionFragment(actionExecutionSpecification); + if (result == null) + result = caseNamedElement(actionExecutionSpecification); + if (result == null) + result = caseElement(actionExecutionSpecification); + if (result == null) + result = caseEModelElement(actionExecutionSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION : { + BehaviorExecutionSpecification behaviorExecutionSpecification = (BehaviorExecutionSpecification) theEObject; + Object result = caseBehaviorExecutionSpecification(behaviorExecutionSpecification); + if (result == null) + result = caseExecutionSpecification(behaviorExecutionSpecification); + if (result == null) + result = caseInteractionFragment(behaviorExecutionSpecification); + if (result == null) + result = caseNamedElement(behaviorExecutionSpecification); + if (result == null) + result = caseElement(behaviorExecutionSpecification); + if (result == null) + result = caseEModelElement(behaviorExecutionSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CREATION_EVENT : { + CreationEvent creationEvent = (CreationEvent) theEObject; + Object result = caseCreationEvent(creationEvent); + if (result == null) + result = caseEvent(creationEvent); + if (result == null) + result = casePackageableElement(creationEvent); + if (result == null) + result = caseNamedElement(creationEvent); + if (result == null) + result = caseParameterableElement(creationEvent); + if (result == null) + result = caseElement(creationEvent); + if (result == null) + result = caseEModelElement(creationEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DESTRUCTION_EVENT : { + DestructionEvent destructionEvent = (DestructionEvent) theEObject; + Object result = caseDestructionEvent(destructionEvent); + if (result == null) + result = caseEvent(destructionEvent); + if (result == null) + result = casePackageableElement(destructionEvent); + if (result == null) + result = caseNamedElement(destructionEvent); + if (result == null) + result = caseParameterableElement(destructionEvent); + if (result == null) + result = caseElement(destructionEvent); + if (result == null) + result = caseEModelElement(destructionEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SEND_OPERATION_EVENT : { + SendOperationEvent sendOperationEvent = (SendOperationEvent) theEObject; + Object result = caseSendOperationEvent(sendOperationEvent); + if (result == null) + result = caseMessageEvent(sendOperationEvent); + if (result == null) + result = caseEvent(sendOperationEvent); + if (result == null) + result = casePackageableElement(sendOperationEvent); + if (result == null) + result = caseNamedElement(sendOperationEvent); + if (result == null) + result = caseParameterableElement(sendOperationEvent); + if (result == null) + result = caseElement(sendOperationEvent); + if (result == null) + result = caseEModelElement(sendOperationEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MESSAGE_EVENT : { + MessageEvent messageEvent = (MessageEvent) theEObject; + Object result = caseMessageEvent(messageEvent); + if (result == null) + result = caseEvent(messageEvent); + if (result == null) + result = casePackageableElement(messageEvent); + if (result == null) + result = caseNamedElement(messageEvent); + if (result == null) + result = caseParameterableElement(messageEvent); + if (result == null) + result = caseElement(messageEvent); + if (result == null) + result = caseEModelElement(messageEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SEND_SIGNAL_EVENT : { + SendSignalEvent sendSignalEvent = (SendSignalEvent) theEObject; + Object result = caseSendSignalEvent(sendSignalEvent); + if (result == null) + result = caseMessageEvent(sendSignalEvent); + if (result == null) + result = caseEvent(sendSignalEvent); + if (result == null) + result = casePackageableElement(sendSignalEvent); + if (result == null) + result = caseNamedElement(sendSignalEvent); + if (result == null) + result = caseParameterableElement(sendSignalEvent); + if (result == null) + result = caseElement(sendSignalEvent); + if (result == null) + result = caseEModelElement(sendSignalEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION : { + MessageOccurrenceSpecification messageOccurrenceSpecification = (MessageOccurrenceSpecification) theEObject; + Object result = caseMessageOccurrenceSpecification(messageOccurrenceSpecification); + if (result == null) + result = caseOccurrenceSpecification(messageOccurrenceSpecification); + if (result == null) + result = caseMessageEnd(messageOccurrenceSpecification); + if (result == null) + result = caseInteractionFragment(messageOccurrenceSpecification); + if (result == null) + result = caseNamedElement(messageOccurrenceSpecification); + if (result == null) + result = caseElement(messageOccurrenceSpecification); + if (result == null) + result = caseEModelElement(messageOccurrenceSpecification); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.COMBINED_FRAGMENT : { + CombinedFragment combinedFragment = (CombinedFragment) theEObject; + Object result = caseCombinedFragment(combinedFragment); + if (result == null) + result = caseInteractionFragment(combinedFragment); + if (result == null) + result = caseNamedElement(combinedFragment); + if (result == null) + result = caseElement(combinedFragment); + if (result == null) + result = caseEModelElement(combinedFragment); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONTINUATION : { + Continuation continuation = (Continuation) theEObject; + Object result = caseContinuation(continuation); + if (result == null) + result = caseInteractionFragment(continuation); + if (result == null) + result = caseNamedElement(continuation); + if (result == null) + result = caseElement(continuation); + if (result == null) + result = caseEModelElement(continuation); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONSIDER_IGNORE_FRAGMENT : { + ConsiderIgnoreFragment considerIgnoreFragment = (ConsiderIgnoreFragment) theEObject; + Object result = caseConsiderIgnoreFragment(considerIgnoreFragment); + if (result == null) + result = caseCombinedFragment(considerIgnoreFragment); + if (result == null) + result = caseInteractionFragment(considerIgnoreFragment); + if (result == null) + result = caseNamedElement(considerIgnoreFragment); + if (result == null) + result = caseElement(considerIgnoreFragment); + if (result == null) + result = caseEModelElement(considerIgnoreFragment); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CALL_EVENT : { + CallEvent callEvent = (CallEvent) theEObject; + Object result = caseCallEvent(callEvent); + if (result == null) + result = caseMessageEvent(callEvent); + if (result == null) + result = caseEvent(callEvent); + if (result == null) + result = casePackageableElement(callEvent); + if (result == null) + result = caseNamedElement(callEvent); + if (result == null) + result = caseParameterableElement(callEvent); + if (result == null) + result = caseElement(callEvent); + if (result == null) + result = caseEModelElement(callEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CHANGE_EVENT : { + ChangeEvent changeEvent = (ChangeEvent) theEObject; + Object result = caseChangeEvent(changeEvent); + if (result == null) + result = caseEvent(changeEvent); + if (result == null) + result = casePackageableElement(changeEvent); + if (result == null) + result = caseNamedElement(changeEvent); + if (result == null) + result = caseParameterableElement(changeEvent); + if (result == null) + result = caseElement(changeEvent); + if (result == null) + result = caseEModelElement(changeEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SIGNAL_EVENT : { + SignalEvent signalEvent = (SignalEvent) theEObject; + Object result = caseSignalEvent(signalEvent); + if (result == null) + result = caseMessageEvent(signalEvent); + if (result == null) + result = caseEvent(signalEvent); + if (result == null) + result = casePackageableElement(signalEvent); + if (result == null) + result = caseNamedElement(signalEvent); + if (result == null) + result = caseParameterableElement(signalEvent); + if (result == null) + result = caseElement(signalEvent); + if (result == null) + result = caseEModelElement(signalEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ANY_RECEIVE_EVENT : { + AnyReceiveEvent anyReceiveEvent = (AnyReceiveEvent) theEObject; + Object result = caseAnyReceiveEvent(anyReceiveEvent); + if (result == null) + result = caseMessageEvent(anyReceiveEvent); + if (result == null) + result = caseEvent(anyReceiveEvent); + if (result == null) + result = casePackageableElement(anyReceiveEvent); + if (result == null) + result = caseNamedElement(anyReceiveEvent); + if (result == null) + result = caseParameterableElement(anyReceiveEvent); + if (result == null) + result = caseElement(anyReceiveEvent); + if (result == null) + result = caseEModelElement(anyReceiveEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CREATE_OBJECT_ACTION : { + CreateObjectAction createObjectAction = (CreateObjectAction) theEObject; + Object result = caseCreateObjectAction(createObjectAction); + if (result == null) + result = caseAction(createObjectAction); + if (result == null) + result = caseExecutableNode(createObjectAction); + if (result == null) + result = caseActivityNode(createObjectAction); + if (result == null) + result = caseRedefinableElement(createObjectAction); + if (result == null) + result = caseNamedElement(createObjectAction); + if (result == null) + result = caseElement(createObjectAction); + if (result == null) + result = caseEModelElement(createObjectAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DESTROY_OBJECT_ACTION : { + DestroyObjectAction destroyObjectAction = (DestroyObjectAction) theEObject; + Object result = caseDestroyObjectAction(destroyObjectAction); + if (result == null) + result = caseAction(destroyObjectAction); + if (result == null) + result = caseExecutableNode(destroyObjectAction); + if (result == null) + result = caseActivityNode(destroyObjectAction); + if (result == null) + result = caseRedefinableElement(destroyObjectAction); + if (result == null) + result = caseNamedElement(destroyObjectAction); + if (result == null) + result = caseElement(destroyObjectAction); + if (result == null) + result = caseEModelElement(destroyObjectAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TEST_IDENTITY_ACTION : { + TestIdentityAction testIdentityAction = (TestIdentityAction) theEObject; + Object result = caseTestIdentityAction(testIdentityAction); + if (result == null) + result = caseAction(testIdentityAction); + if (result == null) + result = caseExecutableNode(testIdentityAction); + if (result == null) + result = caseActivityNode(testIdentityAction); + if (result == null) + result = caseRedefinableElement(testIdentityAction); + if (result == null) + result = caseNamedElement(testIdentityAction); + if (result == null) + result = caseElement(testIdentityAction); + if (result == null) + result = caseEModelElement(testIdentityAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_SELF_ACTION : { + ReadSelfAction readSelfAction = (ReadSelfAction) theEObject; + Object result = caseReadSelfAction(readSelfAction); + if (result == null) + result = caseAction(readSelfAction); + if (result == null) + result = caseExecutableNode(readSelfAction); + if (result == null) + result = caseActivityNode(readSelfAction); + if (result == null) + result = caseRedefinableElement(readSelfAction); + if (result == null) + result = caseNamedElement(readSelfAction); + if (result == null) + result = caseElement(readSelfAction); + if (result == null) + result = caseEModelElement(readSelfAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.STRUCTURAL_FEATURE_ACTION : { + StructuralFeatureAction structuralFeatureAction = (StructuralFeatureAction) theEObject; + Object result = caseStructuralFeatureAction(structuralFeatureAction); + if (result == null) + result = caseAction(structuralFeatureAction); + if (result == null) + result = caseExecutableNode(structuralFeatureAction); + if (result == null) + result = caseActivityNode(structuralFeatureAction); + if (result == null) + result = caseRedefinableElement(structuralFeatureAction); + if (result == null) + result = caseNamedElement(structuralFeatureAction); + if (result == null) + result = caseElement(structuralFeatureAction); + if (result == null) + result = caseEModelElement(structuralFeatureAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION : { + ReadStructuralFeatureAction readStructuralFeatureAction = (ReadStructuralFeatureAction) theEObject; + Object result = caseReadStructuralFeatureAction(readStructuralFeatureAction); + if (result == null) + result = caseStructuralFeatureAction(readStructuralFeatureAction); + if (result == null) + result = caseAction(readStructuralFeatureAction); + if (result == null) + result = caseExecutableNode(readStructuralFeatureAction); + if (result == null) + result = caseActivityNode(readStructuralFeatureAction); + if (result == null) + result = caseRedefinableElement(readStructuralFeatureAction); + if (result == null) + result = caseNamedElement(readStructuralFeatureAction); + if (result == null) + result = caseElement(readStructuralFeatureAction); + if (result == null) + result = caseEModelElement(readStructuralFeatureAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION : { + WriteStructuralFeatureAction writeStructuralFeatureAction = (WriteStructuralFeatureAction) theEObject; + Object result = caseWriteStructuralFeatureAction(writeStructuralFeatureAction); + if (result == null) + result = caseStructuralFeatureAction(writeStructuralFeatureAction); + if (result == null) + result = caseAction(writeStructuralFeatureAction); + if (result == null) + result = caseExecutableNode(writeStructuralFeatureAction); + if (result == null) + result = caseActivityNode(writeStructuralFeatureAction); + if (result == null) + result = caseRedefinableElement(writeStructuralFeatureAction); + if (result == null) + result = caseNamedElement(writeStructuralFeatureAction); + if (result == null) + result = caseElement(writeStructuralFeatureAction); + if (result == null) + result = caseEModelElement(writeStructuralFeatureAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION : { + ClearStructuralFeatureAction clearStructuralFeatureAction = (ClearStructuralFeatureAction) theEObject; + Object result = caseClearStructuralFeatureAction(clearStructuralFeatureAction); + if (result == null) + result = caseStructuralFeatureAction(clearStructuralFeatureAction); + if (result == null) + result = caseAction(clearStructuralFeatureAction); + if (result == null) + result = caseExecutableNode(clearStructuralFeatureAction); + if (result == null) + result = caseActivityNode(clearStructuralFeatureAction); + if (result == null) + result = caseRedefinableElement(clearStructuralFeatureAction); + if (result == null) + result = caseNamedElement(clearStructuralFeatureAction); + if (result == null) + result = caseElement(clearStructuralFeatureAction); + if (result == null) + result = caseEModelElement(clearStructuralFeatureAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION : { + RemoveStructuralFeatureValueAction removeStructuralFeatureValueAction = (RemoveStructuralFeatureValueAction) theEObject; + Object result = caseRemoveStructuralFeatureValueAction(removeStructuralFeatureValueAction); + if (result == null) + result = caseWriteStructuralFeatureAction(removeStructuralFeatureValueAction); + if (result == null) + result = caseStructuralFeatureAction(removeStructuralFeatureValueAction); + if (result == null) + result = caseAction(removeStructuralFeatureValueAction); + if (result == null) + result = caseExecutableNode(removeStructuralFeatureValueAction); + if (result == null) + result = caseActivityNode(removeStructuralFeatureValueAction); + if (result == null) + result = caseRedefinableElement(removeStructuralFeatureValueAction); + if (result == null) + result = caseNamedElement(removeStructuralFeatureValueAction); + if (result == null) + result = caseElement(removeStructuralFeatureValueAction); + if (result == null) + result = caseEModelElement(removeStructuralFeatureValueAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION : { + AddStructuralFeatureValueAction addStructuralFeatureValueAction = (AddStructuralFeatureValueAction) theEObject; + Object result = caseAddStructuralFeatureValueAction(addStructuralFeatureValueAction); + if (result == null) + result = caseWriteStructuralFeatureAction(addStructuralFeatureValueAction); + if (result == null) + result = caseStructuralFeatureAction(addStructuralFeatureValueAction); + if (result == null) + result = caseAction(addStructuralFeatureValueAction); + if (result == null) + result = caseExecutableNode(addStructuralFeatureValueAction); + if (result == null) + result = caseActivityNode(addStructuralFeatureValueAction); + if (result == null) + result = caseRedefinableElement(addStructuralFeatureValueAction); + if (result == null) + result = caseNamedElement(addStructuralFeatureValueAction); + if (result == null) + result = caseElement(addStructuralFeatureValueAction); + if (result == null) + result = caseEModelElement(addStructuralFeatureValueAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LINK_ACTION : { + LinkAction linkAction = (LinkAction) theEObject; + Object result = caseLinkAction(linkAction); + if (result == null) + result = caseAction(linkAction); + if (result == null) + result = caseExecutableNode(linkAction); + if (result == null) + result = caseActivityNode(linkAction); + if (result == null) + result = caseRedefinableElement(linkAction); + if (result == null) + result = caseNamedElement(linkAction); + if (result == null) + result = caseElement(linkAction); + if (result == null) + result = caseEModelElement(linkAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LINK_END_DATA : { + LinkEndData linkEndData = (LinkEndData) theEObject; + Object result = caseLinkEndData(linkEndData); + if (result == null) + result = caseElement(linkEndData); + if (result == null) + result = caseEModelElement(linkEndData); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.QUALIFIER_VALUE : { + QualifierValue qualifierValue = (QualifierValue) theEObject; + Object result = caseQualifierValue(qualifierValue); + if (result == null) + result = caseElement(qualifierValue); + if (result == null) + result = caseEModelElement(qualifierValue); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_LINK_ACTION : { + ReadLinkAction readLinkAction = (ReadLinkAction) theEObject; + Object result = caseReadLinkAction(readLinkAction); + if (result == null) + result = caseLinkAction(readLinkAction); + if (result == null) + result = caseAction(readLinkAction); + if (result == null) + result = caseExecutableNode(readLinkAction); + if (result == null) + result = caseActivityNode(readLinkAction); + if (result == null) + result = caseRedefinableElement(readLinkAction); + if (result == null) + result = caseNamedElement(readLinkAction); + if (result == null) + result = caseElement(readLinkAction); + if (result == null) + result = caseEModelElement(readLinkAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LINK_END_CREATION_DATA : { + LinkEndCreationData linkEndCreationData = (LinkEndCreationData) theEObject; + Object result = caseLinkEndCreationData(linkEndCreationData); + if (result == null) + result = caseLinkEndData(linkEndCreationData); + if (result == null) + result = caseElement(linkEndCreationData); + if (result == null) + result = caseEModelElement(linkEndCreationData); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CREATE_LINK_ACTION : { + CreateLinkAction createLinkAction = (CreateLinkAction) theEObject; + Object result = caseCreateLinkAction(createLinkAction); + if (result == null) + result = caseWriteLinkAction(createLinkAction); + if (result == null) + result = caseLinkAction(createLinkAction); + if (result == null) + result = caseAction(createLinkAction); + if (result == null) + result = caseExecutableNode(createLinkAction); + if (result == null) + result = caseActivityNode(createLinkAction); + if (result == null) + result = caseRedefinableElement(createLinkAction); + if (result == null) + result = caseNamedElement(createLinkAction); + if (result == null) + result = caseElement(createLinkAction); + if (result == null) + result = caseEModelElement(createLinkAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.WRITE_LINK_ACTION : { + WriteLinkAction writeLinkAction = (WriteLinkAction) theEObject; + Object result = caseWriteLinkAction(writeLinkAction); + if (result == null) + result = caseLinkAction(writeLinkAction); + if (result == null) + result = caseAction(writeLinkAction); + if (result == null) + result = caseExecutableNode(writeLinkAction); + if (result == null) + result = caseActivityNode(writeLinkAction); + if (result == null) + result = caseRedefinableElement(writeLinkAction); + if (result == null) + result = caseNamedElement(writeLinkAction); + if (result == null) + result = caseElement(writeLinkAction); + if (result == null) + result = caseEModelElement(writeLinkAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DESTROY_LINK_ACTION : { + DestroyLinkAction destroyLinkAction = (DestroyLinkAction) theEObject; + Object result = caseDestroyLinkAction(destroyLinkAction); + if (result == null) + result = caseWriteLinkAction(destroyLinkAction); + if (result == null) + result = caseLinkAction(destroyLinkAction); + if (result == null) + result = caseAction(destroyLinkAction); + if (result == null) + result = caseExecutableNode(destroyLinkAction); + if (result == null) + result = caseActivityNode(destroyLinkAction); + if (result == null) + result = caseRedefinableElement(destroyLinkAction); + if (result == null) + result = caseNamedElement(destroyLinkAction); + if (result == null) + result = caseElement(destroyLinkAction); + if (result == null) + result = caseEModelElement(destroyLinkAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LINK_END_DESTRUCTION_DATA : { + LinkEndDestructionData linkEndDestructionData = (LinkEndDestructionData) theEObject; + Object result = caseLinkEndDestructionData(linkEndDestructionData); + if (result == null) + result = caseLinkEndData(linkEndDestructionData); + if (result == null) + result = caseElement(linkEndDestructionData); + if (result == null) + result = caseEModelElement(linkEndDestructionData); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLEAR_ASSOCIATION_ACTION : { + ClearAssociationAction clearAssociationAction = (ClearAssociationAction) theEObject; + Object result = caseClearAssociationAction(clearAssociationAction); + if (result == null) + result = caseAction(clearAssociationAction); + if (result == null) + result = caseExecutableNode(clearAssociationAction); + if (result == null) + result = caseActivityNode(clearAssociationAction); + if (result == null) + result = caseRedefinableElement(clearAssociationAction); + if (result == null) + result = caseNamedElement(clearAssociationAction); + if (result == null) + result = caseElement(clearAssociationAction); + if (result == null) + result = caseEModelElement(clearAssociationAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.BROADCAST_SIGNAL_ACTION : { + BroadcastSignalAction broadcastSignalAction = (BroadcastSignalAction) theEObject; + Object result = caseBroadcastSignalAction(broadcastSignalAction); + if (result == null) + result = caseInvocationAction(broadcastSignalAction); + if (result == null) + result = caseAction(broadcastSignalAction); + if (result == null) + result = caseExecutableNode(broadcastSignalAction); + if (result == null) + result = caseActivityNode(broadcastSignalAction); + if (result == null) + result = caseRedefinableElement(broadcastSignalAction); + if (result == null) + result = caseNamedElement(broadcastSignalAction); + if (result == null) + result = caseElement(broadcastSignalAction); + if (result == null) + result = caseEModelElement(broadcastSignalAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INVOCATION_ACTION : { + InvocationAction invocationAction = (InvocationAction) theEObject; + Object result = caseInvocationAction(invocationAction); + if (result == null) + result = caseAction(invocationAction); + if (result == null) + result = caseExecutableNode(invocationAction); + if (result == null) + result = caseActivityNode(invocationAction); + if (result == null) + result = caseRedefinableElement(invocationAction); + if (result == null) + result = caseNamedElement(invocationAction); + if (result == null) + result = caseElement(invocationAction); + if (result == null) + result = caseEModelElement(invocationAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SEND_OBJECT_ACTION : { + SendObjectAction sendObjectAction = (SendObjectAction) theEObject; + Object result = caseSendObjectAction(sendObjectAction); + if (result == null) + result = caseInvocationAction(sendObjectAction); + if (result == null) + result = caseAction(sendObjectAction); + if (result == null) + result = caseExecutableNode(sendObjectAction); + if (result == null) + result = caseActivityNode(sendObjectAction); + if (result == null) + result = caseRedefinableElement(sendObjectAction); + if (result == null) + result = caseNamedElement(sendObjectAction); + if (result == null) + result = caseElement(sendObjectAction); + if (result == null) + result = caseEModelElement(sendObjectAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.VALUE_SPECIFICATION_ACTION : { + ValueSpecificationAction valueSpecificationAction = (ValueSpecificationAction) theEObject; + Object result = caseValueSpecificationAction(valueSpecificationAction); + if (result == null) + result = caseAction(valueSpecificationAction); + if (result == null) + result = caseExecutableNode(valueSpecificationAction); + if (result == null) + result = caseActivityNode(valueSpecificationAction); + if (result == null) + result = caseRedefinableElement(valueSpecificationAction); + if (result == null) + result = caseNamedElement(valueSpecificationAction); + if (result == null) + result = caseElement(valueSpecificationAction); + if (result == null) + result = caseEModelElement(valueSpecificationAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TIME_EXPRESSION : { + TimeExpression timeExpression = (TimeExpression) theEObject; + Object result = caseTimeExpression(timeExpression); + if (result == null) + result = caseValueSpecification(timeExpression); + if (result == null) + result = casePackageableElement(timeExpression); + if (result == null) + result = caseTypedElement(timeExpression); + if (result == null) + result = caseNamedElement(timeExpression); + if (result == null) + result = caseParameterableElement(timeExpression); + if (result == null) + result = caseElement(timeExpression); + if (result == null) + result = caseEModelElement(timeExpression); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DURATION : { + Duration duration = (Duration) theEObject; + Object result = caseDuration(duration); + if (result == null) + result = caseValueSpecification(duration); + if (result == null) + result = casePackageableElement(duration); + if (result == null) + result = caseTypedElement(duration); + if (result == null) + result = caseNamedElement(duration); + if (result == null) + result = caseParameterableElement(duration); + if (result == null) + result = caseElement(duration); + if (result == null) + result = caseEModelElement(duration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TIME_OBSERVATION_ACTION : { + TimeObservationAction timeObservationAction = (TimeObservationAction) theEObject; + Object result = caseTimeObservationAction(timeObservationAction); + if (result == null) + result = caseWriteStructuralFeatureAction(timeObservationAction); + if (result == null) + result = caseStructuralFeatureAction(timeObservationAction); + if (result == null) + result = caseAction(timeObservationAction); + if (result == null) + result = caseExecutableNode(timeObservationAction); + if (result == null) + result = caseActivityNode(timeObservationAction); + if (result == null) + result = caseRedefinableElement(timeObservationAction); + if (result == null) + result = caseNamedElement(timeObservationAction); + if (result == null) + result = caseElement(timeObservationAction); + if (result == null) + result = caseEModelElement(timeObservationAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.VALUE_PIN : { + ValuePin valuePin = (ValuePin) theEObject; + Object result = caseValuePin(valuePin); + if (result == null) + result = caseInputPin(valuePin); + if (result == null) + result = casePin(valuePin); + if (result == null) + result = caseObjectNode(valuePin); + if (result == null) + result = caseActivityNode(valuePin); + if (result == null) + result = caseTypedElement(valuePin); + if (result == null) + result = caseRedefinableElement(valuePin); + if (result == null) + result = caseNamedElement(valuePin); + if (result == null) + result = caseElement(valuePin); + if (result == null) + result = caseEModelElement(valuePin); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DURATION_INTERVAL : { + DurationInterval durationInterval = (DurationInterval) theEObject; + Object result = caseDurationInterval(durationInterval); + if (result == null) + result = caseInterval(durationInterval); + if (result == null) + result = caseValueSpecification(durationInterval); + if (result == null) + result = casePackageableElement(durationInterval); + if (result == null) + result = caseTypedElement(durationInterval); + if (result == null) + result = caseNamedElement(durationInterval); + if (result == null) + result = caseParameterableElement(durationInterval); + if (result == null) + result = caseElement(durationInterval); + if (result == null) + result = caseEModelElement(durationInterval); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERVAL : { + Interval interval = (Interval) theEObject; + Object result = caseInterval(interval); + if (result == null) + result = caseValueSpecification(interval); + if (result == null) + result = casePackageableElement(interval); + if (result == null) + result = caseTypedElement(interval); + if (result == null) + result = caseNamedElement(interval); + if (result == null) + result = caseParameterableElement(interval); + if (result == null) + result = caseElement(interval); + if (result == null) + result = caseEModelElement(interval); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TIME_CONSTRAINT : { + TimeConstraint timeConstraint = (TimeConstraint) theEObject; + Object result = caseTimeConstraint(timeConstraint); + if (result == null) + result = caseIntervalConstraint(timeConstraint); + if (result == null) + result = caseConstraint(timeConstraint); + if (result == null) + result = casePackageableElement(timeConstraint); + if (result == null) + result = caseNamedElement(timeConstraint); + if (result == null) + result = caseParameterableElement(timeConstraint); + if (result == null) + result = caseElement(timeConstraint); + if (result == null) + result = caseEModelElement(timeConstraint); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INTERVAL_CONSTRAINT : { + IntervalConstraint intervalConstraint = (IntervalConstraint) theEObject; + Object result = caseIntervalConstraint(intervalConstraint); + if (result == null) + result = caseConstraint(intervalConstraint); + if (result == null) + result = casePackageableElement(intervalConstraint); + if (result == null) + result = caseNamedElement(intervalConstraint); + if (result == null) + result = caseParameterableElement(intervalConstraint); + if (result == null) + result = caseElement(intervalConstraint); + if (result == null) + result = caseEModelElement(intervalConstraint); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TIME_INTERVAL : { + TimeInterval timeInterval = (TimeInterval) theEObject; + Object result = caseTimeInterval(timeInterval); + if (result == null) + result = caseInterval(timeInterval); + if (result == null) + result = caseValueSpecification(timeInterval); + if (result == null) + result = casePackageableElement(timeInterval); + if (result == null) + result = caseTypedElement(timeInterval); + if (result == null) + result = caseNamedElement(timeInterval); + if (result == null) + result = caseParameterableElement(timeInterval); + if (result == null) + result = caseElement(timeInterval); + if (result == null) + result = caseEModelElement(timeInterval); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DURATION_OBSERVATION_ACTION : { + DurationObservationAction durationObservationAction = (DurationObservationAction) theEObject; + Object result = caseDurationObservationAction(durationObservationAction); + if (result == null) + result = caseWriteStructuralFeatureAction(durationObservationAction); + if (result == null) + result = caseStructuralFeatureAction(durationObservationAction); + if (result == null) + result = caseAction(durationObservationAction); + if (result == null) + result = caseExecutableNode(durationObservationAction); + if (result == null) + result = caseActivityNode(durationObservationAction); + if (result == null) + result = caseRedefinableElement(durationObservationAction); + if (result == null) + result = caseNamedElement(durationObservationAction); + if (result == null) + result = caseElement(durationObservationAction); + if (result == null) + result = caseEModelElement(durationObservationAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DURATION_CONSTRAINT : { + DurationConstraint durationConstraint = (DurationConstraint) theEObject; + Object result = caseDurationConstraint(durationConstraint); + if (result == null) + result = caseIntervalConstraint(durationConstraint); + if (result == null) + result = caseConstraint(durationConstraint); + if (result == null) + result = casePackageableElement(durationConstraint); + if (result == null) + result = caseNamedElement(durationConstraint); + if (result == null) + result = caseParameterableElement(durationConstraint); + if (result == null) + result = caseElement(durationConstraint); + if (result == null) + result = caseEModelElement(durationConstraint); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OPAQUE_ACTION : { + OpaqueAction opaqueAction = (OpaqueAction) theEObject; + Object result = caseOpaqueAction(opaqueAction); + if (result == null) + result = caseAction(opaqueAction); + if (result == null) + result = caseExecutableNode(opaqueAction); + if (result == null) + result = caseActivityNode(opaqueAction); + if (result == null) + result = caseRedefinableElement(opaqueAction); + if (result == null) + result = caseNamedElement(opaqueAction); + if (result == null) + result = caseElement(opaqueAction); + if (result == null) + result = caseEModelElement(opaqueAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CALL_ACTION : { + CallAction callAction = (CallAction) theEObject; + Object result = caseCallAction(callAction); + if (result == null) + result = caseInvocationAction(callAction); + if (result == null) + result = caseAction(callAction); + if (result == null) + result = caseExecutableNode(callAction); + if (result == null) + result = caseActivityNode(callAction); + if (result == null) + result = caseRedefinableElement(callAction); + if (result == null) + result = caseNamedElement(callAction); + if (result == null) + result = caseElement(callAction); + if (result == null) + result = caseEModelElement(callAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SEND_SIGNAL_ACTION : { + SendSignalAction sendSignalAction = (SendSignalAction) theEObject; + Object result = caseSendSignalAction(sendSignalAction); + if (result == null) + result = caseInvocationAction(sendSignalAction); + if (result == null) + result = caseAction(sendSignalAction); + if (result == null) + result = caseExecutableNode(sendSignalAction); + if (result == null) + result = caseActivityNode(sendSignalAction); + if (result == null) + result = caseRedefinableElement(sendSignalAction); + if (result == null) + result = caseNamedElement(sendSignalAction); + if (result == null) + result = caseElement(sendSignalAction); + if (result == null) + result = caseEModelElement(sendSignalAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CALL_OPERATION_ACTION : { + CallOperationAction callOperationAction = (CallOperationAction) theEObject; + Object result = caseCallOperationAction(callOperationAction); + if (result == null) + result = caseCallAction(callOperationAction); + if (result == null) + result = caseInvocationAction(callOperationAction); + if (result == null) + result = caseAction(callOperationAction); + if (result == null) + result = caseExecutableNode(callOperationAction); + if (result == null) + result = caseActivityNode(callOperationAction); + if (result == null) + result = caseRedefinableElement(callOperationAction); + if (result == null) + result = caseNamedElement(callOperationAction); + if (result == null) + result = caseElement(callOperationAction); + if (result == null) + result = caseEModelElement(callOperationAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CALL_BEHAVIOR_ACTION : { + CallBehaviorAction callBehaviorAction = (CallBehaviorAction) theEObject; + Object result = caseCallBehaviorAction(callBehaviorAction); + if (result == null) + result = caseCallAction(callBehaviorAction); + if (result == null) + result = caseInvocationAction(callBehaviorAction); + if (result == null) + result = caseAction(callBehaviorAction); + if (result == null) + result = caseExecutableNode(callBehaviorAction); + if (result == null) + result = caseActivityNode(callBehaviorAction); + if (result == null) + result = caseRedefinableElement(callBehaviorAction); + if (result == null) + result = caseNamedElement(callBehaviorAction); + if (result == null) + result = caseElement(callBehaviorAction); + if (result == null) + result = caseEModelElement(callBehaviorAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INFORMATION_ITEM : { + InformationItem informationItem = (InformationItem) theEObject; + Object result = caseInformationItem(informationItem); + if (result == null) + result = caseClassifier(informationItem); + if (result == null) + result = caseNamespace(informationItem); + if (result == null) + result = caseRedefinableElement(informationItem); + if (result == null) + result = caseType(informationItem); + if (result == null) + result = caseTemplateableElement(informationItem); + if (result == null) + result = caseNamedElement(informationItem); + if (result == null) + result = casePackageableElement(informationItem); + if (result == null) + result = caseElement(informationItem); + if (result == null) + result = caseParameterableElement(informationItem); + if (result == null) + result = caseEModelElement(informationItem); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INFORMATION_FLOW : { + InformationFlow informationFlow = (InformationFlow) theEObject; + Object result = caseInformationFlow(informationFlow); + if (result == null) + result = casePackageableElement(informationFlow); + if (result == null) + result = caseDirectedRelationship(informationFlow); + if (result == null) + result = caseNamedElement(informationFlow); + if (result == null) + result = caseParameterableElement(informationFlow); + if (result == null) + result = caseRelationship(informationFlow); + if (result == null) + result = caseElement(informationFlow); + if (result == null) + result = caseEModelElement(informationFlow); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MODEL : { + Model model = (Model) theEObject; + Object result = caseModel(model); + if (result == null) + result = casePackage(model); + if (result == null) + result = caseNamespace(model); + if (result == null) + result = casePackageableElement(model); + if (result == null) + result = caseTemplateableElement(model); + if (result == null) + result = caseNamedElement(model); + if (result == null) + result = caseParameterableElement(model); + if (result == null) + result = caseElement(model); + if (result == null) + result = caseEModelElement(model); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.VARIABLE_ACTION : { + VariableAction variableAction = (VariableAction) theEObject; + Object result = caseVariableAction(variableAction); + if (result == null) + result = caseAction(variableAction); + if (result == null) + result = caseExecutableNode(variableAction); + if (result == null) + result = caseActivityNode(variableAction); + if (result == null) + result = caseRedefinableElement(variableAction); + if (result == null) + result = caseNamedElement(variableAction); + if (result == null) + result = caseElement(variableAction); + if (result == null) + result = caseEModelElement(variableAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_VARIABLE_ACTION : { + ReadVariableAction readVariableAction = (ReadVariableAction) theEObject; + Object result = caseReadVariableAction(readVariableAction); + if (result == null) + result = caseVariableAction(readVariableAction); + if (result == null) + result = caseAction(readVariableAction); + if (result == null) + result = caseExecutableNode(readVariableAction); + if (result == null) + result = caseActivityNode(readVariableAction); + if (result == null) + result = caseRedefinableElement(readVariableAction); + if (result == null) + result = caseNamedElement(readVariableAction); + if (result == null) + result = caseElement(readVariableAction); + if (result == null) + result = caseEModelElement(readVariableAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.WRITE_VARIABLE_ACTION : { + WriteVariableAction writeVariableAction = (WriteVariableAction) theEObject; + Object result = caseWriteVariableAction(writeVariableAction); + if (result == null) + result = caseVariableAction(writeVariableAction); + if (result == null) + result = caseAction(writeVariableAction); + if (result == null) + result = caseExecutableNode(writeVariableAction); + if (result == null) + result = caseActivityNode(writeVariableAction); + if (result == null) + result = caseRedefinableElement(writeVariableAction); + if (result == null) + result = caseNamedElement(writeVariableAction); + if (result == null) + result = caseElement(writeVariableAction); + if (result == null) + result = caseEModelElement(writeVariableAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLEAR_VARIABLE_ACTION : { + ClearVariableAction clearVariableAction = (ClearVariableAction) theEObject; + Object result = caseClearVariableAction(clearVariableAction); + if (result == null) + result = caseVariableAction(clearVariableAction); + if (result == null) + result = caseAction(clearVariableAction); + if (result == null) + result = caseExecutableNode(clearVariableAction); + if (result == null) + result = caseActivityNode(clearVariableAction); + if (result == null) + result = caseRedefinableElement(clearVariableAction); + if (result == null) + result = caseNamedElement(clearVariableAction); + if (result == null) + result = caseElement(clearVariableAction); + if (result == null) + result = caseEModelElement(clearVariableAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ADD_VARIABLE_VALUE_ACTION : { + AddVariableValueAction addVariableValueAction = (AddVariableValueAction) theEObject; + Object result = caseAddVariableValueAction(addVariableValueAction); + if (result == null) + result = caseWriteVariableAction(addVariableValueAction); + if (result == null) + result = caseVariableAction(addVariableValueAction); + if (result == null) + result = caseAction(addVariableValueAction); + if (result == null) + result = caseExecutableNode(addVariableValueAction); + if (result == null) + result = caseActivityNode(addVariableValueAction); + if (result == null) + result = caseRedefinableElement(addVariableValueAction); + if (result == null) + result = caseNamedElement(addVariableValueAction); + if (result == null) + result = caseElement(addVariableValueAction); + if (result == null) + result = caseEModelElement(addVariableValueAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION : { + RemoveVariableValueAction removeVariableValueAction = (RemoveVariableValueAction) theEObject; + Object result = caseRemoveVariableValueAction(removeVariableValueAction); + if (result == null) + result = caseWriteVariableAction(removeVariableValueAction); + if (result == null) + result = caseVariableAction(removeVariableValueAction); + if (result == null) + result = caseAction(removeVariableValueAction); + if (result == null) + result = caseExecutableNode(removeVariableValueAction); + if (result == null) + result = caseActivityNode(removeVariableValueAction); + if (result == null) + result = caseRedefinableElement(removeVariableValueAction); + if (result == null) + result = caseNamedElement(removeVariableValueAction); + if (result == null) + result = caseElement(removeVariableValueAction); + if (result == null) + result = caseEModelElement(removeVariableValueAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.RAISE_EXCEPTION_ACTION : { + RaiseExceptionAction raiseExceptionAction = (RaiseExceptionAction) theEObject; + Object result = caseRaiseExceptionAction(raiseExceptionAction); + if (result == null) + result = caseAction(raiseExceptionAction); + if (result == null) + result = caseExecutableNode(raiseExceptionAction); + if (result == null) + result = caseActivityNode(raiseExceptionAction); + if (result == null) + result = caseRedefinableElement(raiseExceptionAction); + if (result == null) + result = caseNamedElement(raiseExceptionAction); + if (result == null) + result = caseElement(raiseExceptionAction); + if (result == null) + result = caseEModelElement(raiseExceptionAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTION_INPUT_PIN : { + ActionInputPin actionInputPin = (ActionInputPin) theEObject; + Object result = caseActionInputPin(actionInputPin); + if (result == null) + result = caseInputPin(actionInputPin); + if (result == null) + result = casePin(actionInputPin); + if (result == null) + result = caseObjectNode(actionInputPin); + if (result == null) + result = caseActivityNode(actionInputPin); + if (result == null) + result = caseTypedElement(actionInputPin); + if (result == null) + result = caseRedefinableElement(actionInputPin); + if (result == null) + result = caseNamedElement(actionInputPin); + if (result == null) + result = caseElement(actionInputPin); + if (result == null) + result = caseEModelElement(actionInputPin); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_EXTENT_ACTION : { + ReadExtentAction readExtentAction = (ReadExtentAction) theEObject; + Object result = caseReadExtentAction(readExtentAction); + if (result == null) + result = caseAction(readExtentAction); + if (result == null) + result = caseExecutableNode(readExtentAction); + if (result == null) + result = caseActivityNode(readExtentAction); + if (result == null) + result = caseRedefinableElement(readExtentAction); + if (result == null) + result = caseNamedElement(readExtentAction); + if (result == null) + result = caseElement(readExtentAction); + if (result == null) + result = caseEModelElement(readExtentAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.RECLASSIFY_OBJECT_ACTION : { + ReclassifyObjectAction reclassifyObjectAction = (ReclassifyObjectAction) theEObject; + Object result = caseReclassifyObjectAction(reclassifyObjectAction); + if (result == null) + result = caseAction(reclassifyObjectAction); + if (result == null) + result = caseExecutableNode(reclassifyObjectAction); + if (result == null) + result = caseActivityNode(reclassifyObjectAction); + if (result == null) + result = caseRedefinableElement(reclassifyObjectAction); + if (result == null) + result = caseNamedElement(reclassifyObjectAction); + if (result == null) + result = caseElement(reclassifyObjectAction); + if (result == null) + result = caseEModelElement(reclassifyObjectAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION : { + ReadIsClassifiedObjectAction readIsClassifiedObjectAction = (ReadIsClassifiedObjectAction) theEObject; + Object result = caseReadIsClassifiedObjectAction(readIsClassifiedObjectAction); + if (result == null) + result = caseAction(readIsClassifiedObjectAction); + if (result == null) + result = caseExecutableNode(readIsClassifiedObjectAction); + if (result == null) + result = caseActivityNode(readIsClassifiedObjectAction); + if (result == null) + result = caseRedefinableElement(readIsClassifiedObjectAction); + if (result == null) + result = caseNamedElement(readIsClassifiedObjectAction); + if (result == null) + result = caseElement(readIsClassifiedObjectAction); + if (result == null) + result = caseEModelElement(readIsClassifiedObjectAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION : { + StartClassifierBehaviorAction startClassifierBehaviorAction = (StartClassifierBehaviorAction) theEObject; + Object result = caseStartClassifierBehaviorAction(startClassifierBehaviorAction); + if (result == null) + result = caseAction(startClassifierBehaviorAction); + if (result == null) + result = caseExecutableNode(startClassifierBehaviorAction); + if (result == null) + result = caseActivityNode(startClassifierBehaviorAction); + if (result == null) + result = caseRedefinableElement(startClassifierBehaviorAction); + if (result == null) + result = caseNamedElement(startClassifierBehaviorAction); + if (result == null) + result = caseElement(startClassifierBehaviorAction); + if (result == null) + result = caseEModelElement(startClassifierBehaviorAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_LINK_OBJECT_END_ACTION : { + ReadLinkObjectEndAction readLinkObjectEndAction = (ReadLinkObjectEndAction) theEObject; + Object result = caseReadLinkObjectEndAction(readLinkObjectEndAction); + if (result == null) + result = caseAction(readLinkObjectEndAction); + if (result == null) + result = caseExecutableNode(readLinkObjectEndAction); + if (result == null) + result = caseActivityNode(readLinkObjectEndAction); + if (result == null) + result = caseRedefinableElement(readLinkObjectEndAction); + if (result == null) + result = caseNamedElement(readLinkObjectEndAction); + if (result == null) + result = caseElement(readLinkObjectEndAction); + if (result == null) + result = caseEModelElement(readLinkObjectEndAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION : { + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction = (ReadLinkObjectEndQualifierAction) theEObject; + Object result = caseReadLinkObjectEndQualifierAction(readLinkObjectEndQualifierAction); + if (result == null) + result = caseAction(readLinkObjectEndQualifierAction); + if (result == null) + result = caseExecutableNode(readLinkObjectEndQualifierAction); + if (result == null) + result = caseActivityNode(readLinkObjectEndQualifierAction); + if (result == null) + result = caseRedefinableElement(readLinkObjectEndQualifierAction); + if (result == null) + result = caseNamedElement(readLinkObjectEndQualifierAction); + if (result == null) + result = caseElement(readLinkObjectEndQualifierAction); + if (result == null) + result = caseEModelElement(readLinkObjectEndQualifierAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CREATE_LINK_OBJECT_ACTION : { + CreateLinkObjectAction createLinkObjectAction = (CreateLinkObjectAction) theEObject; + Object result = caseCreateLinkObjectAction(createLinkObjectAction); + if (result == null) + result = caseCreateLinkAction(createLinkObjectAction); + if (result == null) + result = caseWriteLinkAction(createLinkObjectAction); + if (result == null) + result = caseLinkAction(createLinkObjectAction); + if (result == null) + result = caseAction(createLinkObjectAction); + if (result == null) + result = caseExecutableNode(createLinkObjectAction); + if (result == null) + result = caseActivityNode(createLinkObjectAction); + if (result == null) + result = caseRedefinableElement(createLinkObjectAction); + if (result == null) + result = caseNamedElement(createLinkObjectAction); + if (result == null) + result = caseElement(createLinkObjectAction); + if (result == null) + result = caseEModelElement(createLinkObjectAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACCEPT_EVENT_ACTION : { + AcceptEventAction acceptEventAction = (AcceptEventAction) theEObject; + Object result = caseAcceptEventAction(acceptEventAction); + if (result == null) + result = caseAction(acceptEventAction); + if (result == null) + result = caseExecutableNode(acceptEventAction); + if (result == null) + result = caseActivityNode(acceptEventAction); + if (result == null) + result = caseRedefinableElement(acceptEventAction); + if (result == null) + result = caseNamedElement(acceptEventAction); + if (result == null) + result = caseElement(acceptEventAction); + if (result == null) + result = caseEModelElement(acceptEventAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACCEPT_CALL_ACTION : { + AcceptCallAction acceptCallAction = (AcceptCallAction) theEObject; + Object result = caseAcceptCallAction(acceptCallAction); + if (result == null) + result = caseAcceptEventAction(acceptCallAction); + if (result == null) + result = caseAction(acceptCallAction); + if (result == null) + result = caseExecutableNode(acceptCallAction); + if (result == null) + result = caseActivityNode(acceptCallAction); + if (result == null) + result = caseRedefinableElement(acceptCallAction); + if (result == null) + result = caseNamedElement(acceptCallAction); + if (result == null) + result = caseElement(acceptCallAction); + if (result == null) + result = caseEModelElement(acceptCallAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.REPLY_ACTION : { + ReplyAction replyAction = (ReplyAction) theEObject; + Object result = caseReplyAction(replyAction); + if (result == null) + result = caseAction(replyAction); + if (result == null) + result = caseExecutableNode(replyAction); + if (result == null) + result = caseActivityNode(replyAction); + if (result == null) + result = caseRedefinableElement(replyAction); + if (result == null) + result = caseNamedElement(replyAction); + if (result == null) + result = caseElement(replyAction); + if (result == null) + result = caseEModelElement(replyAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.UNMARSHALL_ACTION : { + UnmarshallAction unmarshallAction = (UnmarshallAction) theEObject; + Object result = caseUnmarshallAction(unmarshallAction); + if (result == null) + result = caseAction(unmarshallAction); + if (result == null) + result = caseExecutableNode(unmarshallAction); + if (result == null) + result = caseActivityNode(unmarshallAction); + if (result == null) + result = caseRedefinableElement(unmarshallAction); + if (result == null) + result = caseNamedElement(unmarshallAction); + if (result == null) + result = caseElement(unmarshallAction); + if (result == null) + result = caseEModelElement(unmarshallAction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONTROL_NODE : { + ControlNode controlNode = (ControlNode) theEObject; + Object result = caseControlNode(controlNode); + if (result == null) + result = caseActivityNode(controlNode); + if (result == null) + result = caseRedefinableElement(controlNode); + if (result == null) + result = caseNamedElement(controlNode); + if (result == null) + result = caseElement(controlNode); + if (result == null) + result = caseEModelElement(controlNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONTROL_FLOW : { + ControlFlow controlFlow = (ControlFlow) theEObject; + Object result = caseControlFlow(controlFlow); + if (result == null) + result = caseActivityEdge(controlFlow); + if (result == null) + result = caseRedefinableElement(controlFlow); + if (result == null) + result = caseNamedElement(controlFlow); + if (result == null) + result = caseElement(controlFlow); + if (result == null) + result = caseEModelElement(controlFlow); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.INITIAL_NODE : { + InitialNode initialNode = (InitialNode) theEObject; + Object result = caseInitialNode(initialNode); + if (result == null) + result = caseControlNode(initialNode); + if (result == null) + result = caseActivityNode(initialNode); + if (result == null) + result = caseRedefinableElement(initialNode); + if (result == null) + result = caseNamedElement(initialNode); + if (result == null) + result = caseElement(initialNode); + if (result == null) + result = caseEModelElement(initialNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY_PARAMETER_NODE : { + ActivityParameterNode activityParameterNode = (ActivityParameterNode) theEObject; + Object result = caseActivityParameterNode(activityParameterNode); + if (result == null) + result = caseObjectNode(activityParameterNode); + if (result == null) + result = caseActivityNode(activityParameterNode); + if (result == null) + result = caseTypedElement(activityParameterNode); + if (result == null) + result = caseRedefinableElement(activityParameterNode); + if (result == null) + result = caseNamedElement(activityParameterNode); + if (result == null) + result = caseElement(activityParameterNode); + if (result == null) + result = caseEModelElement(activityParameterNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.FORK_NODE : { + ForkNode forkNode = (ForkNode) theEObject; + Object result = caseForkNode(forkNode); + if (result == null) + result = caseControlNode(forkNode); + if (result == null) + result = caseActivityNode(forkNode); + if (result == null) + result = caseRedefinableElement(forkNode); + if (result == null) + result = caseNamedElement(forkNode); + if (result == null) + result = caseElement(forkNode); + if (result == null) + result = caseEModelElement(forkNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.FLOW_FINAL_NODE : { + FlowFinalNode flowFinalNode = (FlowFinalNode) theEObject; + Object result = caseFlowFinalNode(flowFinalNode); + if (result == null) + result = caseFinalNode(flowFinalNode); + if (result == null) + result = caseControlNode(flowFinalNode); + if (result == null) + result = caseActivityNode(flowFinalNode); + if (result == null) + result = caseRedefinableElement(flowFinalNode); + if (result == null) + result = caseNamedElement(flowFinalNode); + if (result == null) + result = caseElement(flowFinalNode); + if (result == null) + result = caseEModelElement(flowFinalNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.FINAL_NODE : { + FinalNode finalNode = (FinalNode) theEObject; + Object result = caseFinalNode(finalNode); + if (result == null) + result = caseControlNode(finalNode); + if (result == null) + result = caseActivityNode(finalNode); + if (result == null) + result = caseRedefinableElement(finalNode); + if (result == null) + result = caseNamedElement(finalNode); + if (result == null) + result = caseElement(finalNode); + if (result == null) + result = caseEModelElement(finalNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CENTRAL_BUFFER_NODE : { + CentralBufferNode centralBufferNode = (CentralBufferNode) theEObject; + Object result = caseCentralBufferNode(centralBufferNode); + if (result == null) + result = caseObjectNode(centralBufferNode); + if (result == null) + result = caseActivityNode(centralBufferNode); + if (result == null) + result = caseTypedElement(centralBufferNode); + if (result == null) + result = caseRedefinableElement(centralBufferNode); + if (result == null) + result = caseNamedElement(centralBufferNode); + if (result == null) + result = caseElement(centralBufferNode); + if (result == null) + result = caseEModelElement(centralBufferNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.MERGE_NODE : { + MergeNode mergeNode = (MergeNode) theEObject; + Object result = caseMergeNode(mergeNode); + if (result == null) + result = caseControlNode(mergeNode); + if (result == null) + result = caseActivityNode(mergeNode); + if (result == null) + result = caseRedefinableElement(mergeNode); + if (result == null) + result = caseNamedElement(mergeNode); + if (result == null) + result = caseElement(mergeNode); + if (result == null) + result = caseEModelElement(mergeNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DECISION_NODE : { + DecisionNode decisionNode = (DecisionNode) theEObject; + Object result = caseDecisionNode(decisionNode); + if (result == null) + result = caseControlNode(decisionNode); + if (result == null) + result = caseActivityNode(decisionNode); + if (result == null) + result = caseRedefinableElement(decisionNode); + if (result == null) + result = caseNamedElement(decisionNode); + if (result == null) + result = caseElement(decisionNode); + if (result == null) + result = caseEModelElement(decisionNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ACTIVITY_FINAL_NODE : { + ActivityFinalNode activityFinalNode = (ActivityFinalNode) theEObject; + Object result = caseActivityFinalNode(activityFinalNode); + if (result == null) + result = caseFinalNode(activityFinalNode); + if (result == null) + result = caseControlNode(activityFinalNode); + if (result == null) + result = caseActivityNode(activityFinalNode); + if (result == null) + result = caseRedefinableElement(activityFinalNode); + if (result == null) + result = caseNamedElement(activityFinalNode); + if (result == null) + result = caseElement(activityFinalNode); + if (result == null) + result = caseEModelElement(activityFinalNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.JOIN_NODE : { + JoinNode joinNode = (JoinNode) theEObject; + Object result = caseJoinNode(joinNode); + if (result == null) + result = caseControlNode(joinNode); + if (result == null) + result = caseActivityNode(joinNode); + if (result == null) + result = caseRedefinableElement(joinNode); + if (result == null) + result = caseNamedElement(joinNode); + if (result == null) + result = caseElement(joinNode); + if (result == null) + result = caseEModelElement(joinNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DATA_STORE_NODE : { + DataStoreNode dataStoreNode = (DataStoreNode) theEObject; + Object result = caseDataStoreNode(dataStoreNode); + if (result == null) + result = caseCentralBufferNode(dataStoreNode); + if (result == null) + result = caseObjectNode(dataStoreNode); + if (result == null) + result = caseActivityNode(dataStoreNode); + if (result == null) + result = caseTypedElement(dataStoreNode); + if (result == null) + result = caseRedefinableElement(dataStoreNode); + if (result == null) + result = caseNamedElement(dataStoreNode); + if (result == null) + result = caseElement(dataStoreNode); + if (result == null) + result = caseEModelElement(dataStoreNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.OBJECT_FLOW : { + ObjectFlow objectFlow = (ObjectFlow) theEObject; + Object result = caseObjectFlow(objectFlow); + if (result == null) + result = caseActivityEdge(objectFlow); + if (result == null) + result = caseRedefinableElement(objectFlow); + if (result == null) + result = caseNamedElement(objectFlow); + if (result == null) + result = caseElement(objectFlow); + if (result == null) + result = caseEModelElement(objectFlow); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.SEQUENCE_NODE : { + SequenceNode sequenceNode = (SequenceNode) theEObject; + Object result = caseSequenceNode(sequenceNode); + if (result == null) + result = caseStructuredActivityNode(sequenceNode); + if (result == null) + result = caseAction(sequenceNode); + if (result == null) + result = caseNamespace(sequenceNode); + if (result == null) + result = caseActivityGroup(sequenceNode); + if (result == null) + result = caseExecutableNode(sequenceNode); + if (result == null) + result = caseNamedElement(sequenceNode); + if (result == null) + result = caseElement(sequenceNode); + if (result == null) + result = caseActivityNode(sequenceNode); + if (result == null) + result = caseEModelElement(sequenceNode); + if (result == null) + result = caseRedefinableElement(sequenceNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CONDITIONAL_NODE : { + ConditionalNode conditionalNode = (ConditionalNode) theEObject; + Object result = caseConditionalNode(conditionalNode); + if (result == null) + result = caseStructuredActivityNode(conditionalNode); + if (result == null) + result = caseAction(conditionalNode); + if (result == null) + result = caseNamespace(conditionalNode); + if (result == null) + result = caseActivityGroup(conditionalNode); + if (result == null) + result = caseExecutableNode(conditionalNode); + if (result == null) + result = caseNamedElement(conditionalNode); + if (result == null) + result = caseElement(conditionalNode); + if (result == null) + result = caseActivityNode(conditionalNode); + if (result == null) + result = caseEModelElement(conditionalNode); + if (result == null) + result = caseRedefinableElement(conditionalNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.CLAUSE : { + Clause clause = (Clause) theEObject; + Object result = caseClause(clause); + if (result == null) + result = caseElement(clause); + if (result == null) + result = caseEModelElement(clause); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.LOOP_NODE : { + LoopNode loopNode = (LoopNode) theEObject; + Object result = caseLoopNode(loopNode); + if (result == null) + result = caseStructuredActivityNode(loopNode); + if (result == null) + result = caseAction(loopNode); + if (result == null) + result = caseNamespace(loopNode); + if (result == null) + result = caseActivityGroup(loopNode); + if (result == null) + result = caseExecutableNode(loopNode); + if (result == null) + result = caseNamedElement(loopNode); + if (result == null) + result = caseElement(loopNode); + if (result == null) + result = caseActivityNode(loopNode); + if (result == null) + result = caseEModelElement(loopNode); + if (result == null) + result = caseRedefinableElement(loopNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXPANSION_NODE : { + ExpansionNode expansionNode = (ExpansionNode) theEObject; + Object result = caseExpansionNode(expansionNode); + if (result == null) + result = caseObjectNode(expansionNode); + if (result == null) + result = caseActivityNode(expansionNode); + if (result == null) + result = caseTypedElement(expansionNode); + if (result == null) + result = caseRedefinableElement(expansionNode); + if (result == null) + result = caseNamedElement(expansionNode); + if (result == null) + result = caseElement(expansionNode); + if (result == null) + result = caseEModelElement(expansionNode); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXPANSION_REGION : { + ExpansionRegion expansionRegion = (ExpansionRegion) theEObject; + Object result = caseExpansionRegion(expansionRegion); + if (result == null) + result = caseStructuredActivityNode(expansionRegion); + if (result == null) + result = caseAction(expansionRegion); + if (result == null) + result = caseNamespace(expansionRegion); + if (result == null) + result = caseActivityGroup(expansionRegion); + if (result == null) + result = caseExecutableNode(expansionRegion); + if (result == null) + result = caseNamedElement(expansionRegion); + if (result == null) + result = caseElement(expansionRegion); + if (result == null) + result = caseActivityNode(expansionRegion); + if (result == null) + result = caseEModelElement(expansionRegion); + if (result == null) + result = caseRedefinableElement(expansionRegion); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.COMPONENT_REALIZATION : { + ComponentRealization componentRealization = (ComponentRealization) theEObject; + Object result = caseComponentRealization(componentRealization); + if (result == null) + result = caseRealization(componentRealization); + if (result == null) + result = caseAbstraction(componentRealization); + if (result == null) + result = caseDependency(componentRealization); + if (result == null) + result = casePackageableElement(componentRealization); + if (result == null) + result = caseDirectedRelationship(componentRealization); + if (result == null) + result = caseNamedElement(componentRealization); + if (result == null) + result = caseParameterableElement(componentRealization); + if (result == null) + result = caseRelationship(componentRealization); + if (result == null) + result = caseElement(componentRealization); + if (result == null) + result = caseEModelElement(componentRealization); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.COMPONENT : { + Component component = (Component) theEObject; + Object result = caseComponent(component); + if (result == null) + result = caseClass(component); + if (result == null) + result = caseNamespace(component); + if (result == null) + result = caseEncapsulatedClassifier(component); + if (result == null) + result = caseBehavioredClassifier(component); + if (result == null) + result = caseNamedElement(component); + if (result == null) + result = caseStructuredClassifier(component); + if (result == null) + result = caseClassifier(component); + if (result == null) + result = caseElement(component); + if (result == null) + result = caseRedefinableElement(component); + if (result == null) + result = caseType(component); + if (result == null) + result = caseTemplateableElement(component); + if (result == null) + result = caseEModelElement(component); + if (result == null) + result = casePackageableElement(component); + if (result == null) + result = caseParameterableElement(component); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.NODE : { + Node node = (Node) theEObject; + Object result = caseNode(node); + if (result == null) + result = caseClass(node); + if (result == null) + result = caseDeploymentTarget(node); + if (result == null) + result = caseEncapsulatedClassifier(node); + if (result == null) + result = caseBehavioredClassifier(node); + if (result == null) + result = caseNamedElement(node); + if (result == null) + result = caseStructuredClassifier(node); + if (result == null) + result = caseClassifier(node); + if (result == null) + result = caseElement(node); + if (result == null) + result = caseNamespace(node); + if (result == null) + result = caseRedefinableElement(node); + if (result == null) + result = caseType(node); + if (result == null) + result = caseTemplateableElement(node); + if (result == null) + result = caseEModelElement(node); + if (result == null) + result = casePackageableElement(node); + if (result == null) + result = caseParameterableElement(node); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.DEVICE : { + Device device = (Device) theEObject; + Object result = caseDevice(device); + if (result == null) + result = caseNode(device); + if (result == null) + result = caseClass(device); + if (result == null) + result = caseDeploymentTarget(device); + if (result == null) + result = caseEncapsulatedClassifier(device); + if (result == null) + result = caseBehavioredClassifier(device); + if (result == null) + result = caseNamedElement(device); + if (result == null) + result = caseStructuredClassifier(device); + if (result == null) + result = caseClassifier(device); + if (result == null) + result = caseElement(device); + if (result == null) + result = caseNamespace(device); + if (result == null) + result = caseRedefinableElement(device); + if (result == null) + result = caseType(device); + if (result == null) + result = caseTemplateableElement(device); + if (result == null) + result = caseEModelElement(device); + if (result == null) + result = casePackageableElement(device); + if (result == null) + result = caseParameterableElement(device); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.EXECUTION_ENVIRONMENT : { + ExecutionEnvironment executionEnvironment = (ExecutionEnvironment) theEObject; + Object result = caseExecutionEnvironment(executionEnvironment); + if (result == null) + result = caseNode(executionEnvironment); + if (result == null) + result = caseClass(executionEnvironment); + if (result == null) + result = caseDeploymentTarget(executionEnvironment); + if (result == null) + result = caseEncapsulatedClassifier(executionEnvironment); + if (result == null) + result = caseBehavioredClassifier(executionEnvironment); + if (result == null) + result = caseNamedElement(executionEnvironment); + if (result == null) + result = caseStructuredClassifier(executionEnvironment); + if (result == null) + result = caseClassifier(executionEnvironment); + if (result == null) + result = caseElement(executionEnvironment); + if (result == null) + result = caseNamespace(executionEnvironment); + if (result == null) + result = caseRedefinableElement(executionEnvironment); + if (result == null) + result = caseType(executionEnvironment); + if (result == null) + result = caseTemplateableElement(executionEnvironment); + if (result == null) + result = caseEModelElement(executionEnvironment); + if (result == null) + result = casePackageableElement(executionEnvironment); + if (result == null) + result = caseParameterableElement(executionEnvironment); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.COMMUNICATION_PATH : { + CommunicationPath communicationPath = (CommunicationPath) theEObject; + Object result = caseCommunicationPath(communicationPath); + if (result == null) + result = caseAssociation(communicationPath); + if (result == null) + result = caseClassifier(communicationPath); + if (result == null) + result = caseRelationship(communicationPath); + if (result == null) + result = caseNamespace(communicationPath); + if (result == null) + result = caseRedefinableElement(communicationPath); + if (result == null) + result = caseType(communicationPath); + if (result == null) + result = caseTemplateableElement(communicationPath); + if (result == null) + result = caseElement(communicationPath); + if (result == null) + result = caseNamedElement(communicationPath); + if (result == null) + result = casePackageableElement(communicationPath); + if (result == null) + result = caseEModelElement(communicationPath); + if (result == null) + result = caseParameterableElement(communicationPath); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.FINAL_STATE : { + FinalState finalState = (FinalState) theEObject; + Object result = caseFinalState(finalState); + if (result == null) + result = caseState(finalState); + if (result == null) + result = caseNamespace(finalState); + if (result == null) + result = caseRedefinableElement(finalState); + if (result == null) + result = caseVertex(finalState); + if (result == null) + result = caseNamedElement(finalState); + if (result == null) + result = caseElement(finalState); + if (result == null) + result = caseEModelElement(finalState); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.TIME_EVENT : { + TimeEvent timeEvent = (TimeEvent) theEObject; + Object result = caseTimeEvent(timeEvent); + if (result == null) + result = caseEvent(timeEvent); + if (result == null) + result = casePackageableElement(timeEvent); + if (result == null) + result = caseNamedElement(timeEvent); + if (result == null) + result = caseParameterableElement(timeEvent); + if (result == null) + result = caseElement(timeEvent); + if (result == null) + result = caseEModelElement(timeEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.PROTOCOL_TRANSITION : { + ProtocolTransition protocolTransition = (ProtocolTransition) theEObject; + Object result = caseProtocolTransition(protocolTransition); + if (result == null) + result = caseTransition(protocolTransition); + if (result == null) + result = caseRedefinableElement(protocolTransition); + if (result == null) + result = caseNamedElement(protocolTransition); + if (result == null) + result = caseElement(protocolTransition); + if (result == null) + result = caseEModelElement(protocolTransition); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case UMLPackage.ASSOCIATION_CLASS : { + AssociationClass associationClass = (AssociationClass) theEObject; + Object result = caseAssociationClass(associationClass); + if (result == null) + result = caseClass(associationClass); + if (result == null) + result = caseAssociation(associationClass); + if (result == null) + result = caseEncapsulatedClassifier(associationClass); + if (result == null) + result = caseBehavioredClassifier(associationClass); + if (result == null) + result = caseClassifier(associationClass); + if (result == null) + result = caseRelationship(associationClass); + if (result == null) + result = caseStructuredClassifier(associationClass); + if (result == null) + result = caseNamespace(associationClass); + if (result == null) + result = caseRedefinableElement(associationClass); + if (result == null) + result = caseType(associationClass); + if (result == null) + result = caseTemplateableElement(associationClass); + if (result == null) + result = caseElement(associationClass); + if (result == null) + result = caseNamedElement(associationClass); + if (result == null) + result = casePackageableElement(associationClass); + if (result == null) + result = caseEModelElement(associationClass); + if (result == null) + result = caseParameterableElement(associationClass); + if (result == null) + result = defaultCase(theEObject); + return result; + } + default : + return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpretting the object as an instance of 'Comment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Comment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseComment(Comment object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseElement(Element object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Directed Relationship'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Directed Relationship'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDirectedRelationship(DirectedRelationship object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Relationship'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Relationship'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRelationship(Relationship object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Literal Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Literal Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLiteralSpecification(LiteralSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Value Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Value Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseValueSpecification(ValueSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Typed Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Typed Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTypedElement(TypedElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Named Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Named Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseNamedElement(NamedElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Dependency'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Dependency'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDependency(Dependency object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Packageable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Packageable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePackageableElement(PackageableElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Parameterable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Parameterable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseParameterableElement(ParameterableElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Template Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Template Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTemplateParameter(TemplateParameter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Template Signature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Template Signature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTemplateSignature(TemplateSignature object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Templateable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Templateable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTemplateableElement(TemplateableElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Template Binding'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Template Binding'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTemplateBinding(TemplateBinding object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Template Parameter Substitution'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Template Parameter Substitution'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTemplateParameterSubstitution( + TemplateParameterSubstitution object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Namespace'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Namespace'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseNamespace(Namespace object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Element Import'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Element Import'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseElementImport(ElementImport object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Package Import'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Package Import'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePackageImport(PackageImport object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Package'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Package'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePackage(org.eclipse.uml2.uml.Package object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Package Merge'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Package Merge'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePackageMerge(PackageMerge object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseType(Type object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Profile Application'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Profile Application'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseProfileApplication(ProfileApplication object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Profile'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Profile'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseProfile(Profile object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Stereotype'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Stereotype'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStereotype(Stereotype object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Class'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Class'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClass(org.eclipse.uml2.uml.Class object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Behaviored Classifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Behaviored Classifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBehavioredClassifier(BehavioredClassifier object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Classifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Classifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClassifier(Classifier object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Redefinable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Redefinable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRedefinableElement(RedefinableElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Generalization'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Generalization'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseGeneralization(Generalization object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Generalization Set'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Generalization Set'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseGeneralizationSet(GeneralizationSet object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Feature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Feature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFeature(Feature object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Use Case'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Use Case'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseUseCase(UseCase object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Include'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Include'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInclude(Include object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Extend'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Extend'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExtend(Extend object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConstraint(Constraint object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Extension Point'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Extension Point'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExtensionPoint(ExtensionPoint object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Substitution'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Substitution'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSubstitution(Substitution object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Realization'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Realization'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRealization(Realization object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Abstraction'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Abstraction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAbstraction(Abstraction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Opaque Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Opaque Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOpaqueExpression(OpaqueExpression object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseParameter(Parameter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Multiplicity Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Multiplicity Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMultiplicityElement(MultiplicityElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Connectable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Connectable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConnectableElement(ConnectableElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Connector End'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Connector End'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConnectorEnd(ConnectorEnd object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Property'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Property'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseProperty(Property object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Deployment Target'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Deployment Target'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDeploymentTarget(DeploymentTarget object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Deployment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Deployment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDeployment(Deployment object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Deployed Artifact'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Deployed Artifact'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDeployedArtifact(DeployedArtifact object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Deployment Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Deployment Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDeploymentSpecification(DeploymentSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Artifact'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Artifact'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseArtifact(Artifact object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Manifestation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Manifestation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseManifestation(Manifestation object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Operation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Operation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOperation(Operation object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Behavioral Feature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Behavioral Feature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBehavioralFeature(BehavioralFeature object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Behavior'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Behavior'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBehavior(Behavior object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Parameter Set'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Parameter Set'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseParameterSet(ParameterSet object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDataType(DataType object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interface'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interface'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInterface(Interface object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Reception'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Reception'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReception(Reception object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Signal'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Signal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSignal(Signal object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Protocol State Machine'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Protocol State Machine'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseProtocolStateMachine(ProtocolStateMachine object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'State Machine'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'State Machine'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStateMachine(StateMachine object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Region'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Region'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRegion(Region object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Vertex'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Vertex'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseVertex(Vertex object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Transition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Transition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTransition(Transition object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Trigger'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Trigger'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTrigger(Trigger object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEvent(Event object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Port'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Port'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePort(Port object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'State'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'State'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseState(State object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Connection Point Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Connection Point Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConnectionPointReference(ConnectionPointReference object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Pseudostate'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Pseudostate'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePseudostate(Pseudostate object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Protocol Conformance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Protocol Conformance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseProtocolConformance(ProtocolConformance object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Operation Template Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Operation Template Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOperationTemplateParameter( + OperationTemplateParameter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Structural Feature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Structural Feature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStructuralFeature(StructuralFeature object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Association'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Association'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAssociation(Association object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Connectable Element Template Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Connectable Element Template Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConnectableElementTemplateParameter( + ConnectableElementTemplateParameter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Collaboration Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Collaboration Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCollaborationUse(CollaborationUse object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Collaboration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Collaboration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCollaboration(Collaboration object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Structured Classifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Structured Classifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStructuredClassifier(StructuredClassifier object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Connector'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Connector'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConnector(Connector object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Redefinable Template Signature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Redefinable Template Signature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRedefinableTemplateSignature( + RedefinableTemplateSignature object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Classifier Template Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Classifier Template Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClassifierTemplateParameter( + ClassifierTemplateParameter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interface Realization'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interface Realization'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInterfaceRealization(InterfaceRealization object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Encapsulated Classifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Encapsulated Classifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEncapsulatedClassifier(EncapsulatedClassifier object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Extension'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Extension'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExtension(Extension object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Extension End'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Extension End'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExtensionEnd(ExtensionEnd object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Image'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Image'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseImage(Image object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'String Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'String Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStringExpression(StringExpression object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExpression(Expression object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Literal Integer'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Literal Integer'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLiteralInteger(LiteralInteger object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Literal String'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Literal String'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLiteralString(LiteralString object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Literal Boolean'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Literal Boolean'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLiteralBoolean(LiteralBoolean object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Literal Null'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Literal Null'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLiteralNull(LiteralNull object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Slot'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Slot'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSlot(Slot object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Instance Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Instance Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInstanceSpecification(InstanceSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Enumeration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Enumeration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEnumeration(Enumeration object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Enumeration Literal'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Enumeration Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEnumerationLiteral(EnumerationLiteral object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Primitive Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Primitive Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePrimitiveType(PrimitiveType object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Instance Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Instance Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInstanceValue(InstanceValue object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Literal Unlimited Natural'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Literal Unlimited Natural'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLiteralUnlimitedNatural(LiteralUnlimitedNatural object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Opaque Behavior'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Opaque Behavior'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOpaqueBehavior(OpaqueBehavior object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Function Behavior'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Function Behavior'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFunctionBehavior(FunctionBehavior object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Actor'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Actor'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActor(Actor object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseUsage(Usage object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Message'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Message'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMessage(Message object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Message End'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Message End'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMessageEnd(MessageEnd object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interaction'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interaction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInteraction(Interaction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interaction Fragment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interaction Fragment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInteractionFragment(InteractionFragment object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Lifeline'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Lifeline'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLifeline(Lifeline object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Part Decomposition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Part Decomposition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePartDecomposition(PartDecomposition object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interaction Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interaction Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInteractionUse(InteractionUse object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Gate'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Gate'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseGate(Gate object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAction(Action object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Executable Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Executable Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutableNode(ExecutableNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivityNode(ActivityNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity Edge'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity Edge'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivityEdge(ActivityEdge object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivity(Activity object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity Partition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity Partition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivityPartition(ActivityPartition object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity Group'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity Group'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivityGroup(ActivityGroup object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Structured Activity Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Structured Activity Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStructuredActivityNode(StructuredActivityNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Variable'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Variable'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseVariable(Variable object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interruptible Activity Region'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interruptible Activity Region'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInterruptibleActivityRegion( + InterruptibleActivityRegion object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Exception Handler'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Exception Handler'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExceptionHandler(ExceptionHandler object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Object Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Object Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseObjectNode(ObjectNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Output Pin'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Output Pin'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOutputPin(OutputPin object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Pin'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Pin'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePin(Pin object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Input Pin'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Input Pin'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInputPin(InputPin object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'General Ordering'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'General Ordering'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseGeneralOrdering(GeneralOrdering object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Occurrence Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Occurrence Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOccurrenceSpecification(OccurrenceSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interaction Operand'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interaction Operand'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInteractionOperand(InteractionOperand object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interaction Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interaction Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInteractionConstraint(InteractionConstraint object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Execution Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Execution Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionSpecification(ExecutionSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Execution Occurrence Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Execution Occurrence Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionOccurrenceSpecification( + ExecutionOccurrenceSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Execution Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Execution Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionEvent(ExecutionEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'State Invariant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'State Invariant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStateInvariant(StateInvariant object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Action Execution Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Action Execution Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActionExecutionSpecification( + ActionExecutionSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Behavior Execution Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Behavior Execution Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBehaviorExecutionSpecification( + BehaviorExecutionSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Creation Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Creation Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCreationEvent(CreationEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Destruction Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Destruction Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDestructionEvent(DestructionEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Send Operation Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Send Operation Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSendOperationEvent(SendOperationEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Message Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Message Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMessageEvent(MessageEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Send Signal Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Send Signal Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSendSignalEvent(SendSignalEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Message Occurrence Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Message Occurrence Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMessageOccurrenceSpecification( + MessageOccurrenceSpecification object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Combined Fragment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Combined Fragment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCombinedFragment(CombinedFragment object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Continuation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Continuation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseContinuation(Continuation object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Consider Ignore Fragment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Consider Ignore Fragment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConsiderIgnoreFragment(ConsiderIgnoreFragment object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Call Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Call Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCallEvent(CallEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Change Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Change Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseChangeEvent(ChangeEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Signal Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Signal Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSignalEvent(SignalEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Any Receive Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Any Receive Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAnyReceiveEvent(AnyReceiveEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Create Object Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Create Object Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCreateObjectAction(CreateObjectAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Destroy Object Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Destroy Object Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDestroyObjectAction(DestroyObjectAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Test Identity Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Test Identity Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTestIdentityAction(TestIdentityAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Self Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Self Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadSelfAction(ReadSelfAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Structural Feature Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Structural Feature Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStructuralFeatureAction(StructuralFeatureAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Structural Feature Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Structural Feature Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadStructuralFeatureAction( + ReadStructuralFeatureAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Write Structural Feature Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Write Structural Feature Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseWriteStructuralFeatureAction( + WriteStructuralFeatureAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Clear Structural Feature Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Clear Structural Feature Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClearStructuralFeatureAction( + ClearStructuralFeatureAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Remove Structural Feature Value Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Remove Structural Feature Value Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRemoveStructuralFeatureValueAction( + RemoveStructuralFeatureValueAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Add Structural Feature Value Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Add Structural Feature Value Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAddStructuralFeatureValueAction( + AddStructuralFeatureValueAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Link Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Link Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLinkAction(LinkAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Link End Data'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Link End Data'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLinkEndData(LinkEndData object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Qualifier Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Qualifier Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseQualifierValue(QualifierValue object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Link Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Link Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadLinkAction(ReadLinkAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Link End Creation Data'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Link End Creation Data'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLinkEndCreationData(LinkEndCreationData object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Create Link Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Create Link Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCreateLinkAction(CreateLinkAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Write Link Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Write Link Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseWriteLinkAction(WriteLinkAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Destroy Link Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Destroy Link Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDestroyLinkAction(DestroyLinkAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Link End Destruction Data'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Link End Destruction Data'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLinkEndDestructionData(LinkEndDestructionData object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Clear Association Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Clear Association Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClearAssociationAction(ClearAssociationAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Broadcast Signal Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Broadcast Signal Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBroadcastSignalAction(BroadcastSignalAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Invocation Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Invocation Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInvocationAction(InvocationAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Send Object Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Send Object Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSendObjectAction(SendObjectAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Value Specification Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Value Specification Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseValueSpecificationAction(ValueSpecificationAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Time Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Time Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTimeExpression(TimeExpression object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Duration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Duration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDuration(Duration object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Time Observation Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Time Observation Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTimeObservationAction(TimeObservationAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Value Pin'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Value Pin'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseValuePin(ValuePin object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Duration Interval'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Duration Interval'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDurationInterval(DurationInterval object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interval'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interval'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInterval(Interval object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Time Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Time Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTimeConstraint(TimeConstraint object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Interval Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Interval Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseIntervalConstraint(IntervalConstraint object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Time Interval'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Time Interval'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTimeInterval(TimeInterval object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Duration Observation Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Duration Observation Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDurationObservationAction(DurationObservationAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Duration Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Duration Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDurationConstraint(DurationConstraint object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Opaque Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Opaque Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOpaqueAction(OpaqueAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Call Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Call Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCallAction(CallAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Send Signal Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Send Signal Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSendSignalAction(SendSignalAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Call Operation Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Call Operation Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCallOperationAction(CallOperationAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Call Behavior Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Call Behavior Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCallBehaviorAction(CallBehaviorAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Information Item'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Information Item'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInformationItem(InformationItem object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Information Flow'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Information Flow'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInformationFlow(InformationFlow object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Model'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Model'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseModel(Model object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Variable Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Variable Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseVariableAction(VariableAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Variable Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Variable Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadVariableAction(ReadVariableAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Write Variable Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Write Variable Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseWriteVariableAction(WriteVariableAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Clear Variable Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Clear Variable Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClearVariableAction(ClearVariableAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Add Variable Value Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Add Variable Value Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAddVariableValueAction(AddVariableValueAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Remove Variable Value Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Remove Variable Value Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRemoveVariableValueAction(RemoveVariableValueAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Raise Exception Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Raise Exception Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRaiseExceptionAction(RaiseExceptionAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Action Input Pin'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Action Input Pin'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActionInputPin(ActionInputPin object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Extent Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Extent Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadExtentAction(ReadExtentAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Reclassify Object Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Reclassify Object Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReclassifyObjectAction(ReclassifyObjectAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Is Classified Object Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Is Classified Object Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadIsClassifiedObjectAction( + ReadIsClassifiedObjectAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Start Classifier Behavior Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Start Classifier Behavior Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStartClassifierBehaviorAction( + StartClassifierBehaviorAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Link Object End Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Link Object End Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadLinkObjectEndAction(ReadLinkObjectEndAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Read Link Object End Qualifier Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Read Link Object End Qualifier Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReadLinkObjectEndQualifierAction( + ReadLinkObjectEndQualifierAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Create Link Object Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Create Link Object Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCreateLinkObjectAction(CreateLinkObjectAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Accept Event Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Accept Event Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAcceptEventAction(AcceptEventAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Accept Call Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Accept Call Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAcceptCallAction(AcceptCallAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Reply Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Reply Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseReplyAction(ReplyAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Unmarshall Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Unmarshall Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseUnmarshallAction(UnmarshallAction object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Control Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Control Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseControlNode(ControlNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Control Flow'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Control Flow'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseControlFlow(ControlFlow object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Initial Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Initial Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInitialNode(InitialNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity Parameter Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity Parameter Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivityParameterNode(ActivityParameterNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Fork Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Fork Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseForkNode(ForkNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Flow Final Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Flow Final Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFlowFinalNode(FlowFinalNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Final Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Final Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFinalNode(FinalNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Central Buffer Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Central Buffer Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCentralBufferNode(CentralBufferNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Merge Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Merge Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMergeNode(MergeNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Decision Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Decision Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDecisionNode(DecisionNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Activity Final Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Activity Final Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseActivityFinalNode(ActivityFinalNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Join Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Join Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJoinNode(JoinNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Data Store Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Data Store Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDataStoreNode(DataStoreNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Object Flow'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Object Flow'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseObjectFlow(ObjectFlow object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Sequence Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Sequence Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSequenceNode(SequenceNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Conditional Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Conditional Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseConditionalNode(ConditionalNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Clause'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Clause'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseClause(Clause object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Loop Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Loop Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseLoopNode(LoopNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Expansion Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Expansion Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExpansionNode(ExpansionNode object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Expansion Region'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Expansion Region'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExpansionRegion(ExpansionRegion object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Component Realization'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Component Realization'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseComponentRealization(ComponentRealization object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Component'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Component'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseComponent(Component object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseNode(Node object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Device'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Device'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDevice(Device object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Execution Environment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Execution Environment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionEnvironment(ExecutionEnvironment object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Communication Path'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Communication Path'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseCommunicationPath(CommunicationPath object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Final State'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Final State'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFinalState(FinalState object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Time Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Time Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTimeEvent(TimeEvent object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Protocol Transition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Protocol Transition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseProtocolTransition(ProtocolTransition object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'Association Class'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Association Class'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAssociationClass(AssociationClass object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'EModel Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'EModel Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEModelElement(EModelElement object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + public Object defaultCase(EObject object) { + return null; + } + +} //UMLSwitch diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java new file mode 100644 index 00000000..474219dc --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java @@ -0,0 +1,21822 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * $Id: UMLValidator.java,v 1.1 2005/11/14 22:26:08 khussey Exp $ + */ +package org.eclipse.uml2.uml.util; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.eclipse.emf.ecore.util.EObjectValidator; + +import org.eclipse.uml2.uml.Abstraction; +import org.eclipse.uml2.uml.AcceptCallAction; +import org.eclipse.uml2.uml.AcceptEventAction; +import org.eclipse.uml2.uml.Action; +import org.eclipse.uml2.uml.ActionExecutionSpecification; +import org.eclipse.uml2.uml.ActionInputPin; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.ActivityEdge; +import org.eclipse.uml2.uml.ActivityFinalNode; +import org.eclipse.uml2.uml.ActivityGroup; +import org.eclipse.uml2.uml.ActivityNode; +import org.eclipse.uml2.uml.ActivityParameterNode; +import org.eclipse.uml2.uml.ActivityPartition; +import org.eclipse.uml2.uml.Actor; +import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; +import org.eclipse.uml2.uml.AddVariableValueAction; +import org.eclipse.uml2.uml.AnyReceiveEvent; +import org.eclipse.uml2.uml.Artifact; +import org.eclipse.uml2.uml.Association; +import org.eclipse.uml2.uml.AssociationClass; +import org.eclipse.uml2.uml.Behavior; +import org.eclipse.uml2.uml.BehaviorExecutionSpecification; +import org.eclipse.uml2.uml.BehavioralFeature; +import org.eclipse.uml2.uml.BehavioredClassifier; +import org.eclipse.uml2.uml.BroadcastSignalAction; +import org.eclipse.uml2.uml.CallAction; +import org.eclipse.uml2.uml.CallBehaviorAction; +import org.eclipse.uml2.uml.CallEvent; +import org.eclipse.uml2.uml.CallOperationAction; +import org.eclipse.uml2.uml.CentralBufferNode; +import org.eclipse.uml2.uml.ChangeEvent; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.ClassifierTemplateParameter; +import org.eclipse.uml2.uml.Clause; +import org.eclipse.uml2.uml.ClearAssociationAction; +import org.eclipse.uml2.uml.ClearStructuralFeatureAction; +import org.eclipse.uml2.uml.ClearVariableAction; +import org.eclipse.uml2.uml.Collaboration; +import org.eclipse.uml2.uml.CollaborationUse; +import org.eclipse.uml2.uml.CombinedFragment; +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.CommunicationPath; +import org.eclipse.uml2.uml.Component; +import org.eclipse.uml2.uml.ComponentRealization; +import org.eclipse.uml2.uml.ConditionalNode; +import org.eclipse.uml2.uml.ConnectableElement; +import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; +import org.eclipse.uml2.uml.ConnectionPointReference; +import org.eclipse.uml2.uml.Connector; +import org.eclipse.uml2.uml.ConnectorEnd; +import org.eclipse.uml2.uml.ConsiderIgnoreFragment; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Continuation; +import org.eclipse.uml2.uml.ControlFlow; +import org.eclipse.uml2.uml.ControlNode; +import org.eclipse.uml2.uml.CreateLinkAction; +import org.eclipse.uml2.uml.CreateLinkObjectAction; +import org.eclipse.uml2.uml.CreateObjectAction; +import org.eclipse.uml2.uml.CreationEvent; +import org.eclipse.uml2.uml.DataStoreNode; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.DecisionNode; +import org.eclipse.uml2.uml.Dependency; +import org.eclipse.uml2.uml.DeployedArtifact; +import org.eclipse.uml2.uml.Deployment; +import org.eclipse.uml2.uml.DeploymentSpecification; +import org.eclipse.uml2.uml.DeploymentTarget; +import org.eclipse.uml2.uml.DestroyLinkAction; +import org.eclipse.uml2.uml.DestroyObjectAction; +import org.eclipse.uml2.uml.DestructionEvent; +import org.eclipse.uml2.uml.Device; +import org.eclipse.uml2.uml.DirectedRelationship; +import org.eclipse.uml2.uml.Duration; +import org.eclipse.uml2.uml.DurationConstraint; +import org.eclipse.uml2.uml.DurationInterval; +import org.eclipse.uml2.uml.DurationObservationAction; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.EncapsulatedClassifier; +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.EnumerationLiteral; +import org.eclipse.uml2.uml.Event; +import org.eclipse.uml2.uml.ExceptionHandler; +import org.eclipse.uml2.uml.ExecutableNode; +import org.eclipse.uml2.uml.ExecutionEnvironment; +import org.eclipse.uml2.uml.ExecutionEvent; +import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification; +import org.eclipse.uml2.uml.ExecutionSpecification; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; +import org.eclipse.uml2.uml.Expression; +import org.eclipse.uml2.uml.Extend; +import org.eclipse.uml2.uml.Extension; +import org.eclipse.uml2.uml.ExtensionEnd; +import org.eclipse.uml2.uml.ExtensionPoint; +import org.eclipse.uml2.uml.Feature; +import org.eclipse.uml2.uml.FinalNode; +import org.eclipse.uml2.uml.FinalState; +import org.eclipse.uml2.uml.FlowFinalNode; +import org.eclipse.uml2.uml.ForkNode; +import org.eclipse.uml2.uml.FunctionBehavior; +import org.eclipse.uml2.uml.Gate; +import org.eclipse.uml2.uml.GeneralOrdering; +import org.eclipse.uml2.uml.Generalization; +import org.eclipse.uml2.uml.GeneralizationSet; +import org.eclipse.uml2.uml.Image; +import org.eclipse.uml2.uml.Include; +import org.eclipse.uml2.uml.InformationFlow; +import org.eclipse.uml2.uml.InformationItem; +import org.eclipse.uml2.uml.InitialNode; +import org.eclipse.uml2.uml.InputPin; +import org.eclipse.uml2.uml.InstanceSpecification; +import org.eclipse.uml2.uml.InstanceValue; +import org.eclipse.uml2.uml.Interaction; +import org.eclipse.uml2.uml.InteractionConstraint; +import org.eclipse.uml2.uml.InteractionFragment; +import org.eclipse.uml2.uml.InteractionOperand; +import org.eclipse.uml2.uml.InteractionUse; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.InterfaceRealization; +import org.eclipse.uml2.uml.InterruptibleActivityRegion; +import org.eclipse.uml2.uml.Interval; +import org.eclipse.uml2.uml.IntervalConstraint; +import org.eclipse.uml2.uml.InvocationAction; +import org.eclipse.uml2.uml.JoinNode; +import org.eclipse.uml2.uml.Lifeline; +import org.eclipse.uml2.uml.LinkAction; +import org.eclipse.uml2.uml.LinkEndCreationData; +import org.eclipse.uml2.uml.LinkEndData; +import org.eclipse.uml2.uml.LinkEndDestructionData; +import org.eclipse.uml2.uml.LiteralBoolean; +import org.eclipse.uml2.uml.LiteralInteger; +import org.eclipse.uml2.uml.LiteralNull; +import org.eclipse.uml2.uml.LiteralSpecification; +import org.eclipse.uml2.uml.LiteralString; +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; +import org.eclipse.uml2.uml.LoopNode; +import org.eclipse.uml2.uml.Manifestation; +import org.eclipse.uml2.uml.MergeNode; +import org.eclipse.uml2.uml.Message; +import org.eclipse.uml2.uml.MessageEnd; +import org.eclipse.uml2.uml.MessageEvent; +import org.eclipse.uml2.uml.MessageOccurrenceSpecification; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Node; +import org.eclipse.uml2.uml.ObjectFlow; +import org.eclipse.uml2.uml.ObjectNode; +import org.eclipse.uml2.uml.OccurrenceSpecification; +import org.eclipse.uml2.uml.OpaqueAction; +import org.eclipse.uml2.uml.OpaqueBehavior; +import org.eclipse.uml2.uml.OpaqueExpression; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterSet; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.PartDecomposition; +import org.eclipse.uml2.uml.Pin; +import org.eclipse.uml2.uml.Port; +import org.eclipse.uml2.uml.PrimitiveType; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.ProtocolConformance; +import org.eclipse.uml2.uml.ProtocolStateMachine; +import org.eclipse.uml2.uml.ProtocolTransition; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.QualifierValue; +import org.eclipse.uml2.uml.RaiseExceptionAction; +import org.eclipse.uml2.uml.ReadExtentAction; +import org.eclipse.uml2.uml.ReadIsClassifiedObjectAction; +import org.eclipse.uml2.uml.ReadLinkAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndAction; +import org.eclipse.uml2.uml.ReadLinkObjectEndQualifierAction; +import org.eclipse.uml2.uml.ReadSelfAction; +import org.eclipse.uml2.uml.ReadStructuralFeatureAction; +import org.eclipse.uml2.uml.ReadVariableAction; +import org.eclipse.uml2.uml.Realization; +import org.eclipse.uml2.uml.Reception; +import org.eclipse.uml2.uml.ReclassifyObjectAction; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.RedefinableTemplateSignature; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.Relationship; +import org.eclipse.uml2.uml.RemoveStructuralFeatureValueAction; +import org.eclipse.uml2.uml.RemoveVariableValueAction; +import org.eclipse.uml2.uml.ReplyAction; +import org.eclipse.uml2.uml.SendObjectAction; +import org.eclipse.uml2.uml.SendOperationEvent; +import org.eclipse.uml2.uml.SendSignalAction; +import org.eclipse.uml2.uml.SendSignalEvent; +import org.eclipse.uml2.uml.SequenceNode; +import org.eclipse.uml2.uml.Signal; +import org.eclipse.uml2.uml.SignalEvent; +import org.eclipse.uml2.uml.Slot; +import org.eclipse.uml2.uml.StartClassifierBehaviorAction; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.StateInvariant; +import org.eclipse.uml2.uml.StateMachine; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.StructuralFeature; +import org.eclipse.uml2.uml.StructuralFeatureAction; +import org.eclipse.uml2.uml.StructuredActivityNode; +import org.eclipse.uml2.uml.StructuredClassifier; +import org.eclipse.uml2.uml.Substitution; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateParameterSubstitution; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.TestIdentityAction; +import org.eclipse.uml2.uml.TimeConstraint; +import org.eclipse.uml2.uml.TimeEvent; +import org.eclipse.uml2.uml.TimeExpression; +import org.eclipse.uml2.uml.TimeInterval; +import org.eclipse.uml2.uml.TimeObservationAction; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.Trigger; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.TypedElement; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.UnmarshallAction; +import org.eclipse.uml2.uml.Usage; +import org.eclipse.uml2.uml.UseCase; +import org.eclipse.uml2.uml.ValuePin; +import org.eclipse.uml2.uml.ValueSpecification; +import org.eclipse.uml2.uml.ValueSpecificationAction; +import org.eclipse.uml2.uml.Variable; +import org.eclipse.uml2.uml.VariableAction; +import org.eclipse.uml2.uml.Vertex; +import org.eclipse.uml2.uml.WriteLinkAction; +import org.eclipse.uml2.uml.WriteStructuralFeatureAction; +import org.eclipse.uml2.uml.WriteVariableAction; + +/** + * + * The Validator for the model. + * + * @see org.eclipse.uml2.uml.UMLPackage + * @generated + */ +public class UMLValidator + extends EObjectValidator { + + /** + * The cached model package + * + * + * @generated + */ + public static final UMLValidator INSTANCE = new UMLValidator(); + + /** + * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package. + * + * + * @see org.eclipse.emf.common.util.Diagnostic#getSource() + * @see org.eclipse.emf.common.util.Diagnostic#getCode() + * @generated + */ + public static final String DIAGNOSTIC_SOURCE = "org.eclipse.uml2.uml"; //$NON-NLS-1$ + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Own Self' of 'Element'. + * + * + * @generated + */ + public static final int ELEMENT__NOT_OWN_SELF = 1; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Has Owner' of 'Element'. + * + * + * @generated + */ + public static final int ELEMENT__HAS_OWNER = 2; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Name' of 'Named Element'. + * + * + * @generated + */ + public static final int NAMED_ELEMENT__NO_NAME = 3; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualified Name' of 'Named Element'. + * + * + * @generated + */ + public static final int NAMED_ELEMENT__QUALIFIED_NAME = 4; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility Needs Ownership' of 'Named Element'. + * + * + * @generated + */ + public static final int NAMED_ELEMENT__VISIBILITY_NEEDS_OWNERSHIP = 5; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Be Compatible' of 'Template Parameter'. + * + * + * @generated + */ + public static final int TEMPLATE_PARAMETER__MUST_BE_COMPATIBLE = 6; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Own Elements' of 'Template Signature'. + * + * + * @generated + */ + public static final int TEMPLATE_SIGNATURE__OWN_ELEMENTS = 7; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameter Substitution' of 'Template Binding'. + * + * + * @generated + */ + public static final int TEMPLATE_BINDING__PARAMETER_SUBSTITUTION = 8; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Parameter Substitution' of 'Template Binding'. + * + * + * @generated + */ + public static final int TEMPLATE_BINDING__ONE_PARAMETER_SUBSTITUTION = 9; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Be Compatible' of 'Template Parameter Substitution'. + * + * + * @generated + */ + public static final int TEMPLATE_PARAMETER_SUBSTITUTION__MUST_BE_COMPATIBLE = 10; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Members Are Distinguishable' of 'Namespace'. + * + * + * @generated + */ + public static final int NAMESPACE__MEMBERS_ARE_DISTINGUISHABLE = 11; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility Public Or Private' of 'Element Import'. + * + * + * @generated + */ + public static final int ELEMENT_IMPORT__VISIBILITY_PUBLIC_OR_PRIVATE = 12; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility Or Private' of 'Element Import'. + * + * + * @generated + */ + public static final int ELEMENT_IMPORT__VISIBILITY_OR_PRIVATE = 13; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Imported Element Is Public' of 'Element Import'. + * + * + * @generated + */ + public static final int ELEMENT_IMPORT__IMPORTED_ELEMENT_IS_PUBLIC = 14; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Public Or Private' of 'Package Import'. + * + * + * @generated + */ + public static final int PACKAGE_IMPORT__PUBLIC_OR_PRIVATE = 15; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Elements Public Or Private' of 'Package'. + * + * + * @generated + */ + public static final int PACKAGE__ELEMENTS_PUBLIC_OR_PRIVATE = 16; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Metaclass Reference Not Specialized' of 'Profile'. + * + * + * @generated + */ + public static final int PROFILE__METACLASS_REFERENCE_NOT_SPECIALIZED = 17; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate References Same Metamodel' of 'Profile'. + * + * + * @generated + */ + public static final int PROFILE__REFERENCES_SAME_METAMODEL = 18; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Not Clash' of 'Stereotype'. + * + * + * @generated + */ + public static final int STEREOTYPE__NAME_NOT_CLASH = 19; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalize' of 'Stereotype'. + * + * + * @generated + */ + public static final int STEREOTYPE__GENERALIZE = 20; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Passive Class' of 'Class'. + * + * + * @generated + */ + public static final int CLASS__PASSIVE_CLASS = 21; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Class Behavior' of 'Behaviored Classifier'. + * + * + * @generated + */ + public static final int BEHAVIORED_CLASSIFIER__CLASS_BEHAVIOR = 22; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Cycles In Generalization' of 'Classifier'. + * + * + * @generated + */ + public static final int CLASSIFIER__NO_CYCLES_IN_GENERALIZATION = 23; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Specialize Type' of 'Classifier'. + * + * + * @generated + */ + public static final int CLASSIFIER__SPECIALIZE_TYPE = 24; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalization Hierarchies' of 'Classifier'. + * + * + * @generated + */ + public static final int CLASSIFIER__GENERALIZATION_HIERARCHIES = 25; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Specialize' of 'Classifier'. + * + * + * @generated + */ + public static final int CLASSIFIER__SPECIALIZE = 26; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maps To Generalization Set' of 'Classifier'. + * + * + * @generated + */ + public static final int CLASSIFIER__MAPS_TO_GENERALIZATION_SET = 27; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Redefinition Context Valid' of 'Redefinable Element'. + * + * + * @generated + */ + public static final int REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT_VALID = 28; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Redefinition Consistent' of 'Redefinable Element'. + * + * + * @generated + */ + public static final int REDEFINABLE_ELEMENT__REDEFINITION_CONSISTENT = 29; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalization Same Classifier' of 'Generalization'. + * + * + * @generated + */ + public static final int GENERALIZATION__GENERALIZATION_SAME_CLASSIFIER = 30; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Generalization Same Classifier' of 'Generalization Set'. + * + * + * @generated + */ + public static final int GENERALIZATION_SET__GENERALIZATION_SAME_CLASSIFIER = 31; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maps To Generalization Set' of 'Generalization Set'. + * + * + * @generated + */ + public static final int GENERALIZATION_SET__MAPS_TO_GENERALIZATION_SET = 32; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Have Name' of 'Use Case'. + * + * + * @generated + */ + public static final int USE_CASE__MUST_HAVE_NAME = 33; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Binary Associations' of 'Use Case'. + * + * + * @generated + */ + public static final int USE_CASE__BINARY_ASSOCIATIONS = 34; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Association To Use Case' of 'Use Case'. + * + * + * @generated + */ + public static final int USE_CASE__NO_ASSOCIATION_TO_USE_CASE = 35; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Include Self' of 'Use Case'. + * + * + * @generated + */ + public static final int USE_CASE__CANNOT_INCLUDE_SELF = 36; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Extension Points' of 'Extend'. + * + * + * @generated + */ + public static final int EXTEND__EXTENSION_POINTS = 37; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Apply To Self' of 'Constraint'. + * + * + * @generated + */ + public static final int CONSTRAINT__NOT_APPLY_TO_SELF = 38; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Value Specification Boolean' of 'Constraint'. + * + * + * @generated + */ + public static final int CONSTRAINT__VALUE_SPECIFICATION_BOOLEAN = 39; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Boolean Value' of 'Constraint'. + * + * + * @generated + */ + public static final int CONSTRAINT__BOOLEAN_VALUE = 40; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Side Effects' of 'Constraint'. + * + * + * @generated + */ + public static final int CONSTRAINT__NO_SIDE_EFFECTS = 41; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Applied To Self' of 'Constraint'. + * + * + * @generated + */ + public static final int CONSTRAINT__NOT_APPLIED_TO_SELF = 42; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Have Name' of 'Extension Point'. + * + * + * @generated + */ + public static final int EXTENSION_POINT__MUST_HAVE_NAME = 43; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Language Body Size' of 'Opaque Expression'. + * + * + * @generated + */ + public static final int OPAQUE_EXPRESSION__LANGUAGE_BODY_SIZE = 44; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Body Default Language' of 'Opaque Expression'. + * + * + * @generated + */ + public static final int OPAQUE_EXPRESSION__ONE_BODY_DEFAULT_LANGUAGE = 45; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Only Return Result Parameters' of 'Opaque Expression'. + * + * + * @generated + */ + public static final int OPAQUE_EXPRESSION__ONLY_RETURN_RESULT_PARAMETERS = 46; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Return Result Parameter' of 'Opaque Expression'. + * + * + * @generated + */ + public static final int OPAQUE_EXPRESSION__ONE_RETURN_RESULT_PARAMETER = 47; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Connector End' of 'Parameter'. + * + * + * @generated + */ + public static final int PARAMETER__CONNECTOR_END = 48; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Stream And Exception' of 'Parameter'. + * + * + * @generated + */ + public static final int PARAMETER__STREAM_AND_EXCEPTION = 49; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Exception' of 'Parameter'. + * + * + * @generated + */ + public static final int PARAMETER__NOT_EXCEPTION = 50; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Reentrant Behaviors' of 'Parameter'. + * + * + * @generated + */ + public static final int PARAMETER__REENTRANT_BEHAVIORS = 51; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate In And Out' of 'Parameter'. + * + * + * @generated + */ + public static final int PARAMETER__IN_AND_OUT = 52; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Upper Gt0' of 'Multiplicity Element'. + * + * + * @generated + */ + public static final int MULTIPLICITY_ELEMENT__UPPER_GT0 = 53; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Lower Ge0' of 'Multiplicity Element'. + * + * + * @generated + */ + public static final int MULTIPLICITY_ELEMENT__LOWER_GE0 = 54; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Upper Ge Lower' of 'Multiplicity Element'. + * + * + * @generated + */ + public static final int MULTIPLICITY_ELEMENT__UPPER_GE_LOWER = 55; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Value Specification No Side Effects' of 'Multiplicity Element'. + * + * + * @generated + */ + public static final int MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_NO_SIDE_EFFECTS = 56; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Value Specification Constant' of 'Multiplicity Element'. + * + * + * @generated + */ + public static final int MULTIPLICITY_ELEMENT__VALUE_SPECIFICATION_CONSTANT = 57; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Connector End'. + * + * + * @generated + */ + public static final int CONNECTOR_END__MULTIPLICITY = 58; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Part With Port Empty' of 'Connector End'. + * + * + * @generated + */ + public static final int CONNECTOR_END__PART_WITH_PORT_EMPTY = 59; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Role And Part With Port' of 'Connector End'. + * + * + * @generated + */ + public static final int CONNECTOR_END__ROLE_AND_PART_WITH_PORT = 60; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Self Part With Port' of 'Connector End'. + * + * + * @generated + */ + public static final int CONNECTOR_END__SELF_PART_WITH_PORT = 61; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Composite' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__MULTIPLICITY_OF_COMPOSITE = 62; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Subsetting Context' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__SUBSETTING_CONTEXT = 63; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Navigable Property Redefinition' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__NAVIGABLE_PROPERTY_REDEFINITION = 64; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Subsetting Rules' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__SUBSETTING_RULES = 65; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Navigable Readonly' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__NAVIGABLE_READONLY = 66; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Derived Union Is Derived' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__DERIVED_UNION_IS_DERIVED = 67; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Derived Union Is Read Only' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__DERIVED_UNION_IS_READ_ONLY = 68; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployment Target' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__DEPLOYMENT_TARGET = 69; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Binding To Attribute' of 'Property'. + * + * + * @generated + */ + public static final int PROPERTY__BINDING_TO_ATTRIBUTE = 70; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployed Elements' of 'Deployment Specification'. + * + * + * @generated + */ + public static final int DEPLOYMENT_SPECIFICATION__DEPLOYED_ELEMENTS = 71; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployment Target' of 'Deployment Specification'. + * + * + * @generated + */ + public static final int DEPLOYMENT_SPECIFICATION__DEPLOYMENT_TARGET = 72; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate At Most One Return' of 'Operation'. + * + * + * @generated + */ + public static final int OPERATION__AT_MOST_ONE_RETURN = 73; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Only Body For Query' of 'Operation'. + * + * + * @generated + */ + public static final int OPERATION__ONLY_BODY_FOR_QUERY = 74; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameters' of 'Behavior'. + * + * + * @generated + */ + public static final int BEHAVIOR__PARAMETERS = 75; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Feature Of Context Classifier' of 'Behavior'. + * + * + * @generated + */ + public static final int BEHAVIOR__FEATURE_OF_CONTEXT_CLASSIFIER = 76; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Realize' of 'Behavior'. + * + * + * @generated + */ + public static final int BEHAVIOR__MUST_REALIZE = 77; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Most One Behaviour' of 'Behavior'. + * + * + * @generated + */ + public static final int BEHAVIOR__MOST_ONE_BEHAVIOUR = 78; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Parameterized Entity' of 'Parameter Set'. + * + * + * @generated + */ + public static final int PARAMETER_SET__SAME_PARAMETERIZED_ENTITY = 79; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input' of 'Parameter Set'. + * + * + * @generated + */ + public static final int PARAMETER_SET__INPUT = 80; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Two Parameter Sets' of 'Parameter Set'. + * + * + * @generated + */ + public static final int PARAMETER_SET__TWO_PARAMETER_SETS = 81; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility' of 'Interface'. + * + * + * @generated + */ + public static final int INTERFACE__VISIBILITY = 82; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Query' of 'Reception'. + * + * + * @generated + */ + public static final int RECEPTION__NOT_QUERY = 83; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Protocol Transitions' of 'Protocol State Machine'. + * + * + * @generated + */ + public static final int PROTOCOL_STATE_MACHINE__PROTOCOL_TRANSITIONS = 84; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Entry Exit Do' of 'Protocol State Machine'. + * + * + * @generated + */ + public static final int PROTOCOL_STATE_MACHINE__ENTRY_EXIT_DO = 85; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deep Or Shallow History' of 'Protocol State Machine'. + * + * + * @generated + */ + public static final int PROTOCOL_STATE_MACHINE__DEEP_OR_SHALLOW_HISTORY = 86; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Ports Connected' of 'Protocol State Machine'. + * + * + * @generated + */ + public static final int PROTOCOL_STATE_MACHINE__PORTS_CONNECTED = 87; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Context' of 'Protocol State Machine'. + * + * + * @generated + */ + public static final int PROTOCOL_STATE_MACHINE__CLASSIFIER_CONTEXT = 88; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Context' of 'State Machine'. + * + * + * @generated + */ + public static final int STATE_MACHINE__CLASSIFIER_CONTEXT = 89; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Context Classifier' of 'State Machine'. + * + * + * @generated + */ + public static final int STATE_MACHINE__CONTEXT_CLASSIFIER = 90; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Connection Points' of 'State Machine'. + * + * + * @generated + */ + public static final int STATE_MACHINE__CONNECTION_POINTS = 91; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Method' of 'State Machine'. + * + * + * @generated + */ + public static final int STATE_MACHINE__METHOD = 92; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Initial Vertex' of 'Region'. + * + * + * @generated + */ + public static final int REGION__INITIAL_VERTEX = 93; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deep History Vertex' of 'Region'. + * + * + * @generated + */ + public static final int REGION__DEEP_HISTORY_VERTEX = 94; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Shallow History Vertex' of 'Region'. + * + * + * @generated + */ + public static final int REGION__SHALLOW_HISTORY_VERTEX = 95; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Region'. + * + * + * @generated + */ + public static final int REGION__OWNED = 96; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Fork Segment Guards' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__FORK_SEGMENT_GUARDS = 97; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Join Segment Guards' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__JOIN_SEGMENT_GUARDS = 98; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Fork Segment State' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__FORK_SEGMENT_STATE = 99; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Join Segment State' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__JOIN_SEGMENT_STATE = 100; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Outgoing Pseudostates' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__OUTGOING_PSEUDOSTATES = 101; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Initial Transition' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__INITIAL_TRANSITION = 102; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signatures Compatible' of 'Transition'. + * + * + * @generated + */ + public static final int TRANSITION__SIGNATURES_COMPATIBLE = 103; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Required Interfaces' of 'Port'. + * + * + * @generated + */ + public static final int PORT__REQUIRED_INTERFACES = 104; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Port Aggregation' of 'Port'. + * + * + * @generated + */ + public static final int PORT__PORT_AGGREGATION = 105; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Port Destroyed' of 'Port'. + * + * + * @generated + */ + public static final int PORT__PORT_DESTROYED = 106; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Default Value' of 'Port'. + * + * + * @generated + */ + public static final int PORT__DEFAULT_VALUE = 107; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Regions' of 'State'. + * + * + * @generated + */ + public static final int STATE__REGIONS = 108; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Submachine States' of 'State'. + * + * + * @generated + */ + public static final int STATE__SUBMACHINE_STATES = 109; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Destinations Or Sources Of Transitions' of 'State'. + * + * + * @generated + */ + public static final int STATE__DESTINATIONS_OR_SOURCES_OF_TRANSITIONS = 110; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Submachine Or Regions' of 'State'. + * + * + * @generated + */ + public static final int STATE__SUBMACHINE_OR_REGIONS = 111; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Composite States' of 'State'. + * + * + * @generated + */ + public static final int STATE__COMPOSITE_STATES = 112; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Entry Or Exit' of 'State'. + * + * + * @generated + */ + public static final int STATE__ENTRY_OR_EXIT = 113; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Entry Pseudostates' of 'Connection Point Reference'. + * + * + * @generated + */ + public static final int CONNECTION_POINT_REFERENCE__ENTRY_PSEUDOSTATES = 114; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Exit Pseudostates' of 'Connection Point Reference'. + * + * + * @generated + */ + public static final int CONNECTION_POINT_REFERENCE__EXIT_PSEUDOSTATES = 115; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Initial Vertex' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__INITIAL_VERTEX = 116; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate History Vertices' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__HISTORY_VERTICES = 117; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Join Vertex' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__JOIN_VERTEX = 118; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Transitions Incoming' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__TRANSITIONS_INCOMING = 119; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Fork Vertex' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__FORK_VERTEX = 120; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Transitions Outgoing' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__TRANSITIONS_OUTGOING = 121; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Junction Vertex' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__JUNCTION_VERTEX = 122; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Choice Vertex' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__CHOICE_VERTEX = 123; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Outgoing From Initial' of 'Pseudostate'. + * + * + * @generated + */ + public static final int PSEUDOSTATE__OUTGOING_FROM_INITIAL = 124; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Specialized End Number' of 'Association'. + * + * + * @generated + */ + public static final int ASSOCIATION__SPECIALIZED_END_NUMBER = 125; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Specialized End Types' of 'Association'. + * + * + * @generated + */ + public static final int ASSOCIATION__SPECIALIZED_END_TYPES = 126; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Binary Associations' of 'Association'. + * + * + * @generated + */ + public static final int ASSOCIATION__BINARY_ASSOCIATIONS = 127; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Ends' of 'Association'. + * + * + * @generated + */ + public static final int ASSOCIATION__ASSOCIATION_ENDS = 128; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Client Elements' of 'Collaboration Use'. + * + * + * @generated + */ + public static final int COLLABORATION_USE__CLIENT_ELEMENTS = 129; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Every Role' of 'Collaboration Use'. + * + * + * @generated + */ + public static final int COLLABORATION_USE__EVERY_ROLE = 130; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Connectors' of 'Collaboration Use'. + * + * + * @generated + */ + public static final int COLLABORATION_USE__CONNECTORS = 131; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicities' of 'Structured Classifier'. + * + * + * @generated + */ + public static final int STRUCTURED_CLASSIFIER__MULTIPLICITIES = 132; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Types' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__TYPES = 133; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__COMPATIBLE = 134; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Roles' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__ROLES = 135; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Between Interfaces Ports' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__BETWEEN_INTERFACES_PORTS = 136; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Between Interface Port Implements' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__BETWEEN_INTERFACE_PORT_IMPLEMENTS = 137; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Between Interface Port Signature' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__BETWEEN_INTERFACE_PORT_SIGNATURE = 138; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Union Signature Compatible' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__UNION_SIGNATURE_COMPATIBLE = 139; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Assembly Connector' of 'Connector'. + * + * + * @generated + */ + public static final int CONNECTOR__ASSEMBLY_CONNECTOR = 140; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Inherited Parameters' of 'Redefinable Template Signature'. + * + * + * @generated + */ + public static final int REDEFINABLE_TEMPLATE_SIGNATURE__INHERITED_PARAMETERS = 141; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Constraining Classifier' of 'Classifier Template Parameter'. + * + * + * @generated + */ + public static final int CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER = 142; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Non Owned End' of 'Extension'. + * + * + * @generated + */ + public static final int EXTENSION__NON_OWNED_END = 143; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Binary' of 'Extension'. + * + * + * @generated + */ + public static final int EXTENSION__IS_BINARY = 144; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Extension End'. + * + * + * @generated + */ + public static final int EXTENSION_END__MULTIPLICITY = 145; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Aggregation' of 'Extension End'. + * + * + * @generated + */ + public static final int EXTENSION_END__AGGREGATION = 146; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Operands' of 'String Expression'. + * + * + * @generated + */ + public static final int STRING_EXPRESSION__OPERANDS = 147; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Subexpressions' of 'String Expression'. + * + * + * @generated + */ + public static final int STRING_EXPRESSION__SUBEXPRESSIONS = 148; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Defining Feature' of 'Instance Specification'. + * + * + * @generated + */ + public static final int INSTANCE_SPECIFICATION__DEFINING_FEATURE = 149; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Structural Feature' of 'Instance Specification'. + * + * + * @generated + */ + public static final int INSTANCE_SPECIFICATION__STRUCTURAL_FEATURE = 150; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployment Target' of 'Instance Specification'. + * + * + * @generated + */ + public static final int INSTANCE_SPECIFICATION__DEPLOYMENT_TARGET = 151; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Deployment Artifact' of 'Instance Specification'. + * + * + * @generated + */ + public static final int INSTANCE_SPECIFICATION__DEPLOYMENT_ARTIFACT = 152; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Output Parameter' of 'Function Behavior'. + * + * + * @generated + */ + public static final int FUNCTION_BEHAVIOR__ONE_OUTPUT_PARAMETER = 153; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Types Of Parameters' of 'Function Behavior'. + * + * + * @generated + */ + public static final int FUNCTION_BEHAVIOR__TYPES_OF_PARAMETERS = 154; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Associations' of 'Actor'. + * + * + * @generated + */ + public static final int ACTOR__ASSOCIATIONS = 155; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Have Name' of 'Actor'. + * + * + * @generated + */ + public static final int ACTOR__MUST_HAVE_NAME = 156; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Sending Receiving Message Event' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__SENDING_RECEIVING_MESSAGE_EVENT = 157; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signature Refer To' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__SIGNATURE_REFER_TO = 158; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signature Is Operation' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__SIGNATURE_IS_OPERATION = 159; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Signature Is Signal' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__SIGNATURE_IS_SIGNAL = 160; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Arguments' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__ARGUMENTS = 161; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Cross Boundaries' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__CANNOT_CROSS_BOUNDARIES = 162; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Occurrence Specifications' of 'Message'. + * + * + * @generated + */ + public static final int MESSAGE__OCCURRENCE_SPECIFICATIONS = 163; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Interaction Uses Share Lifeline' of 'Lifeline'. + * + * + * @generated + */ + public static final int LIFELINE__INTERACTION_USES_SHARE_LIFELINE = 164; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Selector Specified' of 'Lifeline'. + * + * + * @generated + */ + public static final int LIFELINE__SELECTOR_SPECIFIED = 165; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Classifier' of 'Lifeline'. + * + * + * @generated + */ + public static final int LIFELINE__SAME_CLASSIFIER = 166; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parts Of Internal Structures' of 'Part Decomposition'. + * + * + * @generated + */ + public static final int PART_DECOMPOSITION__PARTS_OF_INTERNAL_STRUCTURES = 167; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Assume' of 'Part Decomposition'. + * + * + * @generated + */ + public static final int PART_DECOMPOSITION__ASSUME = 168; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Commutativity Of Decomposition' of 'Part Decomposition'. + * + * + * @generated + */ + public static final int PART_DECOMPOSITION__COMMUTATIVITY_OF_DECOMPOSITION = 169; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Gates Match' of 'Interaction Use'. + * + * + * @generated + */ + public static final int INTERACTION_USE__GATES_MATCH = 170; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate All Lifelines' of 'Interaction Use'. + * + * + * @generated + */ + public static final int INTERACTION_USE__ALL_LIFELINES = 171; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Arguments Correspond To Parameters' of 'Interaction Use'. + * + * + * @generated + */ + public static final int INTERACTION_USE__ARGUMENTS_CORRESPOND_TO_PARAMETERS = 172; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Arguments Are Constants' of 'Interaction Use'. + * + * + * @generated + */ + public static final int INTERACTION_USE__ARGUMENTS_ARE_CONSTANTS = 173; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Messages Actual Gate' of 'Gate'. + * + * + * @generated + */ + public static final int GATE__MESSAGES_ACTUAL_GATE = 174; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Messages Combined Fragment' of 'Gate'. + * + * + * @generated + */ + public static final int GATE__MESSAGES_COMBINED_FRAGMENT = 175; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Activity Node'. + * + * + * @generated + */ + public static final int ACTIVITY_NODE__OWNED = 176; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned Structured Node' of 'Activity Node'. + * + * + * @generated + */ + public static final int ACTIVITY_NODE__OWNED_STRUCTURED_NODE = 177; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Source And Target' of 'Activity Edge'. + * + * + * @generated + */ + public static final int ACTIVITY_EDGE__SOURCE_AND_TARGET = 178; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Activity Edge'. + * + * + * @generated + */ + public static final int ACTIVITY_EDGE__OWNED = 179; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Structured Node' of 'Activity Edge'. + * + * + * @generated + */ + public static final int ACTIVITY_EDGE__STRUCTURED_NODE = 180; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Supergroups' of 'Activity'. + * + * + * @generated + */ + public static final int ACTIVITY__NO_SUPERGROUPS = 181; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Activity Parameter Node' of 'Activity'. + * + * + * @generated + */ + public static final int ACTIVITY__ACTIVITY_PARAMETER_NODE = 182; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Autonomous' of 'Activity'. + * + * + * @generated + */ + public static final int ACTIVITY__AUTONOMOUS = 183; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Dimension' of 'Activity Partition'. + * + * + * @generated + */ + public static final int ACTIVITY_PARTITION__IS_DIMENSION = 184; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Node Or Edge' of 'Activity Partition'. + * + * + * @generated + */ + public static final int ACTIVITY_PARTITION__NODE_OR_EDGE = 185; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Represents Part' of 'Activity Partition'. + * + * + * @generated + */ + public static final int ACTIVITY_PARTITION__REPRESENTS_PART = 186; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Represents Classifier' of 'Activity Partition'. + * + * + * @generated + */ + public static final int ACTIVITY_PARTITION__REPRESENTS_CLASSIFIER = 187; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Represents Part And Is Contained' of 'Activity Partition'. + * + * + * @generated + */ + public static final int ACTIVITY_PARTITION__REPRESENTS_PART_AND_IS_CONTAINED = 188; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Nodes And Edges' of 'Activity Group'. + * + * + * @generated + */ + public static final int ACTIVITY_GROUP__NODES_AND_EDGES = 189; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Contained' of 'Activity Group'. + * + * + * @generated + */ + public static final int ACTIVITY_GROUP__NOT_CONTAINED = 190; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Group Owned' of 'Activity Group'. + * + * + * @generated + */ + public static final int ACTIVITY_GROUP__GROUP_OWNED = 191; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edges' of 'Structured Activity Node'. + * + * + * @generated + */ + public static final int STRUCTURED_ACTIVITY_NODE__EDGES = 192; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Owned' of 'Variable'. + * + * + * @generated + */ + public static final int VARIABLE__OWNED = 193; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Interrupting Edges' of 'Interruptible Activity Region'. + * + * + * @generated + */ + public static final int INTERRUPTIBLE_ACTIVITY_REGION__INTERRUPTING_EDGES = 194; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Exception Body' of 'Exception Handler'. + * + * + * @generated + */ + public static final int EXCEPTION_HANDLER__EXCEPTION_BODY = 195; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pins' of 'Exception Handler'. + * + * + * @generated + */ + public static final int EXCEPTION_HANDLER__RESULT_PINS = 196; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Input' of 'Exception Handler'. + * + * + * @generated + */ + public static final int EXCEPTION_HANDLER__ONE_INPUT = 197; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edge Source Target' of 'Exception Handler'. + * + * + * @generated + */ + public static final int EXCEPTION_HANDLER__EDGE_SOURCE_TARGET = 198; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Object Flow Edges' of 'Object Node'. + * + * + * @generated + */ + public static final int OBJECT_NODE__OBJECT_FLOW_EDGES = 199; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Unique' of 'Object Node'. + * + * + * @generated + */ + public static final int OBJECT_NODE__NOT_UNIQUE = 200; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Selection Behavior' of 'Object Node'. + * + * + * @generated + */ + public static final int OBJECT_NODE__SELECTION_BEHAVIOR = 201; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Output Parameter' of 'Object Node'. + * + * + * @generated + */ + public static final int OBJECT_NODE__INPUT_OUTPUT_PARAMETER = 202; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Control Pins' of 'Pin'. + * + * + * @generated + */ + public static final int PIN__CONTROL_PINS = 203; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Guard Directly Prior' of 'Interaction Operand'. + * + * + * @generated + */ + public static final int INTERACTION_OPERAND__GUARD_DIRECTLY_PRIOR = 204; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Guard Contain References' of 'Interaction Operand'. + * + * + * @generated + */ + public static final int INTERACTION_OPERAND__GUARD_CONTAIN_REFERENCES = 205; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Dynamic Variables' of 'Interaction Constraint'. + * + * + * @generated + */ + public static final int INTERACTION_CONSTRAINT__DYNAMIC_VARIABLES = 206; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Global Data' of 'Interaction Constraint'. + * + * + * @generated + */ + public static final int INTERACTION_CONSTRAINT__GLOBAL_DATA = 207; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Minint Maxint' of 'Interaction Constraint'. + * + * + * @generated + */ + public static final int INTERACTION_CONSTRAINT__MININT_MAXINT = 208; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Minint' of 'Interaction Constraint'. + * + * + * @generated + */ + public static final int INTERACTION_CONSTRAINT__MININT = 209; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maxint' of 'Interaction Constraint'. + * + * + * @generated + */ + public static final int INTERACTION_CONSTRAINT__MAXINT = 210; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Maxint Greater Equal Minint' of 'Interaction Constraint'. + * + * + * @generated + */ + public static final int INTERACTION_CONSTRAINT__MAXINT_GREATER_EQUAL_MININT = 211; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Lifeline' of 'Execution Specification'. + * + * + * @generated + */ + public static final int EXECUTION_SPECIFICATION__SAME_LIFELINE = 212; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Action Referenced' of 'Action Execution Specification'. + * + * + * @generated + */ + public static final int ACTION_EXECUTION_SPECIFICATION__ACTION_REFERENCED = 213; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Occurrence Above' of 'Creation Event'. + * + * + * @generated + */ + public static final int CREATION_EVENT__NO_OCCURRENCE_ABOVE = 214; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Occurrence Specifications Below' of 'Destruction Event'. + * + * + * @generated + */ + public static final int DESTRUCTION_EVENT__NO_OCCURRENCE_SPECIFICATIONS_BELOW = 215; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Opt Loop Break Neg' of 'Combined Fragment'. + * + * + * @generated + */ + public static final int COMBINED_FRAGMENT__OPT_LOOP_BREAK_NEG = 216; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Minint And Maxint' of 'Combined Fragment'. + * + * + * @generated + */ + public static final int COMBINED_FRAGMENT__MININT_AND_MAXINT = 217; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Break' of 'Combined Fragment'. + * + * + * @generated + */ + public static final int COMBINED_FRAGMENT__BREAK = 218; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Consider And Ignore' of 'Combined Fragment'. + * + * + * @generated + */ + public static final int COMBINED_FRAGMENT__CONSIDER_AND_IGNORE = 219; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Name' of 'Continuation'. + * + * + * @generated + */ + public static final int CONTINUATION__SAME_NAME = 220; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Global' of 'Continuation'. + * + * + * @generated + */ + public static final int CONTINUATION__GLOBAL = 221; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate First Or Last Interaction Fragment' of 'Continuation'. + * + * + * @generated + */ + public static final int CONTINUATION__FIRST_OR_LAST_INTERACTION_FRAGMENT = 222; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Consider Or Ignore' of 'Consider Ignore Fragment'. + * + * + * @generated + */ + public static final int CONSIDER_IGNORE_FRAGMENT__CONSIDER_OR_IGNORE = 223; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type' of 'Consider Ignore Fragment'. + * + * + * @generated + */ + public static final int CONSIDER_IGNORE_FRAGMENT__TYPE = 224; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Not Abstract' of 'Create Object Action'. + * + * + * @generated + */ + public static final int CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT = 225; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Not Association Class' of 'Create Object Action'. + * + * + * @generated + */ + public static final int CREATE_OBJECT_ACTION__CLASSIFIER_NOT_ASSOCIATION_CLASS = 226; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Create Object Action'. + * + * + * @generated + */ + public static final int CREATE_OBJECT_ACTION__SAME_TYPE = 227; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Create Object Action'. + * + * + * @generated + */ + public static final int CREATE_OBJECT_ACTION__MULTIPLICITY = 228; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Destroy Object Action'. + * + * + * @generated + */ + public static final int DESTROY_OBJECT_ACTION__MULTIPLICITY = 229; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Type' of 'Destroy Object Action'. + * + * + * @generated + */ + public static final int DESTROY_OBJECT_ACTION__NO_TYPE = 230; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Type' of 'Test Identity Action'. + * + * + * @generated + */ + public static final int TEST_IDENTITY_ACTION__NO_TYPE = 231; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Test Identity Action'. + * + * + * @generated + */ + public static final int TEST_IDENTITY_ACTION__MULTIPLICITY = 232; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Is Boolean' of 'Test Identity Action'. + * + * + * @generated + */ + public static final int TEST_IDENTITY_ACTION__RESULT_IS_BOOLEAN = 233; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Contained' of 'Read Self Action'. + * + * + * @generated + */ + public static final int READ_SELF_ACTION__CONTAINED = 234; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Static' of 'Read Self Action'. + * + * + * @generated + */ + public static final int READ_SELF_ACTION__NOT_STATIC = 235; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type' of 'Read Self Action'. + * + * + * @generated + */ + public static final int READ_SELF_ACTION__TYPE = 236; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Read Self Action'. + * + * + * @generated + */ + public static final int READ_SELF_ACTION__MULTIPLICITY = 237; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Static' of 'Structural Feature Action'. + * + * + * @generated + */ + public static final int STRUCTURAL_FEATURE_ACTION__NOT_STATIC = 238; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Structural Feature Action'. + * + * + * @generated + */ + public static final int STRUCTURAL_FEATURE_ACTION__SAME_TYPE = 239; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Structural Feature Action'. + * + * + * @generated + */ + public static final int STRUCTURAL_FEATURE_ACTION__MULTIPLICITY = 240; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility' of 'Structural Feature Action'. + * + * + * @generated + */ + public static final int STRUCTURAL_FEATURE_ACTION__VISIBILITY = 241; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Featuring Classifier' of 'Structural Feature Action'. + * + * + * @generated + */ + public static final int STRUCTURAL_FEATURE_ACTION__ONE_FEATURING_CLASSIFIER = 242; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type And Ordering' of 'Read Structural Feature Action'. + * + * + * @generated + */ + public static final int READ_STRUCTURAL_FEATURE_ACTION__TYPE_AND_ORDERING = 243; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Read Structural Feature Action'. + * + * + * @generated + */ + public static final int READ_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY = 244; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Pin' of 'Write Structural Feature Action'. + * + * + * @generated + */ + public static final int WRITE_STRUCTURAL_FEATURE_ACTION__INPUT_PIN = 245; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Write Structural Feature Action'. + * + * + * @generated + */ + public static final int WRITE_STRUCTURAL_FEATURE_ACTION__MULTIPLICITY = 246; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Non Unique Removal' of 'Remove Structural Feature Value Action'. + * + * + * @generated + */ + public static final int REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__NON_UNIQUE_REMOVAL = 247; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unlimited Natural And Multiplicity' of 'Add Structural Feature Value Action'. + * + * + * @generated + */ + public static final int ADD_STRUCTURAL_FEATURE_VALUE_ACTION__UNLIMITED_NATURAL_AND_MULTIPLICITY = 248; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Association' of 'Link Action'. + * + * + * @generated + */ + public static final int LINK_ACTION__SAME_ASSOCIATION = 249; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Static' of 'Link Action'. + * + * + * @generated + */ + public static final int LINK_ACTION__NOT_STATIC = 250; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Pins' of 'Link Action'. + * + * + * @generated + */ + public static final int LINK_ACTION__SAME_PINS = 251; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Property Is Association End' of 'Link End Data'. + * + * + * @generated + */ + public static final int LINK_END_DATA__PROPERTY_IS_ASSOCIATION_END = 252; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Link End Data'. + * + * + * @generated + */ + public static final int LINK_END_DATA__SAME_TYPE = 253; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Link End Data'. + * + * + * @generated + */ + public static final int LINK_END_DATA__MULTIPLICITY = 254; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualifiers' of 'Link End Data'. + * + * + * @generated + */ + public static final int LINK_END_DATA__QUALIFIERS = 255; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate End Object Input Pin' of 'Link End Data'. + * + * + * @generated + */ + public static final int LINK_END_DATA__END_OBJECT_INPUT_PIN = 256; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualifier Attribute' of 'Qualifier Value'. + * + * + * @generated + */ + public static final int QUALIFIER_VALUE__QUALIFIER_ATTRIBUTE = 257; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Qualifier' of 'Qualifier Value'. + * + * + * @generated + */ + public static final int QUALIFIER_VALUE__TYPE_OF_QUALIFIER = 258; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Qualifier' of 'Qualifier Value'. + * + * + * @generated + */ + public static final int QUALIFIER_VALUE__MULTIPLICITY_OF_QUALIFIER = 259; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Open End' of 'Read Link Action'. + * + * + * @generated + */ + public static final int READ_LINK_ACTION__ONE_OPEN_END = 260; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type And Ordering' of 'Read Link Action'. + * + * + * @generated + */ + public static final int READ_LINK_ACTION__TYPE_AND_ORDERING = 261; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Multiplicity' of 'Read Link Action'. + * + * + * @generated + */ + public static final int READ_LINK_ACTION__COMPATIBLE_MULTIPLICITY = 262; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Navigable Open End' of 'Read Link Action'. + * + * + * @generated + */ + public static final int READ_LINK_ACTION__NAVIGABLE_OPEN_END = 263; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Visibility' of 'Read Link Action'. + * + * + * @generated + */ + public static final int READ_LINK_ACTION__VISIBILITY = 264; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Create Link Action' of 'Link End Creation Data'. + * + * + * @generated + */ + public static final int LINK_END_CREATION_DATA__CREATE_LINK_ACTION = 265; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Single Input Pin' of 'Link End Creation Data'. + * + * + * @generated + */ + public static final int LINK_END_CREATION_DATA__SINGLE_INPUT_PIN = 266; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Not Abstract' of 'Create Link Action'. + * + * + * @generated + */ + public static final int CREATE_LINK_ACTION__ASSOCIATION_NOT_ABSTRACT = 267; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Allow Access' of 'Write Link Action'. + * + * + * @generated + */ + public static final int WRITE_LINK_ACTION__ALLOW_ACCESS = 268; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Destroy Link Action' of 'Link End Destruction Data'. + * + * + * @generated + */ + public static final int LINK_END_DESTRUCTION_DATA__DESTROY_LINK_ACTION = 269; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unlimited Natural And Multiplicity' of 'Link End Destruction Data'. + * + * + * @generated + */ + public static final int LINK_END_DESTRUCTION_DATA__UNLIMITED_NATURAL_AND_MULTIPLICITY = 270; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Clear Association Action'. + * + * + * @generated + */ + public static final int CLEAR_ASSOCIATION_ACTION__SAME_TYPE = 271; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Clear Association Action'. + * + * + * @generated + */ + public static final int CLEAR_ASSOCIATION_ACTION__MULTIPLICITY = 272; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number And Order' of 'Broadcast Signal Action'. + * + * + * @generated + */ + public static final int BROADCAST_SIGNAL_ACTION__NUMBER_AND_ORDER = 273; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Broadcast Signal Action'. + * + * + * @generated + */ + public static final int BROADCAST_SIGNAL_ACTION__TYPE_ORDERING_MULTIPLICITY = 274; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate On Port' of 'Invocation Action'. + * + * + * @generated + */ + public static final int INVOCATION_ACTION__ON_PORT = 275; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Type' of 'Value Specification Action'. + * + * + * @generated + */ + public static final int VALUE_SPECIFICATION_ACTION__COMPATIBLE_TYPE = 276; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Value Specification Action'. + * + * + * @generated + */ + public static final int VALUE_SPECIFICATION_ACTION__MULTIPLICITY = 277; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Value Time Expression' of 'Time Observation Action'. + * + * + * @generated + */ + public static final int TIME_OBSERVATION_ACTION__INPUT_VALUE_TIME_EXPRESSION = 278; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Type' of 'Value Pin'. + * + * + * @generated + */ + public static final int VALUE_PIN__COMPATIBLE_TYPE = 279; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Value Duration' of 'Duration Observation Action'. + * + * + * @generated + */ + public static final int DURATION_OBSERVATION_ACTION__INPUT_VALUE_DURATION = 280; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Synchronous Call' of 'Call Action'. + * + * + * @generated + */ + public static final int CALL_ACTION__SYNCHRONOUS_CALL = 281; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number And Order' of 'Call Action'. + * + * + * @generated + */ + public static final int CALL_ACTION__NUMBER_AND_ORDER = 282; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Call Action'. + * + * + * @generated + */ + public static final int CALL_ACTION__TYPE_ORDERING_MULTIPLICITY = 283; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number Order' of 'Send Signal Action'. + * + * + * @generated + */ + public static final int SEND_SIGNAL_ACTION__NUMBER_ORDER = 284; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Send Signal Action'. + * + * + * @generated + */ + public static final int SEND_SIGNAL_ACTION__TYPE_ORDERING_MULTIPLICITY = 285; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Argument Pin Equal Parameter' of 'Call Operation Action'. + * + * + * @generated + */ + public static final int CALL_OPERATION_ACTION__ARGUMENT_PIN_EQUAL_PARAMETER = 286; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pin Equal Parameter' of 'Call Operation Action'. + * + * + * @generated + */ + public static final int CALL_OPERATION_ACTION__RESULT_PIN_EQUAL_PARAMETER = 287; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Target Pin' of 'Call Operation Action'. + * + * + * @generated + */ + public static final int CALL_OPERATION_ACTION__TYPE_TARGET_PIN = 288; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Call Operation Action'. + * + * + * @generated + */ + public static final int CALL_OPERATION_ACTION__TYPE_ORDERING_MULTIPLICITY = 289; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Argument Pin Equal Parameter' of 'Call Behavior Action'. + * + * + * @generated + */ + public static final int CALL_BEHAVIOR_ACTION__ARGUMENT_PIN_EQUAL_PARAMETER = 290; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pin Equal Parameter' of 'Call Behavior Action'. + * + * + * @generated + */ + public static final int CALL_BEHAVIOR_ACTION__RESULT_PIN_EQUAL_PARAMETER = 291; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Ordering Multiplicity' of 'Call Behavior Action'. + * + * + * @generated + */ + public static final int CALL_BEHAVIOR_ACTION__TYPE_ORDERING_MULTIPLICITY = 292; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Sources And Targets' of 'Information Item'. + * + * + * @generated + */ + public static final int INFORMATION_ITEM__SOURCES_AND_TARGETS = 293; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Has No' of 'Information Item'. + * + * + * @generated + */ + public static final int INFORMATION_ITEM__HAS_NO = 294; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Not Instantiable' of 'Information Item'. + * + * + * @generated + */ + public static final int INFORMATION_ITEM__NOT_INSTANTIABLE = 295; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Sources And Targets Kind' of 'Information Flow'. + * + * + * @generated + */ + public static final int INFORMATION_FLOW__SOURCES_AND_TARGETS_KIND = 296; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Must Conform' of 'Information Flow'. + * + * + * @generated + */ + public static final int INFORMATION_FLOW__MUST_CONFORM = 297; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Convey Classifiers' of 'Information Flow'. + * + * + * @generated + */ + public static final int INFORMATION_FLOW__CONVEY_CLASSIFIERS = 298; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Scope Of Variable' of 'Variable Action'. + * + * + * @generated + */ + public static final int VARIABLE_ACTION__SCOPE_OF_VARIABLE = 299; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type And Ordering' of 'Read Variable Action'. + * + * + * @generated + */ + public static final int READ_VARIABLE_ACTION__TYPE_AND_ORDERING = 300; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Multiplicity' of 'Read Variable Action'. + * + * + * @generated + */ + public static final int READ_VARIABLE_ACTION__COMPATIBLE_MULTIPLICITY = 301; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Write Variable Action'. + * + * + * @generated + */ + public static final int WRITE_VARIABLE_ACTION__SAME_TYPE = 302; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Write Variable Action'. + * + * + * @generated + */ + public static final int WRITE_VARIABLE_ACTION__MULTIPLICITY = 303; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Single Input Pin' of 'Add Variable Value Action'. + * + * + * @generated + */ + public static final int ADD_VARIABLE_VALUE_ACTION__SINGLE_INPUT_PIN = 304; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unlimited Natural' of 'Remove Variable Value Action'. + * + * + * @generated + */ + public static final int REMOVE_VARIABLE_VALUE_ACTION__UNLIMITED_NATURAL = 305; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Output Pin' of 'Action Input Pin'. + * + * + * @generated + */ + public static final int ACTION_INPUT_PIN__ONE_OUTPUT_PIN = 306; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Pin' of 'Action Input Pin'. + * + * + * @generated + */ + public static final int ACTION_INPUT_PIN__INPUT_PIN = 307; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Control Or Data Flow' of 'Action Input Pin'. + * + * + * @generated + */ + public static final int ACTION_INPUT_PIN__NO_CONTROL_OR_DATA_FLOW = 308; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Is Classifier' of 'Read Extent Action'. + * + * + * @generated + */ + public static final int READ_EXTENT_ACTION__TYPE_IS_CLASSIFIER = 309; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Read Extent Action'. + * + * + * @generated + */ + public static final int READ_EXTENT_ACTION__MULTIPLICITY_OF_RESULT = 310; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Classifier Not Abstract' of 'Reclassify Object Action'. + * + * + * @generated + */ + public static final int RECLASSIFY_OBJECT_ACTION__CLASSIFIER_NOT_ABSTRACT = 311; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Reclassify Object Action'. + * + * + * @generated + */ + public static final int RECLASSIFY_OBJECT_ACTION__MULTIPLICITY = 312; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Pin' of 'Reclassify Object Action'. + * + * + * @generated + */ + public static final int RECLASSIFY_OBJECT_ACTION__INPUT_PIN = 313; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Input' of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public static final int READ_IS_CLASSIFIED_OBJECT_ACTION__MULTIPLICITY_OF_INPUT = 314; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Type' of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public static final int READ_IS_CLASSIFIED_OBJECT_ACTION__NO_TYPE = 315; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Output' of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public static final int READ_IS_CLASSIFIED_OBJECT_ACTION__MULTIPLICITY_OF_OUTPUT = 316; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Boolean Result' of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public static final int READ_IS_CLASSIFIED_OBJECT_ACTION__BOOLEAN_RESULT = 317; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Start Classifier Behavior Action'. + * + * + * @generated + */ + public static final int START_CLASSIFIER_BEHAVIOR_ACTION__MULTIPLICITY = 318; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Has Classifier' of 'Start Classifier Behavior Action'. + * + * + * @generated + */ + public static final int START_CLASSIFIER_BEHAVIOR_ACTION__TYPE_HAS_CLASSIFIER = 319; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Property' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__PROPERTY = 320; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Of Association' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__ASSOCIATION_OF_ASSOCIATION = 321; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Ends Of Association' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__ENDS_OF_ASSOCIATION = 322; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Object' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__TYPE_OF_OBJECT = 323; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__MULTIPLICITY_OF_OBJECT = 324; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Result' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__TYPE_OF_RESULT = 325; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Read Link Object End Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_ACTION__MULTIPLICITY_OF_RESULT = 326; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Qualifier Attribute' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER_ATTRIBUTE = 327; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Of Association' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__ASSOCIATION_OF_ASSOCIATION = 328; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Ends Of Association' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__ENDS_OF_ASSOCIATION = 329; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Object' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__TYPE_OF_OBJECT = 330; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Qualifier' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_QUALIFIER = 331; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_OBJECT = 332; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__SAME_TYPE = 333; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public static final int READ_LINK_OBJECT_END_QUALIFIER_ACTION__MULTIPLICITY_OF_RESULT = 334; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Class' of 'Create Link Object Action'. + * + * + * @generated + */ + public static final int CREATE_LINK_OBJECT_ACTION__ASSOCIATION_CLASS = 335; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Of Result' of 'Create Link Object Action'. + * + * + * @generated + */ + public static final int CREATE_LINK_OBJECT_ACTION__TYPE_OF_RESULT = 336; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity' of 'Create Link Object Action'. + * + * + * @generated + */ + public static final int CREATE_LINK_OBJECT_ACTION__MULTIPLICITY = 337; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Input Pins' of 'Accept Event Action'. + * + * + * @generated + */ + public static final int ACCEPT_EVENT_ACTION__NO_INPUT_PINS = 338; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Output Pins' of 'Accept Event Action'. + * + * + * @generated + */ + public static final int ACCEPT_EVENT_ACTION__NO_OUTPUT_PINS = 339; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Trigger Events' of 'Accept Event Action'. + * + * + * @generated + */ + public static final int ACCEPT_EVENT_ACTION__TRIGGER_EVENTS = 340; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Unmarshall' of 'Accept Event Action'. + * + * + * @generated + */ + public static final int ACCEPT_EVENT_ACTION__IS_UNMARSHALL = 341; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result Pins' of 'Accept Call Action'. + * + * + * @generated + */ + public static final int ACCEPT_CALL_ACTION__RESULT_PINS = 342; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Trigger Call Event' of 'Accept Call Action'. + * + * + * @generated + */ + public static final int ACCEPT_CALL_ACTION__TRIGGER_CALL_EVENT = 343; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Unmarshall' of 'Accept Call Action'. + * + * + * @generated + */ + public static final int ACCEPT_CALL_ACTION__IS_UNMARSHALL = 344; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Pins Match Parameter' of 'Reply Action'. + * + * + * @generated + */ + public static final int REPLY_ACTION__PINS_MATCH_PARAMETER = 345; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Event On Reply To Call Trigger' of 'Reply Action'. + * + * + * @generated + */ + public static final int REPLY_ACTION__EVENT_ON_REPLY_TO_CALL_TRIGGER = 346; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__SAME_TYPE = 347; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Object' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__MULTIPLICITY_OF_OBJECT = 348; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Number Of Result' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__NUMBER_OF_RESULT = 349; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type And Ordering' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__TYPE_AND_ORDERING = 350; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Multiplicity Of Result' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__MULTIPLICITY_OF_RESULT = 351; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Structural Feature' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__STRUCTURAL_FEATURE = 352; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Unmarshall Type Is Classifier' of 'Unmarshall Action'. + * + * + * @generated + */ + public static final int UNMARSHALL_ACTION__UNMARSHALL_TYPE_IS_CLASSIFIER = 353; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Object Nodes' of 'Control Flow'. + * + * + * @generated + */ + public static final int CONTROL_FLOW__OBJECT_NODES = 354; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Incoming Edges' of 'Initial Node'. + * + * + * @generated + */ + public static final int INITIAL_NODE__NO_INCOMING_EDGES = 355; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Control Edges' of 'Initial Node'. + * + * + * @generated + */ + public static final int INITIAL_NODE__CONTROL_EDGES = 356; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameter' of 'Activity Parameter Node'. + * + * + * @generated + */ + public static final int ACTIVITY_PARAMETER_NODE__PARAMETER = 357; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Type' of 'Activity Parameter Node'. + * + * + * @generated + */ + public static final int ACTIVITY_PARAMETER_NODE__SAME_TYPE = 358; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Edges' of 'Activity Parameter Node'. + * + * + * @generated + */ + public static final int ACTIVITY_PARAMETER_NODE__NO_EDGES = 359; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Incoming Edges' of 'Activity Parameter Node'. + * + * + * @generated + */ + public static final int ACTIVITY_PARAMETER_NODE__NO_INCOMING_EDGES = 360; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Outgoing Edges' of 'Activity Parameter Node'. + * + * + * @generated + */ + public static final int ACTIVITY_PARAMETER_NODE__NO_OUTGOING_EDGES = 361; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Incoming Edge' of 'Fork Node'. + * + * + * @generated + */ + public static final int FORK_NODE__ONE_INCOMING_EDGE = 362; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edges' of 'Fork Node'. + * + * + * @generated + */ + public static final int FORK_NODE__EDGES = 363; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Outgoing Edges' of 'Final Node'. + * + * + * @generated + */ + public static final int FINAL_NODE__NO_OUTGOING_EDGES = 364; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Outgoing Edge' of 'Merge Node'. + * + * + * @generated + */ + public static final int MERGE_NODE__ONE_OUTGOING_EDGE = 365; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edges' of 'Merge Node'. + * + * + * @generated + */ + public static final int MERGE_NODE__EDGES = 366; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Incoming Edge' of 'Decision Node'. + * + * + * @generated + */ + public static final int DECISION_NODE__ONE_INCOMING_EDGE = 367; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Parameter' of 'Decision Node'. + * + * + * @generated + */ + public static final int DECISION_NODE__INPUT_PARAMETER = 368; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Edges' of 'Decision Node'. + * + * + * @generated + */ + public static final int DECISION_NODE__EDGES = 369; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate One Outgoing Edge' of 'Join Node'. + * + * + * @generated + */ + public static final int JOIN_NODE__ONE_OUTGOING_EDGE = 370; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Incoming Object Flow' of 'Join Node'. + * + * + * @generated + */ + public static final int JOIN_NODE__INCOMING_OBJECT_FLOW = 371; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Actions' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__NO_ACTIONS = 372; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Types' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__COMPATIBLE_TYPES = 373; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Same Upper Bounds' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__SAME_UPPER_BOUNDS = 374; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Target' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__TARGET = 375; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Transformation Behaviour' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__TRANSFORMATION_BEHAVIOUR = 376; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Selection Behaviour' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__SELECTION_BEHAVIOUR = 377; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input And Output Parameter' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__INPUT_AND_OUTPUT_PARAMETER = 378; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Is Multicast Or Is Multireceive' of 'Object Flow'. + * + * + * @generated + */ + public static final int OBJECT_FLOW__IS_MULTICAST_OR_IS_MULTIRECEIVE = 379; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result No Incoming' of 'Conditional Node'. + * + * + * @generated + */ + public static final int CONDITIONAL_NODE__RESULT_NO_INCOMING = 380; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Decider Output' of 'Clause'. + * + * + * @generated + */ + public static final int CLAUSE__DECIDER_OUTPUT = 381; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Body Output' of 'Clause'. + * + * + * @generated + */ + public static final int CLAUSE__BODY_OUTPUT = 382; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Input Edges' of 'Loop Node'. + * + * + * @generated + */ + public static final int LOOP_NODE__INPUT_EDGES = 383; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Body Output' of 'Loop Node'. + * + * + * @generated + */ + public static final int LOOP_NODE__BODY_OUTPUT = 384; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Result No Incoming' of 'Loop Node'. + * + * + * @generated + */ + public static final int LOOP_NODE__RESULT_NO_INCOMING = 385; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Expansion Nodes' of 'Expansion Region'. + * + * + * @generated + */ + public static final int EXPANSION_REGION__EXPANSION_NODES = 386; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Internal Structure' of 'Node'. + * + * + * @generated + */ + public static final int NODE__INTERNAL_STRUCTURE = 387; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Association Ends' of 'Communication Path'. + * + * + * @generated + */ + public static final int COMMUNICATION_PATH__ASSOCIATION_ENDS = 388; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Outgoing Transitions' of 'Final State'. + * + * + * @generated + */ + public static final int FINAL_STATE__NO_OUTGOING_TRANSITIONS = 389; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Regions' of 'Final State'. + * + * + * @generated + */ + public static final int FINAL_STATE__NO_REGIONS = 390; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Reference Submachine' of 'Final State'. + * + * + * @generated + */ + public static final int FINAL_STATE__CANNOT_REFERENCE_SUBMACHINE = 391; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Entry Behavior' of 'Final State'. + * + * + * @generated + */ + public static final int FINAL_STATE__NO_ENTRY_BEHAVIOR = 392; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No Exitbehavior' of 'Final State'. + * + * + * @generated + */ + public static final int FINAL_STATE__NO_EXITBEHAVIOR = 393; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate No State Behavior' of 'Final State'. + * + * + * @generated + */ + public static final int FINAL_STATE__NO_STATE_BEHAVIOR = 394; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Starting Time' of 'Time Event'. + * + * + * @generated + */ + public static final int TIME_EVENT__STARTING_TIME = 395; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Belongs To Psm' of 'Protocol Transition'. + * + * + * @generated + */ + public static final int PROTOCOL_TRANSITION__BELONGS_TO_PSM = 396; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Associated Actions' of 'Protocol Transition'. + * + * + * @generated + */ + public static final int PROTOCOL_TRANSITION__ASSOCIATED_ACTIONS = 397; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Refers To Operation' of 'Protocol Transition'. + * + * + * @generated + */ + public static final int PROTOCOL_TRANSITION__REFERS_TO_OPERATION = 398; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Cannot Be Defined' of 'Association Class'. + * + * + * @generated + */ + public static final int ASSOCIATION_CLASS__CANNOT_BE_DEFINED = 399; + + /** + * A constant with a fixed name that can be used as the base value for additional hand written constants. + * + * + * @generated + */ + private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 399; + + /** + * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class. + * + * + * @generated + */ + protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public UMLValidator() { + super(); + } + + /** + * Returns the package of this validator switch. + * + * + * @generated + */ + protected EPackage getEPackage() { + return UMLPackage.eINSTANCE; + } + + /** + * Calls validateXXX for the corresonding classifier of the model. + * + * + * @generated + */ + protected boolean validate(int classifierID, Object value, + DiagnosticChain diagnostics, Map context) { + switch (classifierID) { + case UMLPackage.COMMENT : + return validateComment((Comment) value, diagnostics, context); + case UMLPackage.ELEMENT : + return validateElement((Element) value, diagnostics, context); + case UMLPackage.DIRECTED_RELATIONSHIP : + return validateDirectedRelationship( + (DirectedRelationship) value, diagnostics, context); + case UMLPackage.RELATIONSHIP : + return validateRelationship((Relationship) value, diagnostics, + context); + case UMLPackage.LITERAL_SPECIFICATION : + return validateLiteralSpecification( + (LiteralSpecification) value, diagnostics, context); + case UMLPackage.VALUE_SPECIFICATION : + return validateValueSpecification((ValueSpecification) value, + diagnostics, context); + case UMLPackage.TYPED_ELEMENT : + return validateTypedElement((TypedElement) value, diagnostics, + context); + case UMLPackage.NAMED_ELEMENT : + return validateNamedElement((NamedElement) value, diagnostics, + context); + case UMLPackage.DEPENDENCY : + return validateDependency((Dependency) value, diagnostics, + context); + case UMLPackage.PACKAGEABLE_ELEMENT : + return validatePackageableElement((PackageableElement) value, + diagnostics, context); + case UMLPackage.PARAMETERABLE_ELEMENT : + return validateParameterableElement( + (ParameterableElement) value, diagnostics, context); + case UMLPackage.TEMPLATE_PARAMETER : + return validateTemplateParameter((TemplateParameter) value, + diagnostics, context); + case UMLPackage.TEMPLATE_SIGNATURE : + return validateTemplateSignature((TemplateSignature) value, + diagnostics, context); + case UMLPackage.TEMPLATEABLE_ELEMENT : + return validateTemplateableElement((TemplateableElement) value, + diagnostics, context); + case UMLPackage.TEMPLATE_BINDING : + return validateTemplateBinding((TemplateBinding) value, + diagnostics, context); + case UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION : + return validateTemplateParameterSubstitution( + (TemplateParameterSubstitution) value, diagnostics, context); + case UMLPackage.NAMESPACE : + return validateNamespace((Namespace) value, diagnostics, + context); + case UMLPackage.ELEMENT_IMPORT : + return validateElementImport((ElementImport) value, + diagnostics, context); + case UMLPackage.PACKAGE_IMPORT : + return validatePackageImport((PackageImport) value, + diagnostics, context); + case UMLPackage.PACKAGE : + return validatePackage((org.eclipse.uml2.uml.Package) value, + diagnostics, context); + case UMLPackage.PACKAGE_MERGE : + return validatePackageMerge((PackageMerge) value, diagnostics, + context); + case UMLPackage.TYPE : + return validateType((Type) value, diagnostics, context); + case UMLPackage.PROFILE_APPLICATION : + return validateProfileApplication((ProfileApplication) value, + diagnostics, context); + case UMLPackage.PROFILE : + return validateProfile((Profile) value, diagnostics, context); + case UMLPackage.STEREOTYPE : + return validateStereotype((Stereotype) value, diagnostics, + context); + case UMLPackage.CLASS : + return validateClass((org.eclipse.uml2.uml.Class) value, + diagnostics, context); + case UMLPackage.BEHAVIORED_CLASSIFIER : + return validateBehavioredClassifier( + (BehavioredClassifier) value, diagnostics, context); + case UMLPackage.CLASSIFIER : + return validateClassifier((Classifier) value, diagnostics, + context); + case UMLPackage.REDEFINABLE_ELEMENT : + return validateRedefinableElement((RedefinableElement) value, + diagnostics, context); + case UMLPackage.GENERALIZATION : + return validateGeneralization((Generalization) value, + diagnostics, context); + case UMLPackage.GENERALIZATION_SET : + return validateGeneralizationSet((GeneralizationSet) value, + diagnostics, context); + case UMLPackage.FEATURE : + return validateFeature((Feature) value, diagnostics, context); + case UMLPackage.USE_CASE : + return validateUseCase((UseCase) value, diagnostics, context); + case UMLPackage.INCLUDE : + return validateInclude((Include) value, diagnostics, context); + case UMLPackage.EXTEND : + return validateExtend((Extend) value, diagnostics, context); + case UMLPackage.CONSTRAINT : + return validateConstraint((Constraint) value, diagnostics, + context); + case UMLPackage.EXTENSION_POINT : + return validateExtensionPoint((ExtensionPoint) value, + diagnostics, context); + case UMLPackage.SUBSTITUTION : + return validateSubstitution((Substitution) value, diagnostics, + context); + case UMLPackage.REALIZATION : + return validateRealization((Realization) value, diagnostics, + context); + case UMLPackage.ABSTRACTION : + return validateAbstraction((Abstraction) value, diagnostics, + context); + case UMLPackage.OPAQUE_EXPRESSION : + return validateOpaqueExpression((OpaqueExpression) value, + diagnostics, context); + case UMLPackage.PARAMETER : + return validateParameter((Parameter) value, diagnostics, + context); + case UMLPackage.MULTIPLICITY_ELEMENT : + return validateMultiplicityElement((MultiplicityElement) value, + diagnostics, context); + case UMLPackage.CONNECTABLE_ELEMENT : + return validateConnectableElement((ConnectableElement) value, + diagnostics, context); + case UMLPackage.CONNECTOR_END : + return validateConnectorEnd((ConnectorEnd) value, diagnostics, + context); + case UMLPackage.PROPERTY : + return validateProperty((Property) value, diagnostics, context); + case UMLPackage.DEPLOYMENT_TARGET : + return validateDeploymentTarget((DeploymentTarget) value, + diagnostics, context); + case UMLPackage.DEPLOYMENT : + return validateDeployment((Deployment) value, diagnostics, + context); + case UMLPackage.DEPLOYED_ARTIFACT : + return validateDeployedArtifact((DeployedArtifact) value, + diagnostics, context); + case UMLPackage.DEPLOYMENT_SPECIFICATION : + return validateDeploymentSpecification( + (DeploymentSpecification) value, diagnostics, context); + case UMLPackage.ARTIFACT : + return validateArtifact((Artifact) value, diagnostics, context); + case UMLPackage.MANIFESTATION : + return validateManifestation((Manifestation) value, + diagnostics, context); + case UMLPackage.OPERATION : + return validateOperation((Operation) value, diagnostics, + context); + case UMLPackage.BEHAVIORAL_FEATURE : + return validateBehavioralFeature((BehavioralFeature) value, + diagnostics, context); + case UMLPackage.BEHAVIOR : + return validateBehavior((Behavior) value, diagnostics, context); + case UMLPackage.PARAMETER_SET : + return validateParameterSet((ParameterSet) value, diagnostics, + context); + case UMLPackage.DATA_TYPE : + return validateDataType((DataType) value, diagnostics, context); + case UMLPackage.INTERFACE : + return validateInterface((Interface) value, diagnostics, + context); + case UMLPackage.RECEPTION : + return validateReception((Reception) value, diagnostics, + context); + case UMLPackage.SIGNAL : + return validateSignal((Signal) value, diagnostics, context); + case UMLPackage.PROTOCOL_STATE_MACHINE : + return validateProtocolStateMachine( + (ProtocolStateMachine) value, diagnostics, context); + case UMLPackage.STATE_MACHINE : + return validateStateMachine((StateMachine) value, diagnostics, + context); + case UMLPackage.REGION : + return validateRegion((Region) value, diagnostics, context); + case UMLPackage.VERTEX : + return validateVertex((Vertex) value, diagnostics, context); + case UMLPackage.TRANSITION : + return validateTransition((Transition) value, diagnostics, + context); + case UMLPackage.TRIGGER : + return validateTrigger((Trigger) value, diagnostics, context); + case UMLPackage.EVENT : + return validateEvent((Event) value, diagnostics, context); + case UMLPackage.PORT : + return validatePort((Port) value, diagnostics, context); + case UMLPackage.STATE : + return validateState((State) value, diagnostics, context); + case UMLPackage.CONNECTION_POINT_REFERENCE : + return validateConnectionPointReference( + (ConnectionPointReference) value, diagnostics, context); + case UMLPackage.PSEUDOSTATE : + return validatePseudostate((Pseudostate) value, diagnostics, + context); + case UMLPackage.PROTOCOL_CONFORMANCE : + return validateProtocolConformance((ProtocolConformance) value, + diagnostics, context); + case UMLPackage.OPERATION_TEMPLATE_PARAMETER : + return validateOperationTemplateParameter( + (OperationTemplateParameter) value, diagnostics, context); + case UMLPackage.STRUCTURAL_FEATURE : + return validateStructuralFeature((StructuralFeature) value, + diagnostics, context); + case UMLPackage.ASSOCIATION : + return validateAssociation((Association) value, diagnostics, + context); + case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER : + return validateConnectableElementTemplateParameter( + (ConnectableElementTemplateParameter) value, diagnostics, + context); + case UMLPackage.COLLABORATION_USE : + return validateCollaborationUse((CollaborationUse) value, + diagnostics, context); + case UMLPackage.COLLABORATION : + return validateCollaboration((Collaboration) value, + diagnostics, context); + case UMLPackage.STRUCTURED_CLASSIFIER : + return validateStructuredClassifier( + (StructuredClassifier) value, diagnostics, context); + case UMLPackage.CONNECTOR : + return validateConnector((Connector) value, diagnostics, + context); + case UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE : + return validateRedefinableTemplateSignature( + (RedefinableTemplateSignature) value, diagnostics, context); + case UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER : + return validateClassifierTemplateParameter( + (ClassifierTemplateParameter) value, diagnostics, context); + case UMLPackage.INTERFACE_REALIZATION : + return validateInterfaceRealization( + (InterfaceRealization) value, diagnostics, context); + case UMLPackage.ENCAPSULATED_CLASSIFIER : + return validateEncapsulatedClassifier( + (EncapsulatedClassifier) value, diagnostics, context); + case UMLPackage.EXTENSION : + return validateExtension((Extension) value, diagnostics, + context); + case UMLPackage.EXTENSION_END : + return validateExtensionEnd((ExtensionEnd) value, diagnostics, + context); + case UMLPackage.IMAGE : + return validateImage((Image) value, diagnostics, context); + case UMLPackage.STRING_EXPRESSION : + return validateStringExpression((StringExpression) value, + diagnostics, context); + case UMLPackage.EXPRESSION : + return validateExpression((Expression) value, diagnostics, + context); + case UMLPackage.LITERAL_INTEGER : + return validateLiteralInteger((LiteralInteger) value, + diagnostics, context); + case UMLPackage.LITERAL_STRING : + return validateLiteralString((LiteralString) value, + diagnostics, context); + case UMLPackage.LITERAL_BOOLEAN : + return validateLiteralBoolean((LiteralBoolean) value, + diagnostics, context); + case UMLPackage.LITERAL_NULL : + return validateLiteralNull((LiteralNull) value, diagnostics, + context); + case UMLPackage.SLOT : + return validateSlot((Slot) value, diagnostics, context); + case UMLPackage.INSTANCE_SPECIFICATION : + return validateInstanceSpecification( + (InstanceSpecification) value, diagnostics, context); + case UMLPackage.ENUMERATION : + return validateEnumeration((Enumeration) value, diagnostics, + context); + case UMLPackage.ENUMERATION_LITERAL : + return validateEnumerationLiteral((EnumerationLiteral) value, + diagnostics, context); + case UMLPackage.PRIMITIVE_TYPE : + return validatePrimitiveType((PrimitiveType) value, + diagnostics, context); + case UMLPackage.INSTANCE_VALUE : + return validateInstanceValue((InstanceValue) value, + diagnostics, context); + case UMLPackage.LITERAL_UNLIMITED_NATURAL : + return validateLiteralUnlimitedNatural( + (LiteralUnlimitedNatural) value, diagnostics, context); + case UMLPackage.OPAQUE_BEHAVIOR : + return validateOpaqueBehavior((OpaqueBehavior) value, + diagnostics, context); + case UMLPackage.FUNCTION_BEHAVIOR : + return validateFunctionBehavior((FunctionBehavior) value, + diagnostics, context); + case UMLPackage.ACTOR : + return validateActor((Actor) value, diagnostics, context); + case UMLPackage.USAGE : + return validateUsage((Usage) value, diagnostics, context); + case UMLPackage.MESSAGE : + return validateMessage((Message) value, diagnostics, context); + case UMLPackage.MESSAGE_END : + return validateMessageEnd((MessageEnd) value, diagnostics, + context); + case UMLPackage.INTERACTION : + return validateInteraction((Interaction) value, diagnostics, + context); + case UMLPackage.INTERACTION_FRAGMENT : + return validateInteractionFragment((InteractionFragment) value, + diagnostics, context); + case UMLPackage.LIFELINE : + return validateLifeline((Lifeline) value, diagnostics, context); + case UMLPackage.PART_DECOMPOSITION : + return validatePartDecomposition((PartDecomposition) value, + diagnostics, context); + case UMLPackage.INTERACTION_USE : + return validateInteractionUse((InteractionUse) value, + diagnostics, context); + case UMLPackage.GATE : + return validateGate((Gate) value, diagnostics, context); + case UMLPackage.ACTION : + return validateAction((Action) value, diagnostics, context); + case UMLPackage.EXECUTABLE_NODE : + return validateExecutableNode((ExecutableNode) value, + diagnostics, context); + case UMLPackage.ACTIVITY_NODE : + return validateActivityNode((ActivityNode) value, diagnostics, + context); + case UMLPackage.ACTIVITY_EDGE : + return validateActivityEdge((ActivityEdge) value, diagnostics, + context); + case UMLPackage.ACTIVITY : + return validateActivity((Activity) value, diagnostics, context); + case UMLPackage.ACTIVITY_PARTITION : + return validateActivityPartition((ActivityPartition) value, + diagnostics, context); + case UMLPackage.ACTIVITY_GROUP : + return validateActivityGroup((ActivityGroup) value, + diagnostics, context); + case UMLPackage.STRUCTURED_ACTIVITY_NODE : + return validateStructuredActivityNode( + (StructuredActivityNode) value, diagnostics, context); + case UMLPackage.VARIABLE : + return validateVariable((Variable) value, diagnostics, context); + case UMLPackage.INTERRUPTIBLE_ACTIVITY_REGION : + return validateInterruptibleActivityRegion( + (InterruptibleActivityRegion) value, diagnostics, context); + case UMLPackage.EXCEPTION_HANDLER : + return validateExceptionHandler((ExceptionHandler) value, + diagnostics, context); + case UMLPackage.OBJECT_NODE : + return validateObjectNode((ObjectNode) value, diagnostics, + context); + case UMLPackage.OUTPUT_PIN : + return validateOutputPin((OutputPin) value, diagnostics, + context); + case UMLPackage.PIN : + return validatePin((Pin) value, diagnostics, context); + case UMLPackage.INPUT_PIN : + return validateInputPin((InputPin) value, diagnostics, context); + case UMLPackage.GENERAL_ORDERING : + return validateGeneralOrdering((GeneralOrdering) value, + diagnostics, context); + case UMLPackage.OCCURRENCE_SPECIFICATION : + return validateOccurrenceSpecification( + (OccurrenceSpecification) value, diagnostics, context); + case UMLPackage.INTERACTION_OPERAND : + return validateInteractionOperand((InteractionOperand) value, + diagnostics, context); + case UMLPackage.INTERACTION_CONSTRAINT : + return validateInteractionConstraint( + (InteractionConstraint) value, diagnostics, context); + case UMLPackage.EXECUTION_SPECIFICATION : + return validateExecutionSpecification( + (ExecutionSpecification) value, diagnostics, context); + case UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION : + return validateExecutionOccurrenceSpecification( + (ExecutionOccurrenceSpecification) value, diagnostics, + context); + case UMLPackage.EXECUTION_EVENT : + return validateExecutionEvent((ExecutionEvent) value, + diagnostics, context); + case UMLPackage.STATE_INVARIANT : + return validateStateInvariant((StateInvariant) value, + diagnostics, context); + case UMLPackage.ACTION_EXECUTION_SPECIFICATION : + return validateActionExecutionSpecification( + (ActionExecutionSpecification) value, diagnostics, context); + case UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION : + return validateBehaviorExecutionSpecification( + (BehaviorExecutionSpecification) value, diagnostics, + context); + case UMLPackage.CREATION_EVENT : + return validateCreationEvent((CreationEvent) value, + diagnostics, context); + case UMLPackage.DESTRUCTION_EVENT : + return validateDestructionEvent((DestructionEvent) value, + diagnostics, context); + case UMLPackage.SEND_OPERATION_EVENT : + return validateSendOperationEvent((SendOperationEvent) value, + diagnostics, context); + case UMLPackage.MESSAGE_EVENT : + return validateMessageEvent((MessageEvent) value, diagnostics, + context); + case UMLPackage.SEND_SIGNAL_EVENT : + return validateSendSignalEvent((SendSignalEvent) value, + diagnostics, context); + case UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION : + return validateMessageOccurrenceSpecification( + (MessageOccurrenceSpecification) value, diagnostics, + context); + case UMLPackage.COMBINED_FRAGMENT : + return validateCombinedFragment((CombinedFragment) value, + diagnostics, context); + case UMLPackage.CONTINUATION : + return validateContinuation((Continuation) value, diagnostics, + context); + case UMLPackage.CONSIDER_IGNORE_FRAGMENT : + return validateConsiderIgnoreFragment( + (ConsiderIgnoreFragment) value, diagnostics, context); + case UMLPackage.CALL_EVENT : + return validateCallEvent((CallEvent) value, diagnostics, + context); + case UMLPackage.CHANGE_EVENT : + return validateChangeEvent((ChangeEvent) value, diagnostics, + context); + case UMLPackage.SIGNAL_EVENT : + return validateSignalEvent((SignalEvent) value, diagnostics, + context); + case UMLPackage.ANY_RECEIVE_EVENT : + return validateAnyReceiveEvent((AnyReceiveEvent) value, + diagnostics, context); + case UMLPackage.CREATE_OBJECT_ACTION : + return validateCreateObjectAction((CreateObjectAction) value, + diagnostics, context); + case UMLPackage.DESTROY_OBJECT_ACTION : + return validateDestroyObjectAction((DestroyObjectAction) value, + diagnostics, context); + case UMLPackage.TEST_IDENTITY_ACTION : + return validateTestIdentityAction((TestIdentityAction) value, + diagnostics, context); + case UMLPackage.READ_SELF_ACTION : + return validateReadSelfAction((ReadSelfAction) value, + diagnostics, context); + case UMLPackage.STRUCTURAL_FEATURE_ACTION : + return validateStructuralFeatureAction( + (StructuralFeatureAction) value, diagnostics, context); + case UMLPackage.READ_STRUCTURAL_FEATURE_ACTION : + return validateReadStructuralFeatureAction( + (ReadStructuralFeatureAction) value, diagnostics, context); + case UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION : + return validateWriteStructuralFeatureAction( + (WriteStructuralFeatureAction) value, diagnostics, context); + case UMLPackage.CLEAR_STRUCTURAL_FEATURE_ACTION : + return validateClearStructuralFeatureAction( + (ClearStructuralFeatureAction) value, diagnostics, context); + case UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION : + return validateRemoveStructuralFeatureValueAction( + (RemoveStructuralFeatureValueAction) value, diagnostics, + context); + case UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION : + return validateAddStructuralFeatureValueAction( + (AddStructuralFeatureValueAction) value, diagnostics, + context); + case UMLPackage.LINK_ACTION : + return validateLinkAction((LinkAction) value, diagnostics, + context); + case UMLPackage.LINK_END_DATA : + return validateLinkEndData((LinkEndData) value, diagnostics, + context); + case UMLPackage.QUALIFIER_VALUE : + return validateQualifierValue((QualifierValue) value, + diagnostics, context); + case UMLPackage.READ_LINK_ACTION : + return validateReadLinkAction((ReadLinkAction) value, + diagnostics, context); + case UMLPackage.LINK_END_CREATION_DATA : + return validateLinkEndCreationData((LinkEndCreationData) value, + diagnostics, context); + case UMLPackage.CREATE_LINK_ACTION : + return validateCreateLinkAction((CreateLinkAction) value, + diagnostics, context); + case UMLPackage.WRITE_LINK_ACTION : + return validateWriteLinkAction((WriteLinkAction) value, + diagnostics, context); + case UMLPackage.DESTROY_LINK_ACTION : + return validateDestroyLinkAction((DestroyLinkAction) value, + diagnostics, context); + case UMLPackage.LINK_END_DESTRUCTION_DATA : + return validateLinkEndDestructionData( + (LinkEndDestructionData) value, diagnostics, context); + case UMLPackage.CLEAR_ASSOCIATION_ACTION : + return validateClearAssociationAction( + (ClearAssociationAction) value, diagnostics, context); + case UMLPackage.BROADCAST_SIGNAL_ACTION : + return validateBroadcastSignalAction( + (BroadcastSignalAction) value, diagnostics, context); + case UMLPackage.INVOCATION_ACTION : + return validateInvocationAction((InvocationAction) value, + diagnostics, context); + case UMLPackage.SEND_OBJECT_ACTION : + return validateSendObjectAction((SendObjectAction) value, + diagnostics, context); + case UMLPackage.VALUE_SPECIFICATION_ACTION : + return validateValueSpecificationAction( + (ValueSpecificationAction) value, diagnostics, context); + case UMLPackage.TIME_EXPRESSION : + return validateTimeExpression((TimeExpression) value, + diagnostics, context); + case UMLPackage.DURATION : + return validateDuration((Duration) value, diagnostics, context); + case UMLPackage.TIME_OBSERVATION_ACTION : + return validateTimeObservationAction( + (TimeObservationAction) value, diagnostics, context); + case UMLPackage.VALUE_PIN : + return validateValuePin((ValuePin) value, diagnostics, context); + case UMLPackage.DURATION_INTERVAL : + return validateDurationInterval((DurationInterval) value, + diagnostics, context); + case UMLPackage.INTERVAL : + return validateInterval((Interval) value, diagnostics, context); + case UMLPackage.TIME_CONSTRAINT : + return validateTimeConstraint((TimeConstraint) value, + diagnostics, context); + case UMLPackage.INTERVAL_CONSTRAINT : + return validateIntervalConstraint((IntervalConstraint) value, + diagnostics, context); + case UMLPackage.TIME_INTERVAL : + return validateTimeInterval((TimeInterval) value, diagnostics, + context); + case UMLPackage.DURATION_OBSERVATION_ACTION : + return validateDurationObservationAction( + (DurationObservationAction) value, diagnostics, context); + case UMLPackage.DURATION_CONSTRAINT : + return validateDurationConstraint((DurationConstraint) value, + diagnostics, context); + case UMLPackage.OPAQUE_ACTION : + return validateOpaqueAction((OpaqueAction) value, diagnostics, + context); + case UMLPackage.CALL_ACTION : + return validateCallAction((CallAction) value, diagnostics, + context); + case UMLPackage.SEND_SIGNAL_ACTION : + return validateSendSignalAction((SendSignalAction) value, + diagnostics, context); + case UMLPackage.CALL_OPERATION_ACTION : + return validateCallOperationAction((CallOperationAction) value, + diagnostics, context); + case UMLPackage.CALL_BEHAVIOR_ACTION : + return validateCallBehaviorAction((CallBehaviorAction) value, + diagnostics, context); + case UMLPackage.INFORMATION_ITEM : + return validateInformationItem((InformationItem) value, + diagnostics, context); + case UMLPackage.INFORMATION_FLOW : + return validateInformationFlow((InformationFlow) value, + diagnostics, context); + case UMLPackage.MODEL : + return validateModel((Model) value, diagnostics, context); + case UMLPackage.VARIABLE_ACTION : + return validateVariableAction((VariableAction) value, + diagnostics, context); + case UMLPackage.READ_VARIABLE_ACTION : + return validateReadVariableAction((ReadVariableAction) value, + diagnostics, context); + case UMLPackage.WRITE_VARIABLE_ACTION : + return validateWriteVariableAction((WriteVariableAction) value, + diagnostics, context); + case UMLPackage.CLEAR_VARIABLE_ACTION : + return validateClearVariableAction((ClearVariableAction) value, + diagnostics, context); + case UMLPackage.ADD_VARIABLE_VALUE_ACTION : + return validateAddVariableValueAction( + (AddVariableValueAction) value, diagnostics, context); + case UMLPackage.REMOVE_VARIABLE_VALUE_ACTION : + return validateRemoveVariableValueAction( + (RemoveVariableValueAction) value, diagnostics, context); + case UMLPackage.RAISE_EXCEPTION_ACTION : + return validateRaiseExceptionAction( + (RaiseExceptionAction) value, diagnostics, context); + case UMLPackage.ACTION_INPUT_PIN : + return validateActionInputPin((ActionInputPin) value, + diagnostics, context); + case UMLPackage.READ_EXTENT_ACTION : + return validateReadExtentAction((ReadExtentAction) value, + diagnostics, context); + case UMLPackage.RECLASSIFY_OBJECT_ACTION : + return validateReclassifyObjectAction( + (ReclassifyObjectAction) value, diagnostics, context); + case UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION : + return validateReadIsClassifiedObjectAction( + (ReadIsClassifiedObjectAction) value, diagnostics, context); + case UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION : + return validateStartClassifierBehaviorAction( + (StartClassifierBehaviorAction) value, diagnostics, context); + case UMLPackage.READ_LINK_OBJECT_END_ACTION : + return validateReadLinkObjectEndAction( + (ReadLinkObjectEndAction) value, diagnostics, context); + case UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION : + return validateReadLinkObjectEndQualifierAction( + (ReadLinkObjectEndQualifierAction) value, diagnostics, + context); + case UMLPackage.CREATE_LINK_OBJECT_ACTION : + return validateCreateLinkObjectAction( + (CreateLinkObjectAction) value, diagnostics, context); + case UMLPackage.ACCEPT_EVENT_ACTION : + return validateAcceptEventAction((AcceptEventAction) value, + diagnostics, context); + case UMLPackage.ACCEPT_CALL_ACTION : + return validateAcceptCallAction((AcceptCallAction) value, + diagnostics, context); + case UMLPackage.REPLY_ACTION : + return validateReplyAction((ReplyAction) value, diagnostics, + context); + case UMLPackage.UNMARSHALL_ACTION : + return validateUnmarshallAction((UnmarshallAction) value, + diagnostics, context); + case UMLPackage.CONTROL_NODE : + return validateControlNode((ControlNode) value, diagnostics, + context); + case UMLPackage.CONTROL_FLOW : + return validateControlFlow((ControlFlow) value, diagnostics, + context); + case UMLPackage.INITIAL_NODE : + return validateInitialNode((InitialNode) value, diagnostics, + context); + case UMLPackage.ACTIVITY_PARAMETER_NODE : + return validateActivityParameterNode( + (ActivityParameterNode) value, diagnostics, context); + case UMLPackage.FORK_NODE : + return validateForkNode((ForkNode) value, diagnostics, context); + case UMLPackage.FLOW_FINAL_NODE : + return validateFlowFinalNode((FlowFinalNode) value, + diagnostics, context); + case UMLPackage.FINAL_NODE : + return validateFinalNode((FinalNode) value, diagnostics, + context); + case UMLPackage.CENTRAL_BUFFER_NODE : + return validateCentralBufferNode((CentralBufferNode) value, + diagnostics, context); + case UMLPackage.MERGE_NODE : + return validateMergeNode((MergeNode) value, diagnostics, + context); + case UMLPackage.DECISION_NODE : + return validateDecisionNode((DecisionNode) value, diagnostics, + context); + case UMLPackage.ACTIVITY_FINAL_NODE : + return validateActivityFinalNode((ActivityFinalNode) value, + diagnostics, context); + case UMLPackage.JOIN_NODE : + return validateJoinNode((JoinNode) value, diagnostics, context); + case UMLPackage.DATA_STORE_NODE : + return validateDataStoreNode((DataStoreNode) value, + diagnostics, context); + case UMLPackage.OBJECT_FLOW : + return validateObjectFlow((ObjectFlow) value, diagnostics, + context); + case UMLPackage.SEQUENCE_NODE : + return validateSequenceNode((SequenceNode) value, diagnostics, + context); + case UMLPackage.CONDITIONAL_NODE : + return validateConditionalNode((ConditionalNode) value, + diagnostics, context); + case UMLPackage.CLAUSE : + return validateClause((Clause) value, diagnostics, context); + case UMLPackage.LOOP_NODE : + return validateLoopNode((LoopNode) value, diagnostics, context); + case UMLPackage.EXPANSION_NODE : + return validateExpansionNode((ExpansionNode) value, + diagnostics, context); + case UMLPackage.EXPANSION_REGION : + return validateExpansionRegion((ExpansionRegion) value, + diagnostics, context); + case UMLPackage.COMPONENT_REALIZATION : + return validateComponentRealization( + (ComponentRealization) value, diagnostics, context); + case UMLPackage.COMPONENT : + return validateComponent((Component) value, diagnostics, + context); + case UMLPackage.NODE : + return validateNode((Node) value, diagnostics, context); + case UMLPackage.DEVICE : + return validateDevice((Device) value, diagnostics, context); + case UMLPackage.EXECUTION_ENVIRONMENT : + return validateExecutionEnvironment( + (ExecutionEnvironment) value, diagnostics, context); + case UMLPackage.COMMUNICATION_PATH : + return validateCommunicationPath((CommunicationPath) value, + diagnostics, context); + case UMLPackage.FINAL_STATE : + return validateFinalState((FinalState) value, diagnostics, + context); + case UMLPackage.TIME_EVENT : + return validateTimeEvent((TimeEvent) value, diagnostics, + context); + case UMLPackage.PROTOCOL_TRANSITION : + return validateProtocolTransition((ProtocolTransition) value, + diagnostics, context); + case UMLPackage.ASSOCIATION_CLASS : + return validateAssociationClass((AssociationClass) value, + diagnostics, context); + case UMLPackage.VISIBILITY_KIND : + return validateVisibilityKind((Object) value, diagnostics, + context); + case UMLPackage.CALL_CONCURRENCY_KIND : + return validateCallConcurrencyKind((Object) value, diagnostics, + context); + case UMLPackage.TRANSITION_KIND : + return validateTransitionKind((Object) value, diagnostics, + context); + case UMLPackage.PSEUDOSTATE_KIND : + return validatePseudostateKind((Object) value, diagnostics, + context); + case UMLPackage.AGGREGATION_KIND : + return validateAggregationKind((Object) value, diagnostics, + context); + case UMLPackage.PARAMETER_DIRECTION_KIND : + return validateParameterDirectionKind((Object) value, + diagnostics, context); + case UMLPackage.PARAMETER_EFFECT_KIND : + return validateParameterEffectKind((Object) value, diagnostics, + context); + case UMLPackage.CONNECTOR_KIND : + return validateConnectorKind((Object) value, diagnostics, + context); + case UMLPackage.MESSAGE_KIND : + return validateMessageKind((Object) value, diagnostics, context); + case UMLPackage.MESSAGE_SORT : + return validateMessageSort((Object) value, diagnostics, context); + case UMLPackage.OBJECT_NODE_ORDERING_KIND : + return validateObjectNodeOrderingKind((Object) value, + diagnostics, context); + case UMLPackage.INTERACTION_OPERATOR_KIND : + return validateInteractionOperatorKind((Object) value, + diagnostics, context); + case UMLPackage.EXPANSION_KIND : + return validateExpansionKind((Object) value, diagnostics, + context); + default : + return true; + } + } + + /** + * + * + * @generated + */ + public boolean validateComment(Comment comment, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(comment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(comment, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(comment, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(comment, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(comment, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(comment, diagnostics, + context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateElement(Element element, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(element, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(element, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(element, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(element, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(element, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(element, diagnostics, + context); + return result; + } + + /** + * Validates the validateNotOwnSelf constraint of 'Element'. + * + * + * @generated + */ + public boolean validateElement_validateNotOwnSelf(Element element, + DiagnosticChain diagnostics, Map context) { + return element.validateNotOwnSelf(diagnostics, context); + } + + /** + * Validates the validateHasOwner constraint of 'Element'. + * + * + * @generated + */ + public boolean validateElement_validateHasOwner(Element element, + DiagnosticChain diagnostics, Map context) { + return element.validateHasOwner(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDirectedRelationship( + DirectedRelationship directedRelationship, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + directedRelationship, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(directedRelationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(directedRelationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(directedRelationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(directedRelationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(directedRelationship, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateRelationship(Relationship relationship, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(relationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(relationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(relationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(relationship, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(relationship, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(relationship, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLiteralSpecification( + LiteralSpecification literalSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + literalSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(literalSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(literalSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(literalSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(literalSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(literalSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(literalSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + literalSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + literalSpecification, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecification( + ValueSpecification valueSpecification, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(valueSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + valueSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + valueSpecification, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTypedElement(TypedElement typedElement, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(typedElement, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(typedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + typedElement, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateNamedElement(NamedElement namedElement, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(namedElement, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(namedElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + namedElement, diagnostics, context); + return result; + } + + /** + * Validates the validateNoName constraint of 'Named Element'. + * + * + * @generated + */ + public boolean validateNamedElement_validateNoName( + NamedElement namedElement, DiagnosticChain diagnostics, Map context) { + return namedElement.validateNoName(diagnostics, context); + } + + /** + * Validates the validateQualifiedName constraint of 'Named Element'. + * + * + * @generated + */ + public boolean validateNamedElement_validateQualifiedName( + NamedElement namedElement, DiagnosticChain diagnostics, Map context) { + return namedElement.validateQualifiedName(diagnostics, context); + } + + /** + * Validates the validateVisibilityNeedsOwnership constraint of 'Named Element'. + * + * + * @generated + */ + public boolean validateNamedElement_validateVisibilityNeedsOwnership( + NamedElement namedElement, DiagnosticChain diagnostics, Map context) { + return namedElement.validateVisibilityNeedsOwnership(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateDependency(Dependency dependency, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(dependency, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(dependency, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(dependency, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(dependency, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(dependency, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(dependency, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(dependency, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(dependency, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + dependency, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validatePackageableElement( + PackageableElement packageableElement, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(packageableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + packageableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + packageableElement, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateParameterableElement( + ParameterableElement parameterableElement, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + parameterableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(parameterableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(parameterableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(parameterableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(parameterableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(parameterableElement, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTemplateParameter( + TemplateParameter templateParameter, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(templateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(templateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(templateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(templateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(templateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(templateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateParameter_validateMustBeCompatible( + templateParameter, diagnostics, context); + return result; + } + + /** + * Validates the validateMustBeCompatible constraint of 'Template Parameter'. + * + * + * @generated + */ + public boolean validateTemplateParameter_validateMustBeCompatible( + TemplateParameter templateParameter, DiagnosticChain diagnostics, + Map context) { + return templateParameter.validateMustBeCompatible(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTemplateSignature( + TemplateSignature templateSignature, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(templateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(templateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(templateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(templateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(templateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(templateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateSignature_validateOwnElements( + templateSignature, diagnostics, context); + return result; + } + + /** + * Validates the validateOwnElements constraint of 'Template Signature'. + * + * + * @generated + */ + public boolean validateTemplateSignature_validateOwnElements( + TemplateSignature templateSignature, DiagnosticChain diagnostics, + Map context) { + return templateSignature.validateOwnElements(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTemplateableElement( + TemplateableElement templateableElement, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + templateableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(templateableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(templateableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(templateableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(templateableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(templateableElement, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTemplateBinding(TemplateBinding templateBinding, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(templateBinding, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(templateBinding, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(templateBinding, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(templateBinding, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(templateBinding, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(templateBinding, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateBinding_validateParameterSubstitution( + templateBinding, diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateBinding_validateOneParameterSubstitution( + templateBinding, diagnostics, context); + return result; + } + + /** + * Validates the validateParameterSubstitution constraint of 'Template Binding'. + * + * + * @generated + */ + public boolean validateTemplateBinding_validateParameterSubstitution( + TemplateBinding templateBinding, DiagnosticChain diagnostics, + Map context) { + return templateBinding.validateParameterSubstitution(diagnostics, + context); + } + + /** + * Validates the validateOneParameterSubstitution constraint of 'Template Binding'. + * + * + * @generated + */ + public boolean validateTemplateBinding_validateOneParameterSubstitution( + TemplateBinding templateBinding, DiagnosticChain diagnostics, + Map context) { + return templateBinding.validateOneParameterSubstitution(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTemplateParameterSubstitution( + TemplateParameterSubstitution templateParameterSubstitution, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateParameterSubstitution_validateMustBeCompatible( + templateParameterSubstitution, diagnostics, context); + return result; + } + + /** + * Validates the validateMustBeCompatible constraint of 'Template Parameter Substitution'. + * + * + * @generated + */ + public boolean validateTemplateParameterSubstitution_validateMustBeCompatible( + TemplateParameterSubstitution templateParameterSubstitution, + DiagnosticChain diagnostics, Map context) { + return templateParameterSubstitution.validateMustBeCompatible( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateNamespace(Namespace namespace, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(namespace, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(namespace, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(namespace, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(namespace, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(namespace, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(namespace, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(namespace, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(namespace, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + namespace, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + namespace, diagnostics, context); + return result; + } + + /** + * Validates the validateMembersAreDistinguishable constraint of 'Namespace'. + * + * + * @generated + */ + public boolean validateNamespace_validateMembersAreDistinguishable( + Namespace namespace, DiagnosticChain diagnostics, Map context) { + return namespace + .validateMembersAreDistinguishable(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateElementImport(ElementImport elementImport, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(elementImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(elementImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(elementImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(elementImport, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(elementImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(elementImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElementImport_validateVisibilityPublicOrPrivate( + elementImport, diagnostics, context); + if (result || diagnostics != null) + result &= validateElementImport_validateVisibilityOrPrivate( + elementImport, diagnostics, context); + if (result || diagnostics != null) + result &= validateElementImport_validateImportedElementIsPublic( + elementImport, diagnostics, context); + return result; + } + + /** + * Validates the validateVisibilityPublicOrPrivate constraint of 'Element Import'. + * + * + * @generated + */ + public boolean validateElementImport_validateVisibilityPublicOrPrivate( + ElementImport elementImport, DiagnosticChain diagnostics, + Map context) { + return elementImport.validateVisibilityPublicOrPrivate(diagnostics, + context); + } + + /** + * Validates the validateVisibilityOrPrivate constraint of 'Element Import'. + * + * + * @generated + */ + public boolean validateElementImport_validateVisibilityOrPrivate( + ElementImport elementImport, DiagnosticChain diagnostics, + Map context) { + return elementImport.validateVisibilityOrPrivate(diagnostics, context); + } + + /** + * Validates the validateImportedElementIsPublic constraint of 'Element Import'. + * + * + * @generated + */ + public boolean validateElementImport_validateImportedElementIsPublic( + ElementImport elementImport, DiagnosticChain diagnostics, + Map context) { + return elementImport.validateImportedElementIsPublic(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validatePackageImport(PackageImport packageImport, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(packageImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(packageImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(packageImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(packageImport, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(packageImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(packageImport, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePackageImport_validatePublicOrPrivate( + packageImport, diagnostics, context); + return result; + } + + /** + * Validates the validatePublicOrPrivate constraint of 'Package Import'. + * + * + * @generated + */ + public boolean validatePackageImport_validatePublicOrPrivate( + PackageImport packageImport, DiagnosticChain diagnostics, + Map context) { + return packageImport.validatePublicOrPrivate(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validatePackage(org.eclipse.uml2.uml.Package package_, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(package_, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(package_, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(package_, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(package_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(package_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(package_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(package_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(package_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + package_, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + package_, diagnostics, context); + if (result || diagnostics != null) + result &= validatePackage_validateElementsPublicOrPrivate(package_, + diagnostics, context); + return result; + } + + /** + * Validates the validateElementsPublicOrPrivate constraint of 'Package'. + * + * + * @generated + */ + public boolean validatePackage_validateElementsPublicOrPrivate( + org.eclipse.uml2.uml.Package package_, DiagnosticChain diagnostics, + Map context) { + return package_.validateElementsPublicOrPrivate(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validatePackageMerge(PackageMerge packageMerge, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(packageMerge, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(packageMerge, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(packageMerge, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(packageMerge, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(packageMerge, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(packageMerge, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateType(Type type, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(type, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(type, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(type, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(type, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(type, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(type, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(type, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(type, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + type, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateProfileApplication( + ProfileApplication profileApplication, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(profileApplication, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(profileApplication, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(profileApplication, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(profileApplication, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(profileApplication, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(profileApplication, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePackageImport_validatePublicOrPrivate( + profileApplication, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateProfile(Profile profile, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(profile, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(profile, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(profile, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(profile, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(profile, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(profile, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(profile, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(profile, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + profile, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + profile, diagnostics, context); + if (result || diagnostics != null) + result &= validatePackage_validateElementsPublicOrPrivate(profile, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProfile_validateMetaclassReferenceNotSpecialized( + profile, diagnostics, context); + if (result || diagnostics != null) + result &= validateProfile_validateReferencesSameMetamodel(profile, + diagnostics, context); + return result; + } + + /** + * Validates the validateMetaclassReferenceNotSpecialized constraint of 'Profile'. + * + * + * @generated + */ + public boolean validateProfile_validateMetaclassReferenceNotSpecialized( + Profile profile, DiagnosticChain diagnostics, Map context) { + return profile.validateMetaclassReferenceNotSpecialized(diagnostics, + context); + } + + /** + * Validates the validateReferencesSameMetamodel constraint of 'Profile'. + * + * + * @generated + */ + public boolean validateProfile_validateReferencesSameMetamodel( + Profile profile, DiagnosticChain diagnostics, Map context) { + return profile.validateReferencesSameMetamodel(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStereotype(Stereotype stereotype, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(stereotype, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(stereotype, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(stereotype, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + stereotype, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStereotype_validateNameNotClash(stereotype, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStereotype_validateGeneralize(stereotype, + diagnostics, context); + return result; + } + + /** + * Validates the validateNameNotClash constraint of 'Stereotype'. + * + * + * @generated + */ + public boolean validateStereotype_validateNameNotClash( + Stereotype stereotype, DiagnosticChain diagnostics, Map context) { + return stereotype.validateNameNotClash(diagnostics, context); + } + + /** + * Validates the validateGeneralize constraint of 'Stereotype'. + * + * + * @generated + */ + public boolean validateStereotype_validateGeneralize(Stereotype stereotype, + DiagnosticChain diagnostics, Map context) { + return stereotype.validateGeneralize(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClass(org.eclipse.uml2.uml.Class class_, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(class_, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(class_, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(class_, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(class_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(class_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(class_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(class_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(class_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(class_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + class_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(class_, diagnostics, + context); + return result; + } + + /** + * Validates the validatePassiveClass constraint of 'Class'. + * + * + * @generated + */ + public boolean validateClass_validatePassiveClass( + org.eclipse.uml2.uml.Class class_, DiagnosticChain diagnostics, + Map context) { + return class_.validatePassiveClass(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBehavioredClassifier( + BehavioredClassifier behavioredClassifier, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(behavioredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(behavioredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(behavioredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(behavioredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(behavioredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(behavioredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + behavioredClassifier, diagnostics, context); + return result; + } + + /** + * Validates the validateClassBehavior constraint of 'Behaviored Classifier'. + * + * + * @generated + */ + public boolean validateBehavioredClassifier_validateClassBehavior( + BehavioredClassifier behavioredClassifier, + DiagnosticChain diagnostics, Map context) { + return behavioredClassifier.validateClassBehavior(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClassifier(Classifier classifier, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(classifier, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(classifier, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(classifier, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + classifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + classifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + classifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + classifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + classifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + classifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(classifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + classifier, diagnostics, context); + return result; + } + + /** + * Validates the validateNoCyclesInGeneralization constraint of 'Classifier'. + * + * + * @generated + */ + public boolean validateClassifier_validateNoCyclesInGeneralization( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + return classifier + .validateNoCyclesInGeneralization(diagnostics, context); + } + + /** + * Validates the validateSpecializeType constraint of 'Classifier'. + * + * + * @generated + */ + public boolean validateClassifier_validateSpecializeType( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + return classifier.validateSpecializeType(diagnostics, context); + } + + /** + * Validates the validateGeneralizationHierarchies constraint of 'Classifier'. + * + * + * @generated + */ + public boolean validateClassifier_validateGeneralizationHierarchies( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + return classifier.validateGeneralizationHierarchies(diagnostics, + context); + } + + /** + * Validates the validateSpecialize constraint of 'Classifier'. + * + * + * @generated + */ + public boolean validateClassifier_validateSpecialize(Classifier classifier, + DiagnosticChain diagnostics, Map context) { + return classifier.validateSpecialize(diagnostics, context); + } + + /** + * Validates the validateMapsToGeneralizationSet constraint of 'Classifier'. + * + * + * @generated + */ + public boolean validateClassifier_validateMapsToGeneralizationSet( + Classifier classifier, DiagnosticChain diagnostics, Map context) { + return classifier.validateMapsToGeneralizationSet(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinableElement( + RedefinableElement redefinableElement, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(redefinableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + redefinableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + redefinableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + redefinableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + redefinableElement, diagnostics, context); + return result; + } + + /** + * Validates the validateRedefinitionContextValid constraint of 'Redefinable Element'. + * + * + * @generated + */ + public boolean validateRedefinableElement_validateRedefinitionContextValid( + RedefinableElement redefinableElement, DiagnosticChain diagnostics, + Map context) { + return redefinableElement.validateRedefinitionContextValid(diagnostics, + context); + } + + /** + * Validates the validateRedefinitionConsistent constraint of 'Redefinable Element'. + * + * + * @generated + */ + public boolean validateRedefinableElement_validateRedefinitionConsistent( + RedefinableElement redefinableElement, DiagnosticChain diagnostics, + Map context) { + return redefinableElement.validateRedefinitionConsistent(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGeneralization(Generalization generalization, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(generalization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(generalization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(generalization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(generalization, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(generalization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(generalization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateGeneralization_validateGeneralizationSameClassifier( + generalization, diagnostics, context); + return result; + } + + /** + * Validates the validateGeneralizationSameClassifier constraint of 'Generalization'. + * + * + * @generated + */ + public boolean validateGeneralization_validateGeneralizationSameClassifier( + Generalization generalization, DiagnosticChain diagnostics, + Map context) { + return generalization.validateGeneralizationSameClassifier(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGeneralizationSet( + GeneralizationSet generalizationSet, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(generalizationSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + generalizationSet, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + generalizationSet, diagnostics, context); + if (result || diagnostics != null) + result &= validateGeneralizationSet_validateGeneralizationSameClassifier( + generalizationSet, diagnostics, context); + if (result || diagnostics != null) + result &= validateGeneralizationSet_validateMapsToGeneralizationSet( + generalizationSet, diagnostics, context); + return result; + } + + /** + * Validates the validateGeneralizationSameClassifier constraint of 'Generalization Set'. + * + * + * @generated + */ + public boolean validateGeneralizationSet_validateGeneralizationSameClassifier( + GeneralizationSet generalizationSet, DiagnosticChain diagnostics, + Map context) { + return generalizationSet.validateGeneralizationSameClassifier( + diagnostics, context); + } + + /** + * Validates the validateMapsToGeneralizationSet constraint of 'Generalization Set'. + * + * + * @generated + */ + public boolean validateGeneralizationSet_validateMapsToGeneralizationSet( + GeneralizationSet generalizationSet, DiagnosticChain diagnostics, + Map context) { + return generalizationSet.validateMapsToGeneralizationSet(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateFeature(Feature feature, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(feature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(feature, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(feature, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(feature, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(feature, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(feature, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(feature, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(feature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + feature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + feature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + feature, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateUseCase(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(useCase, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(useCase, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(useCase, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(useCase, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(useCase, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + useCase, diagnostics, context); + if (result || diagnostics != null) + result &= validateUseCase_validateMustHaveName(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validateUseCase_validateBinaryAssociations(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validateUseCase_validateNoAssociationToUseCase(useCase, + diagnostics, context); + if (result || diagnostics != null) + result &= validateUseCase_validateCannotIncludeSelf(useCase, + diagnostics, context); + return result; + } + + /** + * Validates the validateMustHaveName constraint of 'Use Case'. + * + * + * @generated + */ + public boolean validateUseCase_validateMustHaveName(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + return useCase.validateMustHaveName(diagnostics, context); + } + + /** + * Validates the validateBinaryAssociations constraint of 'Use Case'. + * + * + * @generated + */ + public boolean validateUseCase_validateBinaryAssociations(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + return useCase.validateBinaryAssociations(diagnostics, context); + } + + /** + * Validates the validateNoAssociationToUseCase constraint of 'Use Case'. + * + * + * @generated + */ + public boolean validateUseCase_validateNoAssociationToUseCase( + UseCase useCase, DiagnosticChain diagnostics, Map context) { + return useCase.validateNoAssociationToUseCase(diagnostics, context); + } + + /** + * Validates the validateCannotIncludeSelf constraint of 'Use Case'. + * + * + * @generated + */ + public boolean validateUseCase_validateCannotIncludeSelf(UseCase useCase, + DiagnosticChain diagnostics, Map context) { + return useCase.validateCannotIncludeSelf(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInclude(Include include, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(include, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(include, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(include, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(include, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(include, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(include, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(include, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(include, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + include, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateExtend(Extend extend, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(extend, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(extend, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(extend, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(extend, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(extend, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(extend, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(extend, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(extend, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + extend, diagnostics, context); + if (result || diagnostics != null) + result &= validateExtend_validateExtensionPoints(extend, + diagnostics, context); + return result; + } + + /** + * Validates the validateExtensionPoints constraint of 'Extend'. + * + * + * @generated + */ + public boolean validateExtend_validateExtensionPoints(Extend extend, + DiagnosticChain diagnostics, Map context) { + return extend.validateExtensionPoints(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateConstraint(Constraint constraint, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(constraint, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(constraint, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(constraint, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + constraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotApplyToSelf(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateValueSpecificationBoolean( + constraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateBooleanValue(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNoSideEffects(constraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotAppliedToSelf(constraint, + diagnostics, context); + return result; + } + + /** + * Validates the validateNotApplyToSelf constraint of 'Constraint'. + * + * + * @generated + */ + public boolean validateConstraint_validateNotApplyToSelf( + Constraint constraint, DiagnosticChain diagnostics, Map context) { + return constraint.validateNotApplyToSelf(diagnostics, context); + } + + /** + * Validates the validateValueSpecificationBoolean constraint of 'Constraint'. + * + * + * @generated + */ + public boolean validateConstraint_validateValueSpecificationBoolean( + Constraint constraint, DiagnosticChain diagnostics, Map context) { + return constraint.validateValueSpecificationBoolean(diagnostics, + context); + } + + /** + * Validates the validateBooleanValue constraint of 'Constraint'. + * + * + * @generated + */ + public boolean validateConstraint_validateBooleanValue( + Constraint constraint, DiagnosticChain diagnostics, Map context) { + return constraint.validateBooleanValue(diagnostics, context); + } + + /** + * Validates the validateNoSideEffects constraint of 'Constraint'. + * + * + * @generated + */ + public boolean validateConstraint_validateNoSideEffects( + Constraint constraint, DiagnosticChain diagnostics, Map context) { + return constraint.validateNoSideEffects(diagnostics, context); + } + + /** + * Validates the validateNotAppliedToSelf constraint of 'Constraint'. + * + * + * @generated + */ + public boolean validateConstraint_validateNotAppliedToSelf( + Constraint constraint, DiagnosticChain diagnostics, Map context) { + return constraint.validateNotAppliedToSelf(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExtensionPoint(ExtensionPoint extensionPoint, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(extensionPoint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(extensionPoint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(extensionPoint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(extensionPoint, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(extensionPoint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(extensionPoint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(extensionPoint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + extensionPoint, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + extensionPoint, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + extensionPoint, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + extensionPoint, diagnostics, context); + if (result || diagnostics != null) + result &= validateExtensionPoint_validateMustHaveName( + extensionPoint, diagnostics, context); + return result; + } + + /** + * Validates the validateMustHaveName constraint of 'Extension Point'. + * + * + * @generated + */ + public boolean validateExtensionPoint_validateMustHaveName( + ExtensionPoint extensionPoint, DiagnosticChain diagnostics, + Map context) { + return extensionPoint.validateMustHaveName(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSubstitution(Substitution substitution, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(substitution, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(substitution, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + substitution, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateRealization(Realization realization, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(realization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(realization, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(realization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(realization, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(realization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(realization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(realization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(realization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + realization, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateAbstraction(Abstraction abstraction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(abstraction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(abstraction, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(abstraction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(abstraction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(abstraction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(abstraction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(abstraction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(abstraction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + abstraction, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateOpaqueExpression(OpaqueExpression opaqueExpression, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(opaqueExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + opaqueExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + opaqueExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateOpaqueExpression_validateLanguageBodySize( + opaqueExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateOpaqueExpression_validateOneBodyDefaultLanguage( + opaqueExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateOpaqueExpression_validateOnlyReturnResultParameters( + opaqueExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateOpaqueExpression_validateOneReturnResultParameter( + opaqueExpression, diagnostics, context); + return result; + } + + /** + * Validates the validateLanguageBodySize constraint of 'Opaque Expression'. + * + * + * @generated + */ + public boolean validateOpaqueExpression_validateLanguageBodySize( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + return opaqueExpression.validateLanguageBodySize(diagnostics, context); + } + + /** + * Validates the validateOneBodyDefaultLanguage constraint of 'Opaque Expression'. + * + * + * @generated + */ + public boolean validateOpaqueExpression_validateOneBodyDefaultLanguage( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + return opaqueExpression.validateOneBodyDefaultLanguage(diagnostics, + context); + } + + /** + * Validates the validateOnlyReturnResultParameters constraint of 'Opaque Expression'. + * + * + * @generated + */ + public boolean validateOpaqueExpression_validateOnlyReturnResultParameters( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + return opaqueExpression.validateOnlyReturnResultParameters(diagnostics, + context); + } + + /** + * Validates the validateOneReturnResultParameter constraint of 'Opaque Expression'. + * + * + * @generated + */ + public boolean validateOpaqueExpression_validateOneReturnResultParameter( + OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, + Map context) { + return opaqueExpression.validateOneReturnResultParameter(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateParameter(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(parameter, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(parameter, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(parameter, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + parameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + parameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + parameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + parameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateParameter_validateConnectorEnd(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateParameter_validateStreamAndException(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateParameter_validateNotException(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateParameter_validateReentrantBehaviors(parameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateParameter_validateInAndOut(parameter, + diagnostics, context); + return result; + } + + /** + * Validates the validateConnectorEnd constraint of 'Parameter'. + * + * + * @generated + */ + public boolean validateParameter_validateConnectorEnd(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + return parameter.validateConnectorEnd(diagnostics, context); + } + + /** + * Validates the validateStreamAndException constraint of 'Parameter'. + * + * + * @generated + */ + public boolean validateParameter_validateStreamAndException( + Parameter parameter, DiagnosticChain diagnostics, Map context) { + return parameter.validateStreamAndException(diagnostics, context); + } + + /** + * Validates the validateNotException constraint of 'Parameter'. + * + * + * @generated + */ + public boolean validateParameter_validateNotException(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + return parameter.validateNotException(diagnostics, context); + } + + /** + * Validates the validateReentrantBehaviors constraint of 'Parameter'. + * + * + * @generated + */ + public boolean validateParameter_validateReentrantBehaviors( + Parameter parameter, DiagnosticChain diagnostics, Map context) { + return parameter.validateReentrantBehaviors(diagnostics, context); + } + + /** + * Validates the validateInAndOut constraint of 'Parameter'. + * + * + * @generated + */ + public boolean validateParameter_validateInAndOut(Parameter parameter, + DiagnosticChain diagnostics, Map context) { + return parameter.validateInAndOut(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMultiplicityElement( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + multiplicityElement, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(multiplicityElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(multiplicityElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(multiplicityElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(multiplicityElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(multiplicityElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0( + multiplicityElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0( + multiplicityElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + multiplicityElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + multiplicityElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + multiplicityElement, diagnostics, context); + return result; + } + + /** + * Validates the validateUpperGt0 constraint of 'Multiplicity Element'. + * + * + * @generated + */ + public boolean validateMultiplicityElement_validateUpperGt0( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + return multiplicityElement.validateUpperGt0(diagnostics, context); + } + + /** + * Validates the validateLowerGe0 constraint of 'Multiplicity Element'. + * + * + * @generated + */ + public boolean validateMultiplicityElement_validateLowerGe0( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + return multiplicityElement.validateLowerGe0(diagnostics, context); + } + + /** + * Validates the validateUpperGeLower constraint of 'Multiplicity Element'. + * + * + * @generated + */ + public boolean validateMultiplicityElement_validateUpperGeLower( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + return multiplicityElement.validateUpperGeLower(diagnostics, context); + } + + /** + * Validates the validateValueSpecificationNoSideEffects constraint of 'Multiplicity Element'. + * + * + * @generated + */ + public boolean validateMultiplicityElement_validateValueSpecificationNoSideEffects( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + return multiplicityElement.validateValueSpecificationNoSideEffects( + diagnostics, context); + } + + /** + * Validates the validateValueSpecificationConstant constraint of 'Multiplicity Element'. + * + * + * @generated + */ + public boolean validateMultiplicityElement_validateValueSpecificationConstant( + MultiplicityElement multiplicityElement, + DiagnosticChain diagnostics, Map context) { + return multiplicityElement.validateValueSpecificationConstant( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateConnectableElement( + ConnectableElement connectableElement, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(connectableElement, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + connectableElement, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + connectableElement, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateConnectorEnd(ConnectorEnd connectorEnd, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(connectorEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(connectorEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(connectorEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(connectorEnd, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(connectorEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(connectorEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnectorEnd_validateMultiplicity(connectorEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConnectorEnd_validatePartWithPortEmpty( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnectorEnd_validateRoleAndPartWithPort( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnectorEnd_validateSelfPartWithPort( + connectorEnd, diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicity constraint of 'Connector End'. + * + * + * @generated + */ + public boolean validateConnectorEnd_validateMultiplicity( + ConnectorEnd connectorEnd, DiagnosticChain diagnostics, Map context) { + return connectorEnd.validateMultiplicity(diagnostics, context); + } + + /** + * Validates the validatePartWithPortEmpty constraint of 'Connector End'. + * + * + * @generated + */ + public boolean validateConnectorEnd_validatePartWithPortEmpty( + ConnectorEnd connectorEnd, DiagnosticChain diagnostics, Map context) { + return connectorEnd.validatePartWithPortEmpty(diagnostics, context); + } + + /** + * Validates the validateRoleAndPartWithPort constraint of 'Connector End'. + * + * + * @generated + */ + public boolean validateConnectorEnd_validateRoleAndPartWithPort( + ConnectorEnd connectorEnd, DiagnosticChain diagnostics, Map context) { + return connectorEnd.validateRoleAndPartWithPort(diagnostics, context); + } + + /** + * Validates the validateSelfPartWithPort constraint of 'Connector End'. + * + * + * @generated + */ + public boolean validateConnectorEnd_validateSelfPartWithPort( + ConnectorEnd connectorEnd, DiagnosticChain diagnostics, Map context) { + return connectorEnd.validateSelfPartWithPort(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateProperty(Property property, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(property, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(property, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(property, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(property, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(property, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateMultiplicityOfComposite( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateSubsettingContext(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateNavigablePropertyRedefinition( + property, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateSubsettingRules(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateNavigableReadonly(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDerivedUnionIsDerived(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDerivedUnionIsReadOnly(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDeploymentTarget(property, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateBindingToAttribute(property, + diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicityOfComposite constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateMultiplicityOfComposite( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateMultiplicityOfComposite(diagnostics, context); + } + + /** + * Validates the validateSubsettingContext constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateSubsettingContext( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateSubsettingContext(diagnostics, context); + } + + /** + * Validates the validateNavigablePropertyRedefinition constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateNavigablePropertyRedefinition( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateNavigablePropertyRedefinition(diagnostics, + context); + } + + /** + * Validates the validateSubsettingRules constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateSubsettingRules(Property property, + DiagnosticChain diagnostics, Map context) { + return property.validateSubsettingRules(diagnostics, context); + } + + /** + * Validates the validateNavigableReadonly constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateNavigableReadonly( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateNavigableReadonly(diagnostics, context); + } + + /** + * Validates the validateDerivedUnionIsDerived constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateDerivedUnionIsDerived( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateDerivedUnionIsDerived(diagnostics, context); + } + + /** + * Validates the validateDerivedUnionIsReadOnly constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateDerivedUnionIsReadOnly( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateDerivedUnionIsReadOnly(diagnostics, context); + } + + /** + * Validates the validateDeploymentTarget constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateDeploymentTarget(Property property, + DiagnosticChain diagnostics, Map context) { + return property.validateDeploymentTarget(diagnostics, context); + } + + /** + * Validates the validateBindingToAttribute constraint of 'Property'. + * + * + * @generated + */ + public boolean validateProperty_validateBindingToAttribute( + Property property, DiagnosticChain diagnostics, Map context) { + return property.validateBindingToAttribute(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDeploymentTarget(DeploymentTarget deploymentTarget, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(deploymentTarget, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + deploymentTarget, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + deploymentTarget, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateDeployment(Deployment deployment, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(deployment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(deployment, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(deployment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(deployment, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(deployment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(deployment, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(deployment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(deployment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + deployment, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateDeployedArtifact(DeployedArtifact deployedArtifact, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(deployedArtifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + deployedArtifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + deployedArtifact, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateDeploymentSpecification( + DeploymentSpecification deploymentSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(deploymentSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(deploymentSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(deploymentSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateDeploymentSpecification_validateDeployedElements( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateDeploymentSpecification_validateDeploymentTarget( + deploymentSpecification, diagnostics, context); + return result; + } + + /** + * Validates the validateDeployedElements constraint of 'Deployment Specification'. + * + * + * @generated + */ + public boolean validateDeploymentSpecification_validateDeployedElements( + DeploymentSpecification deploymentSpecification, + DiagnosticChain diagnostics, Map context) { + return deploymentSpecification.validateDeployedElements(diagnostics, + context); + } + + /** + * Validates the validateDeploymentTarget constraint of 'Deployment Specification'. + * + * + * @generated + */ + public boolean validateDeploymentSpecification_validateDeploymentTarget( + DeploymentSpecification deploymentSpecification, + DiagnosticChain diagnostics, Map context) { + return deploymentSpecification.validateDeploymentTarget(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateArtifact(Artifact artifact, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(artifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(artifact, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(artifact, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(artifact, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(artifact, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(artifact, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(artifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(artifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + artifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + artifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + artifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + artifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + artifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(artifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + artifact, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(artifact, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + artifact, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateManifestation(Manifestation manifestation, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(manifestation, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(manifestation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + manifestation, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateOperation(Operation operation, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(operation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(operation, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(operation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(operation, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(operation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(operation, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(operation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(operation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + operation, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + operation, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + operation, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + operation, diagnostics, context); + if (result || diagnostics != null) + result &= validateOperation_validateAtMostOneReturn(operation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateOperation_validateOnlyBodyForQuery(operation, + diagnostics, context); + return result; + } + + /** + * Validates the validateAtMostOneReturn constraint of 'Operation'. + * + * + * @generated + */ + public boolean validateOperation_validateAtMostOneReturn( + Operation operation, DiagnosticChain diagnostics, Map context) { + return operation.validateAtMostOneReturn(diagnostics, context); + } + + /** + * Validates the validateOnlyBodyForQuery constraint of 'Operation'. + * + * + * @generated + */ + public boolean validateOperation_validateOnlyBodyForQuery( + Operation operation, DiagnosticChain diagnostics, Map context) { + return operation.validateOnlyBodyForQuery(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBehavioralFeature( + BehavioralFeature behavioralFeature, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(behavioralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + behavioralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + behavioralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + behavioralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + behavioralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + behavioralFeature, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateBehavior(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(behavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(behavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(behavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(behavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(behavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(behavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + behavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize(behavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour(behavior, + diagnostics, context); + return result; + } + + /** + * Validates the validateParameters constraint of 'Behavior'. + * + * + * @generated + */ + public boolean validateBehavior_validateParameters(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + return behavior.validateParameters(diagnostics, context); + } + + /** + * Validates the validateFeatureOfContextClassifier constraint of 'Behavior'. + * + * + * @generated + */ + public boolean validateBehavior_validateFeatureOfContextClassifier( + Behavior behavior, DiagnosticChain diagnostics, Map context) { + return behavior + .validateFeatureOfContextClassifier(diagnostics, context); + } + + /** + * Validates the validateMustRealize constraint of 'Behavior'. + * + * + * @generated + */ + public boolean validateBehavior_validateMustRealize(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + return behavior.validateMustRealize(diagnostics, context); + } + + /** + * Validates the validateMostOneBehaviour constraint of 'Behavior'. + * + * + * @generated + */ + public boolean validateBehavior_validateMostOneBehaviour(Behavior behavior, + DiagnosticChain diagnostics, Map context) { + return behavior.validateMostOneBehaviour(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateParameterSet(ParameterSet parameterSet, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(parameterSet, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + parameterSet, diagnostics, context); + if (result || diagnostics != null) + result &= validateParameterSet_validateSameParameterizedEntity( + parameterSet, diagnostics, context); + if (result || diagnostics != null) + result &= validateParameterSet_validateInput(parameterSet, + diagnostics, context); + if (result || diagnostics != null) + result &= validateParameterSet_validateTwoParameterSets( + parameterSet, diagnostics, context); + return result; + } + + /** + * Validates the validateSameParameterizedEntity constraint of 'Parameter Set'. + * + * + * @generated + */ + public boolean validateParameterSet_validateSameParameterizedEntity( + ParameterSet parameterSet, DiagnosticChain diagnostics, Map context) { + return parameterSet.validateSameParameterizedEntity(diagnostics, + context); + } + + /** + * Validates the validateInput constraint of 'Parameter Set'. + * + * + * @generated + */ + public boolean validateParameterSet_validateInput( + ParameterSet parameterSet, DiagnosticChain diagnostics, Map context) { + return parameterSet.validateInput(diagnostics, context); + } + + /** + * Validates the validateTwoParameterSets constraint of 'Parameter Set'. + * + * + * @generated + */ + public boolean validateParameterSet_validateTwoParameterSets( + ParameterSet parameterSet, DiagnosticChain diagnostics, Map context) { + return parameterSet.validateTwoParameterSets(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDataType(DataType dataType, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(dataType, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(dataType, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(dataType, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(dataType, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(dataType, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(dataType, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(dataType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(dataType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + dataType, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + dataType, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + dataType, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + dataType, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + dataType, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(dataType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + dataType, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(dataType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + dataType, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInterface(Interface interface_, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interface_, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interface_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interface_, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(interface_, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + interface_, diagnostics, context); + if (result || diagnostics != null) + result &= validateInterface_validateVisibility(interface_, + diagnostics, context); + return result; + } + + /** + * Validates the validateVisibility constraint of 'Interface'. + * + * + * @generated + */ + public boolean validateInterface_validateVisibility(Interface interface_, + DiagnosticChain diagnostics, Map context) { + return interface_.validateVisibility(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReception(Reception reception, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(reception, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(reception, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(reception, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(reception, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(reception, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(reception, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(reception, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(reception, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + reception, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + reception, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + reception, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + reception, diagnostics, context); + if (result || diagnostics != null) + result &= validateReception_validateNotQuery(reception, + diagnostics, context); + return result; + } + + /** + * Validates the validateNotQuery constraint of 'Reception'. + * + * + * @generated + */ + public boolean validateReception_validateNotQuery(Reception reception, + DiagnosticChain diagnostics, Map context) { + return reception.validateNotQuery(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSignal(Signal signal, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(signal, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(signal, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(signal, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(signal, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(signal, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(signal, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(signal, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(signal, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + signal, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(signal, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + signal, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateProtocolStateMachine( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolStateMachine_validateClassifierContext( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateContextClassifier( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateConnectionPoints( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateMethod(protocolStateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolStateMachine_validateProtocolTransitions( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolStateMachine_validateEntryExitDo( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolStateMachine_validateDeepOrShallowHistory( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolStateMachine_validatePortsConnected( + protocolStateMachine, diagnostics, context); + return result; + } + + /** + * Validates the validateProtocolTransitions constraint of 'Protocol State Machine'. + * + * + * @generated + */ + public boolean validateProtocolStateMachine_validateProtocolTransitions( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + return protocolStateMachine.validateProtocolTransitions(diagnostics, + context); + } + + /** + * Validates the validateEntryExitDo constraint of 'Protocol State Machine'. + * + * + * @generated + */ + public boolean validateProtocolStateMachine_validateEntryExitDo( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + return protocolStateMachine.validateEntryExitDo(diagnostics, context); + } + + /** + * Validates the validateDeepOrShallowHistory constraint of 'Protocol State Machine'. + * + * + * @generated + */ + public boolean validateProtocolStateMachine_validateDeepOrShallowHistory( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + return protocolStateMachine.validateDeepOrShallowHistory(diagnostics, + context); + } + + /** + * Validates the validatePortsConnected constraint of 'Protocol State Machine'. + * + * + * @generated + */ + public boolean validateProtocolStateMachine_validatePortsConnected( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + return protocolStateMachine + .validatePortsConnected(diagnostics, context); + } + + /** + * Validates the validateClassifierContext constraint of 'Protocol State Machine'. + * + * + * @generated + */ + public boolean validateProtocolStateMachine_validateClassifierContext( + ProtocolStateMachine protocolStateMachine, + DiagnosticChain diagnostics, Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateClassifierContext", getObjectLabel(protocolStateMachine, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{protocolStateMachine})); + } + return false; + } + return validateStateMachine_validateClassifierContext( + protocolStateMachine, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStateMachine(StateMachine stateMachine, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(stateMachine, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour(stateMachine, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateClassifierContext( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateContextClassifier( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateConnectionPoints( + stateMachine, diagnostics, context); + if (result || diagnostics != null) + result &= validateStateMachine_validateMethod(stateMachine, + diagnostics, context); + return result; + } + + /** + * Validates the validateClassifierContext constraint of 'State Machine'. + * + * + * @generated + */ + public boolean validateStateMachine_validateClassifierContext( + StateMachine stateMachine, DiagnosticChain diagnostics, Map context) { + return stateMachine.validateClassifierContext(diagnostics, context); + } + + /** + * Validates the validateContextClassifier constraint of 'State Machine'. + * + * + * @generated + */ + public boolean validateStateMachine_validateContextClassifier( + StateMachine stateMachine, DiagnosticChain diagnostics, Map context) { + return stateMachine.validateContextClassifier(diagnostics, context); + } + + /** + * Validates the validateConnectionPoints constraint of 'State Machine'. + * + * + * @generated + */ + public boolean validateStateMachine_validateConnectionPoints( + StateMachine stateMachine, DiagnosticChain diagnostics, Map context) { + return stateMachine.validateConnectionPoints(diagnostics, context); + } + + /** + * Validates the validateMethod constraint of 'State Machine'. + * + * + * @generated + */ + public boolean validateStateMachine_validateMethod( + StateMachine stateMachine, DiagnosticChain diagnostics, Map context) { + return stateMachine.validateMethod(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRegion(Region region, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(region, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(region, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(region, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(region, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(region, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(region, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(region, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(region, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + region, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + region, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + region, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + region, diagnostics, context); + if (result || diagnostics != null) + result &= validateRegion_validateInitialVertex(region, diagnostics, + context); + if (result || diagnostics != null) + result &= validateRegion_validateDeepHistoryVertex(region, + diagnostics, context); + if (result || diagnostics != null) + result &= validateRegion_validateShallowHistoryVertex(region, + diagnostics, context); + if (result || diagnostics != null) + result &= validateRegion_validateOwned(region, diagnostics, context); + return result; + } + + /** + * Validates the validateInitialVertex constraint of 'Region'. + * + * + * @generated + */ + public boolean validateRegion_validateInitialVertex(Region region, + DiagnosticChain diagnostics, Map context) { + return region.validateInitialVertex(diagnostics, context); + } + + /** + * Validates the validateDeepHistoryVertex constraint of 'Region'. + * + * + * @generated + */ + public boolean validateRegion_validateDeepHistoryVertex(Region region, + DiagnosticChain diagnostics, Map context) { + return region.validateDeepHistoryVertex(diagnostics, context); + } + + /** + * Validates the validateShallowHistoryVertex constraint of 'Region'. + * + * + * @generated + */ + public boolean validateRegion_validateShallowHistoryVertex(Region region, + DiagnosticChain diagnostics, Map context) { + return region.validateShallowHistoryVertex(diagnostics, context); + } + + /** + * Validates the validateOwned constraint of 'Region'. + * + * + * @generated + */ + public boolean validateRegion_validateOwned(Region region, + DiagnosticChain diagnostics, Map context) { + return region.validateOwned(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateVertex(Vertex vertex, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(vertex, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(vertex, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(vertex, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(vertex, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(vertex, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(vertex, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(vertex, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(vertex, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + vertex, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTransition(Transition transition, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(transition, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(transition, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(transition, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + transition, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + transition, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + transition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateForkSegmentGuards(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateJoinSegmentGuards(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateForkSegmentState(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateJoinSegmentState(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateOutgoingPseudostates( + transition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateInitialTransition(transition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateSignaturesCompatible( + transition, diagnostics, context); + return result; + } + + /** + * Validates the validateForkSegmentGuards constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateForkSegmentGuards( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateForkSegmentGuards(diagnostics, context); + } + + /** + * Validates the validateJoinSegmentGuards constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateJoinSegmentGuards( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateJoinSegmentGuards(diagnostics, context); + } + + /** + * Validates the validateForkSegmentState constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateForkSegmentState( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateForkSegmentState(diagnostics, context); + } + + /** + * Validates the validateJoinSegmentState constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateJoinSegmentState( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateJoinSegmentState(diagnostics, context); + } + + /** + * Validates the validateOutgoingPseudostates constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateOutgoingPseudostates( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateOutgoingPseudostates(diagnostics, context); + } + + /** + * Validates the validateInitialTransition constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateInitialTransition( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateInitialTransition(diagnostics, context); + } + + /** + * Validates the validateSignaturesCompatible constraint of 'Transition'. + * + * + * @generated + */ + public boolean validateTransition_validateSignaturesCompatible( + Transition transition, DiagnosticChain diagnostics, Map context) { + return transition.validateSignaturesCompatible(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTrigger(Trigger trigger, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(trigger, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(trigger, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(trigger, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(trigger, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(trigger, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(trigger, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(trigger, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(trigger, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + trigger, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateEvent(Event event, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(event, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(event, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(event, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(event, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(event, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(event, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(event, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(event, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + event, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validatePort(Port port, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(port, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + port, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + port, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + port, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + port, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + port, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateMultiplicityOfComposite(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateSubsettingContext(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateNavigablePropertyRedefinition( + port, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateSubsettingRules(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateNavigableReadonly(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDerivedUnionIsDerived(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDerivedUnionIsReadOnly(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDeploymentTarget(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateBindingToAttribute(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePort_validateRequiredInterfaces(port, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePort_validatePortAggregation(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validatePort_validatePortDestroyed(port, diagnostics, + context); + if (result || diagnostics != null) + result &= validatePort_validateDefaultValue(port, diagnostics, + context); + return result; + } + + /** + * Validates the validateRequiredInterfaces constraint of 'Port'. + * + * + * @generated + */ + public boolean validatePort_validateRequiredInterfaces(Port port, + DiagnosticChain diagnostics, Map context) { + return port.validateRequiredInterfaces(diagnostics, context); + } + + /** + * Validates the validatePortAggregation constraint of 'Port'. + * + * + * @generated + */ + public boolean validatePort_validatePortAggregation(Port port, + DiagnosticChain diagnostics, Map context) { + return port.validatePortAggregation(diagnostics, context); + } + + /** + * Validates the validatePortDestroyed constraint of 'Port'. + * + * + * @generated + */ + public boolean validatePort_validatePortDestroyed(Port port, + DiagnosticChain diagnostics, Map context) { + return port.validatePortDestroyed(diagnostics, context); + } + + /** + * Validates the validateDefaultValue constraint of 'Port'. + * + * + * @generated + */ + public boolean validatePort_validateDefaultValue(Port port, + DiagnosticChain diagnostics, Map context) { + return port.validateDefaultValue(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateState(State state, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(state, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(state, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + state, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + state, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + state, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + state, diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateRegions(state, diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateSubmachineStates(state, + diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateDestinationsOrSourcesOfTransitions( + state, diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateSubmachineOrRegions(state, + diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateCompositeStates(state, diagnostics, + context); + if (result || diagnostics != null) + result &= validateState_validateEntryOrExit(state, diagnostics, + context); + return result; + } + + /** + * Validates the validateRegions constraint of 'State'. + * + * + * @generated + */ + public boolean validateState_validateRegions(State state, + DiagnosticChain diagnostics, Map context) { + return state.validateRegions(diagnostics, context); + } + + /** + * Validates the validateSubmachineStates constraint of 'State'. + * + * + * @generated + */ + public boolean validateState_validateSubmachineStates(State state, + DiagnosticChain diagnostics, Map context) { + return state.validateSubmachineStates(diagnostics, context); + } + + /** + * Validates the validateDestinationsOrSourcesOfTransitions constraint of 'State'. + * + * + * @generated + */ + public boolean validateState_validateDestinationsOrSourcesOfTransitions( + State state, DiagnosticChain diagnostics, Map context) { + return state.validateDestinationsOrSourcesOfTransitions(diagnostics, + context); + } + + /** + * Validates the validateSubmachineOrRegions constraint of 'State'. + * + * + * @generated + */ + public boolean validateState_validateSubmachineOrRegions(State state, + DiagnosticChain diagnostics, Map context) { + return state.validateSubmachineOrRegions(diagnostics, context); + } + + /** + * Validates the validateCompositeStates constraint of 'State'. + * + * + * @generated + */ + public boolean validateState_validateCompositeStates(State state, + DiagnosticChain diagnostics, Map context) { + return state.validateCompositeStates(diagnostics, context); + } + + /** + * Validates the validateEntryOrExit constraint of 'State'. + * + * + * @generated + */ + public boolean validateState_validateEntryOrExit(State state, + DiagnosticChain diagnostics, Map context) { + return state.validateEntryOrExit(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateConnectionPointReference( + ConnectionPointReference connectionPointReference, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(connectionPointReference, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(connectionPointReference, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnectionPointReference_validateEntryPseudostates( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnectionPointReference_validateExitPseudostates( + connectionPointReference, diagnostics, context); + return result; + } + + /** + * Validates the validateEntryPseudostates constraint of 'Connection Point Reference'. + * + * + * @generated + */ + public boolean validateConnectionPointReference_validateEntryPseudostates( + ConnectionPointReference connectionPointReference, + DiagnosticChain diagnostics, Map context) { + return connectionPointReference.validateEntryPseudostates(diagnostics, + context); + } + + /** + * Validates the validateExitPseudostates constraint of 'Connection Point Reference'. + * + * + * @generated + */ + public boolean validateConnectionPointReference_validateExitPseudostates( + ConnectionPointReference connectionPointReference, + DiagnosticChain diagnostics, Map context) { + return connectionPointReference.validateExitPseudostates(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validatePseudostate(Pseudostate pseudostate, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(pseudostate, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(pseudostate, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + pseudostate, diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateInitialVertex(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateHistoryVertices(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateJoinVertex(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateTransitionsIncoming( + pseudostate, diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateForkVertex(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateTransitionsOutgoing( + pseudostate, diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateJunctionVertex(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateChoiceVertex(pseudostate, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePseudostate_validateOutgoingFromInitial( + pseudostate, diagnostics, context); + return result; + } + + /** + * Validates the validateInitialVertex constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateInitialVertex( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateInitialVertex(diagnostics, context); + } + + /** + * Validates the validateHistoryVertices constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateHistoryVertices( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateHistoryVertices(diagnostics, context); + } + + /** + * Validates the validateJoinVertex constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateJoinVertex( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateJoinVertex(diagnostics, context); + } + + /** + * Validates the validateTransitionsIncoming constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateTransitionsIncoming( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateTransitionsIncoming(diagnostics, context); + } + + /** + * Validates the validateForkVertex constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateForkVertex( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateForkVertex(diagnostics, context); + } + + /** + * Validates the validateTransitionsOutgoing constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateTransitionsOutgoing( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateTransitionsOutgoing(diagnostics, context); + } + + /** + * Validates the validateJunctionVertex constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateJunctionVertex( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateJunctionVertex(diagnostics, context); + } + + /** + * Validates the validateChoiceVertex constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateChoiceVertex( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateChoiceVertex(diagnostics, context); + } + + /** + * Validates the validateOutgoingFromInitial constraint of 'Pseudostate'. + * + * + * @generated + */ + public boolean validatePseudostate_validateOutgoingFromInitial( + Pseudostate pseudostate, DiagnosticChain diagnostics, Map context) { + return pseudostate.validateOutgoingFromInitial(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateProtocolConformance( + ProtocolConformance protocolConformance, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + protocolConformance, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(protocolConformance, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(protocolConformance, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(protocolConformance, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(protocolConformance, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(protocolConformance, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateOperationTemplateParameter( + OperationTemplateParameter operationTemplateParameter, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + operationTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + operationTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + operationTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(operationTemplateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + operationTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + operationTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateParameter_validateMustBeCompatible( + operationTemplateParameter, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateStructuralFeature( + StructuralFeature structuralFeature, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(structuralFeature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + structuralFeature, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateAssociation(Association association, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(association, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(association, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(association, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndNumber( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndTypes( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateBinaryAssociations( + association, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateAssociationEnds(association, + diagnostics, context); + return result; + } + + /** + * Validates the validateSpecializedEndNumber constraint of 'Association'. + * + * + * @generated + */ + public boolean validateAssociation_validateSpecializedEndNumber( + Association association, DiagnosticChain diagnostics, Map context) { + return association.validateSpecializedEndNumber(diagnostics, context); + } + + /** + * Validates the validateSpecializedEndTypes constraint of 'Association'. + * + * + * @generated + */ + public boolean validateAssociation_validateSpecializedEndTypes( + Association association, DiagnosticChain diagnostics, Map context) { + return association.validateSpecializedEndTypes(diagnostics, context); + } + + /** + * Validates the validateBinaryAssociations constraint of 'Association'. + * + * + * @generated + */ + public boolean validateAssociation_validateBinaryAssociations( + Association association, DiagnosticChain diagnostics, Map context) { + return association.validateBinaryAssociations(diagnostics, context); + } + + /** + * Validates the validateAssociationEnds constraint of 'Association'. + * + * + * @generated + */ + public boolean validateAssociation_validateAssociationEnds( + Association association, DiagnosticChain diagnostics, Map context) { + return association.validateAssociationEnds(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateConnectableElementTemplateParameter( + ConnectableElementTemplateParameter connectableElementTemplateParameter, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateParameter_validateMustBeCompatible( + connectableElementTemplateParameter, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateCollaborationUse(CollaborationUse collaborationUse, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(collaborationUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + collaborationUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + collaborationUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateCollaborationUse_validateClientElements( + collaborationUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateCollaborationUse_validateEveryRole( + collaborationUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateCollaborationUse_validateConnectors( + collaborationUse, diagnostics, context); + return result; + } + + /** + * Validates the validateClientElements constraint of 'Collaboration Use'. + * + * + * @generated + */ + public boolean validateCollaborationUse_validateClientElements( + CollaborationUse collaborationUse, DiagnosticChain diagnostics, + Map context) { + return collaborationUse.validateClientElements(diagnostics, context); + } + + /** + * Validates the validateEveryRole constraint of 'Collaboration Use'. + * + * + * @generated + */ + public boolean validateCollaborationUse_validateEveryRole( + CollaborationUse collaborationUse, DiagnosticChain diagnostics, + Map context) { + return collaborationUse.validateEveryRole(diagnostics, context); + } + + /** + * Validates the validateConnectors constraint of 'Collaboration Use'. + * + * + * @generated + */ + public boolean validateCollaborationUse_validateConnectors( + CollaborationUse collaborationUse, DiagnosticChain diagnostics, + Map context) { + return collaborationUse.validateConnectors(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCollaboration(Collaboration collaboration, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(collaboration, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(collaboration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + collaboration, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + collaboration, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateStructuredClassifier( + StructuredClassifier structuredClassifier, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(structuredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(structuredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(structuredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(structuredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(structuredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(structuredClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + structuredClassifier, diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicities constraint of 'Structured Classifier'. + * + * + * @generated + */ + public boolean validateStructuredClassifier_validateMultiplicities( + StructuredClassifier structuredClassifier, + DiagnosticChain diagnostics, Map context) { + return structuredClassifier + .validateMultiplicities(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateConnector(Connector connector, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(connector, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(connector, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(connector, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(connector, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(connector, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(connector, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(connector, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(connector, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnector_validateTypes(connector, diagnostics, + context); + if (result || diagnostics != null) + result &= validateConnector_validateCompatible(connector, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConnector_validateRoles(connector, diagnostics, + context); + if (result || diagnostics != null) + result &= validateConnector_validateBetweenInterfacesPorts( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnector_validateBetweenInterfacePortImplements( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnector_validateBetweenInterfacePortSignature( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnector_validateUnionSignatureCompatible( + connector, diagnostics, context); + if (result || diagnostics != null) + result &= validateConnector_validateAssemblyConnector(connector, + diagnostics, context); + return result; + } + + /** + * Validates the validateTypes constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateTypes(Connector connector, + DiagnosticChain diagnostics, Map context) { + return connector.validateTypes(diagnostics, context); + } + + /** + * Validates the validateCompatible constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateCompatible(Connector connector, + DiagnosticChain diagnostics, Map context) { + return connector.validateCompatible(diagnostics, context); + } + + /** + * Validates the validateRoles constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateRoles(Connector connector, + DiagnosticChain diagnostics, Map context) { + return connector.validateRoles(diagnostics, context); + } + + /** + * Validates the validateBetweenInterfacesPorts constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateBetweenInterfacesPorts( + Connector connector, DiagnosticChain diagnostics, Map context) { + return connector.validateBetweenInterfacesPorts(diagnostics, context); + } + + /** + * Validates the validateBetweenInterfacePortImplements constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateBetweenInterfacePortImplements( + Connector connector, DiagnosticChain diagnostics, Map context) { + return connector.validateBetweenInterfacePortImplements(diagnostics, + context); + } + + /** + * Validates the validateBetweenInterfacePortSignature constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateBetweenInterfacePortSignature( + Connector connector, DiagnosticChain diagnostics, Map context) { + return connector.validateBetweenInterfacePortSignature(diagnostics, + context); + } + + /** + * Validates the validateUnionSignatureCompatible constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateUnionSignatureCompatible( + Connector connector, DiagnosticChain diagnostics, Map context) { + return connector.validateUnionSignatureCompatible(diagnostics, context); + } + + /** + * Validates the validateAssemblyConnector constraint of 'Connector'. + * + * + * @generated + */ + public boolean validateConnector_validateAssemblyConnector( + Connector connector, DiagnosticChain diagnostics, Map context) { + return connector.validateAssemblyConnector(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateRedefinableTemplateSignature( + RedefinableTemplateSignature redefinableTemplateSignature, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(redefinableTemplateSignature, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateSignature_validateOwnElements( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableTemplateSignature_validateInheritedParameters( + redefinableTemplateSignature, diagnostics, context); + return result; + } + + /** + * Validates the validateInheritedParameters constraint of 'Redefinable Template Signature'. + * + * + * @generated + */ + public boolean validateRedefinableTemplateSignature_validateInheritedParameters( + RedefinableTemplateSignature redefinableTemplateSignature, + DiagnosticChain diagnostics, Map context) { + return redefinableTemplateSignature.validateInheritedParameters( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClassifierTemplateParameter( + ClassifierTemplateParameter classifierTemplateParameter, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(classifierTemplateParameter, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateTemplateParameter_validateMustBeCompatible( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifierTemplateParameter_validateConstrainingClassifier( + classifierTemplateParameter, diagnostics, context); + return result; + } + + /** + * Validates the validateConstrainingClassifier constraint of 'Classifier Template Parameter'. + * + * + * @generated + */ + public boolean validateClassifierTemplateParameter_validateConstrainingClassifier( + ClassifierTemplateParameter classifierTemplateParameter, + DiagnosticChain diagnostics, Map context) { + return classifierTemplateParameter.validateConstrainingClassifier( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInterfaceRealization( + InterfaceRealization interfaceRealization, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + interfaceRealization, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interfaceRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interfaceRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interfaceRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interfaceRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interfaceRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interfaceRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + interfaceRealization, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interfaceRealization, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateEncapsulatedClassifier( + EncapsulatedClassifier encapsulatedClassifier, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(encapsulatedClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(encapsulatedClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(encapsulatedClassifier, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + encapsulatedClassifier, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateExtension(Extension extension, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(extension, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(extension, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(extension, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndNumber( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndTypes( + extension, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateBinaryAssociations(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateAssociationEnds(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateExtension_validateNonOwnedEnd(extension, + diagnostics, context); + if (result || diagnostics != null) + result &= validateExtension_validateIsBinary(extension, + diagnostics, context); + return result; + } + + /** + * Validates the validateNonOwnedEnd constraint of 'Extension'. + * + * + * @generated + */ + public boolean validateExtension_validateNonOwnedEnd(Extension extension, + DiagnosticChain diagnostics, Map context) { + return extension.validateNonOwnedEnd(diagnostics, context); + } + + /** + * Validates the validateIsBinary constraint of 'Extension'. + * + * + * @generated + */ + public boolean validateExtension_validateIsBinary(Extension extension, + DiagnosticChain diagnostics, Map context) { + return extension.validateIsBinary(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExtensionEnd(ExtensionEnd extensionEnd, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(extensionEnd, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateMultiplicityOfComposite( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateSubsettingContext(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateNavigablePropertyRedefinition( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateSubsettingRules(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateNavigableReadonly(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDerivedUnionIsDerived( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDerivedUnionIsReadOnly( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateDeploymentTarget(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateProperty_validateBindingToAttribute(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateExtensionEnd_validateMultiplicity(extensionEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateExtensionEnd_validateAggregation(extensionEnd, + diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicity constraint of 'Extension End'. + * + * + * @generated + */ + public boolean validateExtensionEnd_validateMultiplicity( + ExtensionEnd extensionEnd, DiagnosticChain diagnostics, Map context) { + return extensionEnd.validateMultiplicity(diagnostics, context); + } + + /** + * Validates the validateAggregation constraint of 'Extension End'. + * + * + * @generated + */ + public boolean validateExtensionEnd_validateAggregation( + ExtensionEnd extensionEnd, DiagnosticChain diagnostics, Map context) { + return extensionEnd.validateAggregation(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateImage(Image image, DiagnosticChain diagnostics, + Map context) { + return validate_EveryDefaultConstraint(image, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStringExpression(StringExpression stringExpression, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(stringExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + stringExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + stringExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateStringExpression_validateOperands( + stringExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateStringExpression_validateSubexpressions( + stringExpression, diagnostics, context); + return result; + } + + /** + * Validates the validateOperands constraint of 'String Expression'. + * + * + * @generated + */ + public boolean validateStringExpression_validateOperands( + StringExpression stringExpression, DiagnosticChain diagnostics, + Map context) { + return stringExpression.validateOperands(diagnostics, context); + } + + /** + * Validates the validateSubexpressions constraint of 'String Expression'. + * + * + * @generated + */ + public boolean validateStringExpression_validateSubexpressions( + StringExpression stringExpression, DiagnosticChain diagnostics, + Map context) { + return stringExpression.validateSubexpressions(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExpression(Expression expression, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(expression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(expression, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(expression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(expression, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(expression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(expression, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(expression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(expression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + expression, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLiteralInteger(LiteralInteger literalInteger, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(literalInteger, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(literalInteger, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(literalInteger, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(literalInteger, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(literalInteger, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(literalInteger, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(literalInteger, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + literalInteger, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + literalInteger, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLiteralString(LiteralString literalString, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(literalString, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(literalString, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + literalString, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLiteralBoolean(LiteralBoolean literalBoolean, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(literalBoolean, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(literalBoolean, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(literalBoolean, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(literalBoolean, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(literalBoolean, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(literalBoolean, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(literalBoolean, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + literalBoolean, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + literalBoolean, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLiteralNull(LiteralNull literalNull, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(literalNull, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(literalNull, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(literalNull, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(literalNull, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(literalNull, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(literalNull, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(literalNull, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(literalNull, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + literalNull, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateSlot(Slot slot, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(slot, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(slot, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(slot, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(slot, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(slot, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(slot, diagnostics, + context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInstanceSpecification( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(instanceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(instanceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(instanceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(instanceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(instanceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateDefiningFeature( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateStructuralFeature( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateDeploymentTarget( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateDeploymentArtifact( + instanceSpecification, diagnostics, context); + return result; + } + + /** + * Validates the validateDefiningFeature constraint of 'Instance Specification'. + * + * + * @generated + */ + public boolean validateInstanceSpecification_validateDefiningFeature( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + return instanceSpecification.validateDefiningFeature(diagnostics, + context); + } + + /** + * Validates the validateStructuralFeature constraint of 'Instance Specification'. + * + * + * @generated + */ + public boolean validateInstanceSpecification_validateStructuralFeature( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + return instanceSpecification.validateStructuralFeature(diagnostics, + context); + } + + /** + * Validates the validateDeploymentTarget constraint of 'Instance Specification'. + * + * + * @generated + */ + public boolean validateInstanceSpecification_validateDeploymentTarget( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + return instanceSpecification.validateDeploymentTarget(diagnostics, + context); + } + + /** + * Validates the validateDeploymentArtifact constraint of 'Instance Specification'. + * + * + * @generated + */ + public boolean validateInstanceSpecification_validateDeploymentArtifact( + InstanceSpecification instanceSpecification, + DiagnosticChain diagnostics, Map context) { + return instanceSpecification.validateDeploymentArtifact(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateEnumeration(Enumeration enumeration, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(enumeration, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(enumeration, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + enumeration, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + enumeration, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + enumeration, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + enumeration, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + enumeration, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + enumeration, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(enumeration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + enumeration, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateEnumerationLiteral( + EnumerationLiteral enumerationLiteral, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(enumerationLiteral, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + enumerationLiteral, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + enumerationLiteral, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateDefiningFeature( + enumerationLiteral, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateStructuralFeature( + enumerationLiteral, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateDeploymentTarget( + enumerationLiteral, diagnostics, context); + if (result || diagnostics != null) + result &= validateInstanceSpecification_validateDeploymentArtifact( + enumerationLiteral, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validatePrimitiveType(PrimitiveType primitiveType, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(primitiveType, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + primitiveType, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + primitiveType, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + primitiveType, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + primitiveType, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + primitiveType, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + primitiveType, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(primitiveType, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + primitiveType, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInstanceValue(InstanceValue instanceValue, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(instanceValue, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(instanceValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + instanceValue, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLiteralUnlimitedNatural( + LiteralUnlimitedNatural literalUnlimitedNatural, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + literalUnlimitedNatural, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(literalUnlimitedNatural, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + literalUnlimitedNatural, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(literalUnlimitedNatural, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + literalUnlimitedNatural, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(literalUnlimitedNatural, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + literalUnlimitedNatural, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + literalUnlimitedNatural, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + literalUnlimitedNatural, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateOpaqueBehavior(OpaqueBehavior opaqueBehavior, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(opaqueBehavior, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize(opaqueBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour(opaqueBehavior, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateFunctionBehavior(FunctionBehavior functionBehavior, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize(functionBehavior, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateFunctionBehavior_validateOneOutputParameter( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) + result &= validateFunctionBehavior_validateTypesOfParameters( + functionBehavior, diagnostics, context); + return result; + } + + /** + * Validates the validateOneOutputParameter constraint of 'Function Behavior'. + * + * + * @generated + */ + public boolean validateFunctionBehavior_validateOneOutputParameter( + FunctionBehavior functionBehavior, DiagnosticChain diagnostics, + Map context) { + return functionBehavior + .validateOneOutputParameter(diagnostics, context); + } + + /** + * Validates the validateTypesOfParameters constraint of 'Function Behavior'. + * + * + * @generated + */ + public boolean validateFunctionBehavior_validateTypesOfParameters( + FunctionBehavior functionBehavior, DiagnosticChain diagnostics, + Map context) { + return functionBehavior.validateTypesOfParameters(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActor(Actor actor, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(actor, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(actor, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + actor, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet(actor, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior(actor, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActor_validateAssociations(actor, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActor_validateMustHaveName(actor, diagnostics, + context); + return result; + } + + /** + * Validates the validateAssociations constraint of 'Actor'. + * + * + * @generated + */ + public boolean validateActor_validateAssociations(Actor actor, + DiagnosticChain diagnostics, Map context) { + return actor.validateAssociations(diagnostics, context); + } + + /** + * Validates the validateMustHaveName constraint of 'Actor'. + * + * + * @generated + */ + public boolean validateActor_validateMustHaveName(Actor actor, + DiagnosticChain diagnostics, Map context) { + return actor.validateMustHaveName(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateUsage(Usage usage, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(usage, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(usage, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(usage, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(usage, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(usage, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(usage, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(usage, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(usage, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + usage, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateMessage(Message message, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(message, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(message, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(message, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(message, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(message, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(message, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(message, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(message, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + message, diagnostics, context); + if (result || diagnostics != null) + result &= validateMessage_validateSendingReceivingMessageEvent( + message, diagnostics, context); + if (result || diagnostics != null) + result &= validateMessage_validateSignatureReferTo(message, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMessage_validateSignatureIsOperation(message, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMessage_validateSignatureIsSignal(message, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMessage_validateArguments(message, diagnostics, + context); + if (result || diagnostics != null) + result &= validateMessage_validateCannotCrossBoundaries(message, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMessage_validateOccurrenceSpecifications(message, + diagnostics, context); + return result; + } + + /** + * Validates the validateSendingReceivingMessageEvent constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateSendingReceivingMessageEvent( + Message message, DiagnosticChain diagnostics, Map context) { + return message.validateSendingReceivingMessageEvent(diagnostics, + context); + } + + /** + * Validates the validateSignatureReferTo constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateSignatureReferTo(Message message, + DiagnosticChain diagnostics, Map context) { + return message.validateSignatureReferTo(diagnostics, context); + } + + /** + * Validates the validateSignatureIsOperation constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateSignatureIsOperation( + Message message, DiagnosticChain diagnostics, Map context) { + return message.validateSignatureIsOperation(diagnostics, context); + } + + /** + * Validates the validateSignatureIsSignal constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateSignatureIsSignal(Message message, + DiagnosticChain diagnostics, Map context) { + return message.validateSignatureIsSignal(diagnostics, context); + } + + /** + * Validates the validateArguments constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateArguments(Message message, + DiagnosticChain diagnostics, Map context) { + return message.validateArguments(diagnostics, context); + } + + /** + * Validates the validateCannotCrossBoundaries constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateCannotCrossBoundaries( + Message message, DiagnosticChain diagnostics, Map context) { + return message.validateCannotCrossBoundaries(diagnostics, context); + } + + /** + * Validates the validateOccurrenceSpecifications constraint of 'Message'. + * + * + * @generated + */ + public boolean validateMessage_validateOccurrenceSpecifications( + Message message, DiagnosticChain diagnostics, Map context) { + return message.validateOccurrenceSpecifications(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateMessageEnd(MessageEnd messageEnd, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(messageEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(messageEnd, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(messageEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(messageEnd, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(messageEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(messageEnd, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(messageEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(messageEnd, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + messageEnd, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInteraction(Interaction interaction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interaction, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interaction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + interaction, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize(interaction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour(interaction, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInteractionFragment( + InteractionFragment interactionFragment, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + interactionFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interactionFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interactionFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interactionFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interactionFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interactionFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interactionFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + interactionFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interactionFragment, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLifeline(Lifeline lifeline, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(lifeline, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(lifeline, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(lifeline, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(lifeline, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(lifeline, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(lifeline, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(lifeline, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(lifeline, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + lifeline, diagnostics, context); + if (result || diagnostics != null) + result &= validateLifeline_validateInteractionUsesShareLifeline( + lifeline, diagnostics, context); + if (result || diagnostics != null) + result &= validateLifeline_validateSelectorSpecified(lifeline, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLifeline_validateSameClassifier(lifeline, + diagnostics, context); + return result; + } + + /** + * Validates the validateInteractionUsesShareLifeline constraint of 'Lifeline'. + * + * + * @generated + */ + public boolean validateLifeline_validateInteractionUsesShareLifeline( + Lifeline lifeline, DiagnosticChain diagnostics, Map context) { + return lifeline.validateInteractionUsesShareLifeline(diagnostics, + context); + } + + /** + * Validates the validateSelectorSpecified constraint of 'Lifeline'. + * + * + * @generated + */ + public boolean validateLifeline_validateSelectorSpecified( + Lifeline lifeline, DiagnosticChain diagnostics, Map context) { + return lifeline.validateSelectorSpecified(diagnostics, context); + } + + /** + * Validates the validateSameClassifier constraint of 'Lifeline'. + * + * + * @generated + */ + public boolean validateLifeline_validateSameClassifier(Lifeline lifeline, + DiagnosticChain diagnostics, Map context) { + return lifeline.validateSameClassifier(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validatePartDecomposition( + PartDecomposition partDecomposition, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(partDecomposition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateGatesMatch( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateAllLifelines( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateArgumentsCorrespondToParameters( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateArgumentsAreConstants( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validatePartDecomposition_validatePartsOfInternalStructures( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validatePartDecomposition_validateAssume( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) + result &= validatePartDecomposition_validateCommutativityOfDecomposition( + partDecomposition, diagnostics, context); + return result; + } + + /** + * Validates the validatePartsOfInternalStructures constraint of 'Part Decomposition'. + * + * + * @generated + */ + public boolean validatePartDecomposition_validatePartsOfInternalStructures( + PartDecomposition partDecomposition, DiagnosticChain diagnostics, + Map context) { + return partDecomposition.validatePartsOfInternalStructures(diagnostics, + context); + } + + /** + * Validates the validateAssume constraint of 'Part Decomposition'. + * + * + * @generated + */ + public boolean validatePartDecomposition_validateAssume( + PartDecomposition partDecomposition, DiagnosticChain diagnostics, + Map context) { + return partDecomposition.validateAssume(diagnostics, context); + } + + /** + * Validates the validateCommutativityOfDecomposition constraint of 'Part Decomposition'. + * + * + * @generated + */ + public boolean validatePartDecomposition_validateCommutativityOfDecomposition( + PartDecomposition partDecomposition, DiagnosticChain diagnostics, + Map context) { + return partDecomposition.validateCommutativityOfDecomposition( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInteractionUse(InteractionUse interactionUse, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interactionUse, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + interactionUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interactionUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateGatesMatch(interactionUse, + diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateAllLifelines( + interactionUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateArgumentsCorrespondToParameters( + interactionUse, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionUse_validateArgumentsAreConstants( + interactionUse, diagnostics, context); + return result; + } + + /** + * Validates the validateGatesMatch constraint of 'Interaction Use'. + * + * + * @generated + */ + public boolean validateInteractionUse_validateGatesMatch( + InteractionUse interactionUse, DiagnosticChain diagnostics, + Map context) { + return interactionUse.validateGatesMatch(diagnostics, context); + } + + /** + * Validates the validateAllLifelines constraint of 'Interaction Use'. + * + * + * @generated + */ + public boolean validateInteractionUse_validateAllLifelines( + InteractionUse interactionUse, DiagnosticChain diagnostics, + Map context) { + return interactionUse.validateAllLifelines(diagnostics, context); + } + + /** + * Validates the validateArgumentsCorrespondToParameters constraint of 'Interaction Use'. + * + * + * @generated + */ + public boolean validateInteractionUse_validateArgumentsCorrespondToParameters( + InteractionUse interactionUse, DiagnosticChain diagnostics, + Map context) { + return interactionUse.validateArgumentsCorrespondToParameters( + diagnostics, context); + } + + /** + * Validates the validateArgumentsAreConstants constraint of 'Interaction Use'. + * + * + * @generated + */ + public boolean validateInteractionUse_validateArgumentsAreConstants( + InteractionUse interactionUse, DiagnosticChain diagnostics, + Map context) { + return interactionUse.validateArgumentsAreConstants(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateGate(Gate gate, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(gate, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(gate, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(gate, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(gate, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(gate, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(gate, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(gate, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(gate, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + gate, diagnostics, context); + if (result || diagnostics != null) + result &= validateGate_validateMessagesActualGate(gate, + diagnostics, context); + if (result || diagnostics != null) + result &= validateGate_validateMessagesCombinedFragment(gate, + diagnostics, context); + return result; + } + + /** + * Validates the validateMessagesActualGate constraint of 'Gate'. + * + * + * @generated + */ + public boolean validateGate_validateMessagesActualGate(Gate gate, + DiagnosticChain diagnostics, Map context) { + return gate.validateMessagesActualGate(diagnostics, context); + } + + /** + * Validates the validateMessagesCombinedFragment constraint of 'Gate'. + * + * + * @generated + */ + public boolean validateGate_validateMessagesCombinedFragment(Gate gate, + DiagnosticChain diagnostics, Map context) { + return gate.validateMessagesCombinedFragment(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAction(Action action, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(action, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(action, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(action, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(action, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(action, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(action, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(action, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(action, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + action, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + action, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + action, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(action, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode(action, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateExecutableNode(ExecutableNode executableNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(executableNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + executableNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + executableNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + executableNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + executableNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(executableNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + executableNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateActivityNode(ActivityNode activityNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activityNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + activityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + activityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + activityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(activityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + activityNode, diagnostics, context); + return result; + } + + /** + * Validates the validateOwned constraint of 'Activity Node'. + * + * + * @generated + */ + public boolean validateActivityNode_validateOwned( + ActivityNode activityNode, DiagnosticChain diagnostics, Map context) { + return activityNode.validateOwned(diagnostics, context); + } + + /** + * Validates the validateOwnedStructuredNode constraint of 'Activity Node'. + * + * + * @generated + */ + public boolean validateActivityNode_validateOwnedStructuredNode( + ActivityNode activityNode, DiagnosticChain diagnostics, Map context) { + return activityNode.validateOwnedStructuredNode(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActivityEdge(ActivityEdge activityEdge, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activityEdge, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + activityEdge, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + activityEdge, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + activityEdge, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateSourceAndTarget( + activityEdge, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateOwned(activityEdge, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateStructuredNode(activityEdge, + diagnostics, context); + return result; + } + + /** + * Validates the validateSourceAndTarget constraint of 'Activity Edge'. + * + * + * @generated + */ + public boolean validateActivityEdge_validateSourceAndTarget( + ActivityEdge activityEdge, DiagnosticChain diagnostics, Map context) { + return activityEdge.validateSourceAndTarget(diagnostics, context); + } + + /** + * Validates the validateOwned constraint of 'Activity Edge'. + * + * + * @generated + */ + public boolean validateActivityEdge_validateOwned( + ActivityEdge activityEdge, DiagnosticChain diagnostics, Map context) { + return activityEdge.validateOwned(diagnostics, context); + } + + /** + * Validates the validateStructuredNode constraint of 'Activity Edge'. + * + * + * @generated + */ + public boolean validateActivityEdge_validateStructuredNode( + ActivityEdge activityEdge, DiagnosticChain diagnostics, Map context) { + return activityEdge.validateStructuredNode(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActivity(Activity activity, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activity, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activity, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activity, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activity, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activity, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(activity, diagnostics, + context); + if (result || diagnostics != null) + result &= validateBehavior_validateParameters(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateFeatureOfContextClassifier( + activity, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMustRealize(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavior_validateMostOneBehaviour(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivity_validateNoSupergroups(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivity_validateActivityParameterNode(activity, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivity_validateAutonomous(activity, + diagnostics, context); + return result; + } + + /** + * Validates the validateNoSupergroups constraint of 'Activity'. + * + * + * @generated + */ + public boolean validateActivity_validateNoSupergroups(Activity activity, + DiagnosticChain diagnostics, Map context) { + return activity.validateNoSupergroups(diagnostics, context); + } + + /** + * Validates the validateActivityParameterNode constraint of 'Activity'. + * + * + * @generated + */ + public boolean validateActivity_validateActivityParameterNode( + Activity activity, DiagnosticChain diagnostics, Map context) { + return activity.validateActivityParameterNode(diagnostics, context); + } + + /** + * Validates the validateAutonomous constraint of 'Activity'. + * + * + * @generated + */ + public boolean validateActivity_validateAutonomous(Activity activity, + DiagnosticChain diagnostics, Map context) { + return activity.validateAutonomous(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActivityPartition( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(activityPartition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityPartition_validateIsDimension( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityPartition_validateNodeOrEdge( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityPartition_validateRepresentsPart( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityPartition_validateRepresentsClassifier( + activityPartition, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityPartition_validateRepresentsPartAndIsContained( + activityPartition, diagnostics, context); + return result; + } + + /** + * Validates the validateIsDimension constraint of 'Activity Partition'. + * + * + * @generated + */ + public boolean validateActivityPartition_validateIsDimension( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + return activityPartition.validateIsDimension(diagnostics, context); + } + + /** + * Validates the validateNodeOrEdge constraint of 'Activity Partition'. + * + * + * @generated + */ + public boolean validateActivityPartition_validateNodeOrEdge( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + return activityPartition.validateNodeOrEdge(diagnostics, context); + } + + /** + * Validates the validateRepresentsPart constraint of 'Activity Partition'. + * + * + * @generated + */ + public boolean validateActivityPartition_validateRepresentsPart( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + return activityPartition.validateRepresentsPart(diagnostics, context); + } + + /** + * Validates the validateRepresentsClassifier constraint of 'Activity Partition'. + * + * + * @generated + */ + public boolean validateActivityPartition_validateRepresentsClassifier( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + return activityPartition.validateRepresentsClassifier(diagnostics, + context); + } + + /** + * Validates the validateRepresentsPartAndIsContained constraint of 'Activity Partition'. + * + * + * @generated + */ + public boolean validateActivityPartition_validateRepresentsPartAndIsContained( + ActivityPartition activityPartition, DiagnosticChain diagnostics, + Map context) { + return activityPartition.validateRepresentsPartAndIsContained( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActivityGroup(ActivityGroup activityGroup, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(activityGroup, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activityGroup, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activityGroup, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activityGroup, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activityGroup, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activityGroup, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges( + activityGroup, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained(activityGroup, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned(activityGroup, + diagnostics, context); + return result; + } + + /** + * Validates the validateNodesAndEdges constraint of 'Activity Group'. + * + * + * @generated + */ + public boolean validateActivityGroup_validateNodesAndEdges( + ActivityGroup activityGroup, DiagnosticChain diagnostics, + Map context) { + return activityGroup.validateNodesAndEdges(diagnostics, context); + } + + /** + * Validates the validateNotContained constraint of 'Activity Group'. + * + * + * @generated + */ + public boolean validateActivityGroup_validateNotContained( + ActivityGroup activityGroup, DiagnosticChain diagnostics, + Map context) { + return activityGroup.validateNotContained(diagnostics, context); + } + + /** + * Validates the validateGroupOwned constraint of 'Activity Group'. + * + * + * @generated + */ + public boolean validateActivityGroup_validateGroupOwned( + ActivityGroup activityGroup, DiagnosticChain diagnostics, + Map context) { + return activityGroup.validateGroupOwned(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStructuredActivityNode( + StructuredActivityNode structuredActivityNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(structuredActivityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(structuredActivityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(structuredActivityNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredActivityNode_validateEdges( + structuredActivityNode, diagnostics, context); + return result; + } + + /** + * Validates the validateEdges constraint of 'Structured Activity Node'. + * + * + * @generated + */ + public boolean validateStructuredActivityNode_validateEdges( + StructuredActivityNode structuredActivityNode, + DiagnosticChain diagnostics, Map context) { + return structuredActivityNode.validateEdges(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateVariable(Variable variable, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(variable, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(variable, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(variable, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(variable, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(variable, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(variable, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(variable, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(variable, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + variable, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGt0(variable, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateLowerGe0(variable, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateUpperGeLower( + variable, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationNoSideEffects( + variable, diagnostics, context); + if (result || diagnostics != null) + result &= validateMultiplicityElement_validateValueSpecificationConstant( + variable, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariable_validateOwned(variable, diagnostics, + context); + return result; + } + + /** + * Validates the validateOwned constraint of 'Variable'. + * + * + * @generated + */ + public boolean validateVariable_validateOwned(Variable variable, + DiagnosticChain diagnostics, Map context) { + return variable.validateOwned(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInterruptibleActivityRegion( + InterruptibleActivityRegion interruptibleActivityRegion, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interruptibleActivityRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateInterruptibleActivityRegion_validateInterruptingEdges( + interruptibleActivityRegion, diagnostics, context); + return result; + } + + /** + * Validates the validateInterruptingEdges constraint of 'Interruptible Activity Region'. + * + * + * @generated + */ + public boolean validateInterruptibleActivityRegion_validateInterruptingEdges( + InterruptibleActivityRegion interruptibleActivityRegion, + DiagnosticChain diagnostics, Map context) { + return interruptibleActivityRegion.validateInterruptingEdges( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExceptionHandler(ExceptionHandler exceptionHandler, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(exceptionHandler, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(exceptionHandler, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(exceptionHandler, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(exceptionHandler, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(exceptionHandler, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(exceptionHandler, + diagnostics, context); + if (result || diagnostics != null) + result &= validateExceptionHandler_validateExceptionBody( + exceptionHandler, diagnostics, context); + if (result || diagnostics != null) + result &= validateExceptionHandler_validateResultPins( + exceptionHandler, diagnostics, context); + if (result || diagnostics != null) + result &= validateExceptionHandler_validateOneInput( + exceptionHandler, diagnostics, context); + if (result || diagnostics != null) + result &= validateExceptionHandler_validateEdgeSourceTarget( + exceptionHandler, diagnostics, context); + return result; + } + + /** + * Validates the validateExceptionBody constraint of 'Exception Handler'. + * + * + * @generated + */ + public boolean validateExceptionHandler_validateExceptionBody( + ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, + Map context) { + return exceptionHandler.validateExceptionBody(diagnostics, context); + } + + /** + * Validates the validateResultPins constraint of 'Exception Handler'. + * + * + * @generated + */ + public boolean validateExceptionHandler_validateResultPins( + ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, + Map context) { + return exceptionHandler.validateResultPins(diagnostics, context); + } + + /** + * Validates the validateOneInput constraint of 'Exception Handler'. + * + * + * @generated + */ + public boolean validateExceptionHandler_validateOneInput( + ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, + Map context) { + return exceptionHandler.validateOneInput(diagnostics, context); + } + + /** + * Validates the validateEdgeSourceTarget constraint of 'Exception Handler'. + * + * + * @generated + */ + public boolean validateExceptionHandler_validateEdgeSourceTarget( + ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, + Map context) { + return exceptionHandler.validateEdgeSourceTarget(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateObjectNode(ObjectNode objectNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(objectNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(objectNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(objectNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + objectNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + objectNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + objectNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + objectNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior(objectNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + objectNode, diagnostics, context); + return result; + } + + /** + * Validates the validateObjectFlowEdges constraint of 'Object Node'. + * + * + * @generated + */ + public boolean validateObjectNode_validateObjectFlowEdges( + ObjectNode objectNode, DiagnosticChain diagnostics, Map context) { + return objectNode.validateObjectFlowEdges(diagnostics, context); + } + + /** + * Validates the validateNotUnique constraint of 'Object Node'. + * + * + * @generated + */ + public boolean validateObjectNode_validateNotUnique(ObjectNode objectNode, + DiagnosticChain diagnostics, Map context) { + return objectNode.validateNotUnique(diagnostics, context); + } + + /** + * Validates the validateSelectionBehavior constraint of 'Object Node'. + * + * + * @generated + */ + public boolean validateObjectNode_validateSelectionBehavior( + ObjectNode objectNode, DiagnosticChain diagnostics, Map context) { + return objectNode.validateSelectionBehavior(diagnostics, context); + } + + /** + * Validates the validateInputOutputParameter constraint of 'Object Node'. + * + * + * @generated + */ + public boolean validateObjectNode_validateInputOutputParameter( + ObjectNode objectNode, DiagnosticChain diagnostics, Map context) { + return objectNode.validateInputOutputParameter(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateOutputPin(OutputPin outputPin, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(outputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(outputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(outputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + outputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + outputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + outputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + outputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior(outputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + outputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validatePin_validateControlPins(outputPin, diagnostics, + context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validatePin(Pin pin, DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(pin, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(pin, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(pin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + pin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + pin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + pin, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode(pin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(pin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(pin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior(pin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter(pin, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePin_validateControlPins(pin, diagnostics, context); + return result; + } + + /** + * Validates the validateControlPins constraint of 'Pin'. + * + * + * @generated + */ + public boolean validatePin_validateControlPins(Pin pin, + DiagnosticChain diagnostics, Map context) { + return pin.validateControlPins(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInputPin(InputPin inputPin, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(inputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(inputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(inputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(inputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(inputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + inputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + inputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + inputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(inputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + inputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter(inputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePin_validateControlPins(inputPin, diagnostics, + context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateGeneralOrdering(GeneralOrdering generalOrdering, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(generalOrdering, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(generalOrdering, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(generalOrdering, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(generalOrdering, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(generalOrdering, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(generalOrdering, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(generalOrdering, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + generalOrdering, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + generalOrdering, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateOccurrenceSpecification( + OccurrenceSpecification occurrenceSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + occurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(occurrenceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + occurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(occurrenceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + occurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(occurrenceSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + occurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + occurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + occurrenceSpecification, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInteractionOperand( + InteractionOperand interactionOperand, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interactionOperand, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + interactionOperand, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interactionOperand, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + interactionOperand, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionOperand_validateGuardDirectlyPrior( + interactionOperand, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionOperand_validateGuardContainReferences( + interactionOperand, diagnostics, context); + return result; + } + + /** + * Validates the validateGuardDirectlyPrior constraint of 'Interaction Operand'. + * + * + * @generated + */ + public boolean validateInteractionOperand_validateGuardDirectlyPrior( + InteractionOperand interactionOperand, DiagnosticChain diagnostics, + Map context) { + return interactionOperand.validateGuardDirectlyPrior(diagnostics, + context); + } + + /** + * Validates the validateGuardContainReferences constraint of 'Interaction Operand'. + * + * + * @generated + */ + public boolean validateInteractionOperand_validateGuardContainReferences( + InteractionOperand interactionOperand, DiagnosticChain diagnostics, + Map context) { + return interactionOperand.validateGuardContainReferences(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateInteractionConstraint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interactionConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interactionConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interactionConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interactionConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interactionConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotApplyToSelf( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateValueSpecificationBoolean( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateBooleanValue( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNoSideEffects( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotAppliedToSelf( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionConstraint_validateDynamicVariables( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionConstraint_validateGlobalData( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionConstraint_validateMinintMaxint( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionConstraint_validateMinint( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionConstraint_validateMaxint( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateInteractionConstraint_validateMaxintGreaterEqualMinint( + interactionConstraint, diagnostics, context); + return result; + } + + /** + * Validates the validateDynamicVariables constraint of 'Interaction Constraint'. + * + * + * @generated + */ + public boolean validateInteractionConstraint_validateDynamicVariables( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + return interactionConstraint.validateDynamicVariables(diagnostics, + context); + } + + /** + * Validates the validateGlobalData constraint of 'Interaction Constraint'. + * + * + * @generated + */ + public boolean validateInteractionConstraint_validateGlobalData( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + return interactionConstraint.validateGlobalData(diagnostics, context); + } + + /** + * Validates the validateMinintMaxint constraint of 'Interaction Constraint'. + * + * + * @generated + */ + public boolean validateInteractionConstraint_validateMinintMaxint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + return interactionConstraint.validateMinintMaxint(diagnostics, context); + } + + /** + * Validates the validateMinint constraint of 'Interaction Constraint'. + * + * + * @generated + */ + public boolean validateInteractionConstraint_validateMinint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + return interactionConstraint.validateMinint(diagnostics, context); + } + + /** + * Validates the validateMaxint constraint of 'Interaction Constraint'. + * + * + * @generated + */ + public boolean validateInteractionConstraint_validateMaxint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + return interactionConstraint.validateMaxint(diagnostics, context); + } + + /** + * Validates the validateMaxintGreaterEqualMinint constraint of 'Interaction Constraint'. + * + * + * @generated + */ + public boolean validateInteractionConstraint_validateMaxintGreaterEqualMinint( + InteractionConstraint interactionConstraint, + DiagnosticChain diagnostics, Map context) { + return interactionConstraint.validateMaxintGreaterEqualMinint( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExecutionSpecification( + ExecutionSpecification executionSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(executionSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(executionSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(executionSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateExecutionSpecification_validateSameLifeline( + executionSpecification, diagnostics, context); + return result; + } + + /** + * Validates the validateSameLifeline constraint of 'Execution Specification'. + * + * + * @generated + */ + public boolean validateExecutionSpecification_validateSameLifeline( + ExecutionSpecification executionSpecification, + DiagnosticChain diagnostics, Map context) { + return executionSpecification + .validateSameLifeline(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExecutionOccurrenceSpecification( + ExecutionOccurrenceSpecification executionOccurrenceSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + executionOccurrenceSpecification, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateExecutionEvent(ExecutionEvent executionEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(executionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(executionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(executionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(executionEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(executionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(executionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(executionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + executionEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + executionEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateStateInvariant(StateInvariant stateInvariant, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(stateInvariant, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(stateInvariant, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(stateInvariant, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(stateInvariant, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(stateInvariant, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(stateInvariant, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(stateInvariant, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + stateInvariant, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + stateInvariant, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateActionExecutionSpecification( + ActionExecutionSpecification actionExecutionSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(actionExecutionSpecification, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateExecutionSpecification_validateSameLifeline( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateActionExecutionSpecification_validateActionReferenced( + actionExecutionSpecification, diagnostics, context); + return result; + } + + /** + * Validates the validateActionReferenced constraint of 'Action Execution Specification'. + * + * + * @generated + */ + public boolean validateActionExecutionSpecification_validateActionReferenced( + ActionExecutionSpecification actionExecutionSpecification, + DiagnosticChain diagnostics, Map context) { + return actionExecutionSpecification.validateActionReferenced( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBehaviorExecutionSpecification( + BehaviorExecutionSpecification behaviorExecutionSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateExecutionSpecification_validateSameLifeline( + behaviorExecutionSpecification, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateCreationEvent(CreationEvent creationEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(creationEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(creationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + creationEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreationEvent_validateNoOccurrenceAbove( + creationEvent, diagnostics, context); + return result; + } + + /** + * Validates the validateNoOccurrenceAbove constraint of 'Creation Event'. + * + * + * @generated + */ + public boolean validateCreationEvent_validateNoOccurrenceAbove( + CreationEvent creationEvent, DiagnosticChain diagnostics, + Map context) { + return creationEvent.validateNoOccurrenceAbove(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDestructionEvent(DestructionEvent destructionEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(destructionEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + destructionEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + destructionEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateDestructionEvent_validateNoOccurrenceSpecificationsBelow( + destructionEvent, diagnostics, context); + return result; + } + + /** + * Validates the validateNoOccurrenceSpecificationsBelow constraint of 'Destruction Event'. + * + * + * @generated + */ + public boolean validateDestructionEvent_validateNoOccurrenceSpecificationsBelow( + DestructionEvent destructionEvent, DiagnosticChain diagnostics, + Map context) { + return destructionEvent.validateNoOccurrenceSpecificationsBelow( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSendOperationEvent( + SendOperationEvent sendOperationEvent, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(sendOperationEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + sendOperationEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + sendOperationEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateMessageEvent(MessageEvent messageEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(messageEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(messageEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + messageEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateSendSignalEvent(SendSignalEvent sendSignalEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(sendSignalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(sendSignalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(sendSignalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(sendSignalEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(sendSignalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(sendSignalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(sendSignalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + sendSignalEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + sendSignalEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateMessageOccurrenceSpecification( + MessageOccurrenceSpecification messageOccurrenceSpecification, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + messageOccurrenceSpecification, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateCombinedFragment(CombinedFragment combinedFragment, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + combinedFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + combinedFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateOptLoopBreakNeg( + combinedFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateMinintAndMaxint( + combinedFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateBreak(combinedFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateConsiderAndIgnore( + combinedFragment, diagnostics, context); + return result; + } + + /** + * Validates the validateOptLoopBreakNeg constraint of 'Combined Fragment'. + * + * + * @generated + */ + public boolean validateCombinedFragment_validateOptLoopBreakNeg( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + return combinedFragment.validateOptLoopBreakNeg(diagnostics, context); + } + + /** + * Validates the validateMinintAndMaxint constraint of 'Combined Fragment'. + * + * + * @generated + */ + public boolean validateCombinedFragment_validateMinintAndMaxint( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + return combinedFragment.validateMinintAndMaxint(diagnostics, context); + } + + /** + * Validates the validateBreak constraint of 'Combined Fragment'. + * + * + * @generated + */ + public boolean validateCombinedFragment_validateBreak( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + return combinedFragment.validateBreak(diagnostics, context); + } + + /** + * Validates the validateConsiderAndIgnore constraint of 'Combined Fragment'. + * + * + * @generated + */ + public boolean validateCombinedFragment_validateConsiderAndIgnore( + CombinedFragment combinedFragment, DiagnosticChain diagnostics, + Map context) { + return combinedFragment.validateConsiderAndIgnore(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateContinuation(Continuation continuation, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(continuation, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + continuation, diagnostics, context); + if (result || diagnostics != null) + result &= validateContinuation_validateSameName(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateContinuation_validateGlobal(continuation, + diagnostics, context); + if (result || diagnostics != null) + result &= validateContinuation_validateFirstOrLastInteractionFragment( + continuation, diagnostics, context); + return result; + } + + /** + * Validates the validateSameName constraint of 'Continuation'. + * + * + * @generated + */ + public boolean validateContinuation_validateSameName( + Continuation continuation, DiagnosticChain diagnostics, Map context) { + return continuation.validateSameName(diagnostics, context); + } + + /** + * Validates the validateGlobal constraint of 'Continuation'. + * + * + * @generated + */ + public boolean validateContinuation_validateGlobal( + Continuation continuation, DiagnosticChain diagnostics, Map context) { + return continuation.validateGlobal(diagnostics, context); + } + + /** + * Validates the validateFirstOrLastInteractionFragment constraint of 'Continuation'. + * + * + * @generated + */ + public boolean validateContinuation_validateFirstOrLastInteractionFragment( + Continuation continuation, DiagnosticChain diagnostics, Map context) { + return continuation.validateFirstOrLastInteractionFragment(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateConsiderIgnoreFragment( + ConsiderIgnoreFragment considerIgnoreFragment, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(considerIgnoreFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(considerIgnoreFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(considerIgnoreFragment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateOptLoopBreakNeg( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateMinintAndMaxint( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateBreak( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateCombinedFragment_validateConsiderAndIgnore( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateConsiderIgnoreFragment_validateConsiderOrIgnore( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) + result &= validateConsiderIgnoreFragment_validateType( + considerIgnoreFragment, diagnostics, context); + return result; + } + + /** + * Validates the validateConsiderOrIgnore constraint of 'Consider Ignore Fragment'. + * + * + * @generated + */ + public boolean validateConsiderIgnoreFragment_validateConsiderOrIgnore( + ConsiderIgnoreFragment considerIgnoreFragment, + DiagnosticChain diagnostics, Map context) { + return considerIgnoreFragment.validateConsiderOrIgnore(diagnostics, + context); + } + + /** + * Validates the validateType constraint of 'Consider Ignore Fragment'. + * + * + * @generated + */ + public boolean validateConsiderIgnoreFragment_validateType( + ConsiderIgnoreFragment considerIgnoreFragment, + DiagnosticChain diagnostics, Map context) { + return considerIgnoreFragment.validateType(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCallEvent(CallEvent callEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(callEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(callEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(callEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(callEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(callEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(callEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(callEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(callEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + callEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateChangeEvent(ChangeEvent changeEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(changeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(changeEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(changeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(changeEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(changeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(changeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(changeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(changeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + changeEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateSignalEvent(SignalEvent signalEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(signalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(signalEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(signalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(signalEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(signalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(signalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(signalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(signalEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + signalEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateAnyReceiveEvent(AnyReceiveEvent anyReceiveEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(anyReceiveEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(anyReceiveEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(anyReceiveEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(anyReceiveEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(anyReceiveEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(anyReceiveEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(anyReceiveEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + anyReceiveEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + anyReceiveEvent, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateCreateObjectAction( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(createObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateObjectAction_validateClassifierNotAbstract( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateObjectAction_validateClassifierNotAssociationClass( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateObjectAction_validateSameType( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateObjectAction_validateMultiplicity( + createObjectAction, diagnostics, context); + return result; + } + + /** + * Validates the validateClassifierNotAbstract constraint of 'Create Object Action'. + * + * + * @generated + */ + public boolean validateCreateObjectAction_validateClassifierNotAbstract( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + return createObjectAction.validateClassifierNotAbstract(diagnostics, + context); + } + + /** + * Validates the validateClassifierNotAssociationClass constraint of 'Create Object Action'. + * + * + * @generated + */ + public boolean validateCreateObjectAction_validateClassifierNotAssociationClass( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + return createObjectAction.validateClassifierNotAssociationClass( + diagnostics, context); + } + + /** + * Validates the validateSameType constraint of 'Create Object Action'. + * + * + * @generated + */ + public boolean validateCreateObjectAction_validateSameType( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + return createObjectAction.validateSameType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Create Object Action'. + * + * + * @generated + */ + public boolean validateCreateObjectAction_validateMultiplicity( + CreateObjectAction createObjectAction, DiagnosticChain diagnostics, + Map context) { + return createObjectAction.validateMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDestroyObjectAction( + DestroyObjectAction destroyObjectAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(destroyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateDestroyObjectAction_validateMultiplicity( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateDestroyObjectAction_validateNoType( + destroyObjectAction, diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicity constraint of 'Destroy Object Action'. + * + * + * @generated + */ + public boolean validateDestroyObjectAction_validateMultiplicity( + DestroyObjectAction destroyObjectAction, + DiagnosticChain diagnostics, Map context) { + return destroyObjectAction.validateMultiplicity(diagnostics, context); + } + + /** + * Validates the validateNoType constraint of 'Destroy Object Action'. + * + * + * @generated + */ + public boolean validateDestroyObjectAction_validateNoType( + DestroyObjectAction destroyObjectAction, + DiagnosticChain diagnostics, Map context) { + return destroyObjectAction.validateNoType(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTestIdentityAction( + TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(testIdentityAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateTestIdentityAction_validateNoType( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateTestIdentityAction_validateMultiplicity( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateTestIdentityAction_validateResultIsBoolean( + testIdentityAction, diagnostics, context); + return result; + } + + /** + * Validates the validateNoType constraint of 'Test Identity Action'. + * + * + * @generated + */ + public boolean validateTestIdentityAction_validateNoType( + TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, + Map context) { + return testIdentityAction.validateNoType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Test Identity Action'. + * + * + * @generated + */ + public boolean validateTestIdentityAction_validateMultiplicity( + TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, + Map context) { + return testIdentityAction.validateMultiplicity(diagnostics, context); + } + + /** + * Validates the validateResultIsBoolean constraint of 'Test Identity Action'. + * + * + * @generated + */ + public boolean validateTestIdentityAction_validateResultIsBoolean( + TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, + Map context) { + return testIdentityAction.validateResultIsBoolean(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadSelfAction(ReadSelfAction readSelfAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readSelfAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readSelfAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readSelfAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readSelfAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readSelfAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readSelfAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadSelfAction_validateContained(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateReadSelfAction_validateNotStatic(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateReadSelfAction_validateType(readSelfAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateReadSelfAction_validateMultiplicity( + readSelfAction, diagnostics, context); + return result; + } + + /** + * Validates the validateContained constraint of 'Read Self Action'. + * + * + * @generated + */ + public boolean validateReadSelfAction_validateContained( + ReadSelfAction readSelfAction, DiagnosticChain diagnostics, + Map context) { + return readSelfAction.validateContained(diagnostics, context); + } + + /** + * Validates the validateNotStatic constraint of 'Read Self Action'. + * + * + * @generated + */ + public boolean validateReadSelfAction_validateNotStatic( + ReadSelfAction readSelfAction, DiagnosticChain diagnostics, + Map context) { + return readSelfAction.validateNotStatic(diagnostics, context); + } + + /** + * Validates the validateType constraint of 'Read Self Action'. + * + * + * @generated + */ + public boolean validateReadSelfAction_validateType( + ReadSelfAction readSelfAction, DiagnosticChain diagnostics, + Map context) { + return readSelfAction.validateType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Read Self Action'. + * + * + * @generated + */ + public boolean validateReadSelfAction_validateMultiplicity( + ReadSelfAction readSelfAction, DiagnosticChain diagnostics, + Map context) { + return readSelfAction.validateMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateStructuralFeatureAction( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(structuralFeatureAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(structuralFeatureAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(structuralFeatureAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateMultiplicity( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + structuralFeatureAction, diagnostics, context); + return result; + } + + /** + * Validates the validateNotStatic constraint of 'Structural Feature Action'. + * + * + * @generated + */ + public boolean validateStructuralFeatureAction_validateNotStatic( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return structuralFeatureAction.validateNotStatic(diagnostics, context); + } + + /** + * Validates the validateSameType constraint of 'Structural Feature Action'. + * + * + * @generated + */ + public boolean validateStructuralFeatureAction_validateSameType( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return structuralFeatureAction.validateSameType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Structural Feature Action'. + * + * + * @generated + */ + public boolean validateStructuralFeatureAction_validateMultiplicity( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return structuralFeatureAction.validateMultiplicity(diagnostics, + context); + } + + /** + * Validates the validateVisibility constraint of 'Structural Feature Action'. + * + * + * @generated + */ + public boolean validateStructuralFeatureAction_validateVisibility( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return structuralFeatureAction.validateVisibility(diagnostics, context); + } + + /** + * Validates the validateOneFeaturingClassifier constraint of 'Structural Feature Action'. + * + * + * @generated + */ + public boolean validateStructuralFeatureAction_validateOneFeaturingClassifier( + StructuralFeatureAction structuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return structuralFeatureAction.validateOneFeaturingClassifier( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadStructuralFeatureAction( + ReadStructuralFeatureAction readStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readStructuralFeatureAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadStructuralFeatureAction_validateMultiplicity( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadStructuralFeatureAction_validateTypeAndOrdering( + readStructuralFeatureAction, diagnostics, context); + return result; + } + + /** + * Validates the validateTypeAndOrdering constraint of 'Read Structural Feature Action'. + * + * + * @generated + */ + public boolean validateReadStructuralFeatureAction_validateTypeAndOrdering( + ReadStructuralFeatureAction readStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return readStructuralFeatureAction.validateTypeAndOrdering(diagnostics, + context); + } + + /** + * Validates the validateMultiplicity constraint of 'Read Structural Feature Action'. + * + * + * @generated + */ + public boolean validateReadStructuralFeatureAction_validateMultiplicity( + ReadStructuralFeatureAction readStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateMultiplicity", getObjectLabel(readStructuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{readStructuralFeatureAction})); + } + return false; + } + return validateStructuralFeatureAction_validateMultiplicity( + readStructuralFeatureAction, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateWriteStructuralFeatureAction( + WriteStructuralFeatureAction writeStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(writeStructuralFeatureAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateMultiplicity( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateInputPin( + writeStructuralFeatureAction, diagnostics, context); + return result; + } + + /** + * Validates the validateInputPin constraint of 'Write Structural Feature Action'. + * + * + * @generated + */ + public boolean validateWriteStructuralFeatureAction_validateInputPin( + WriteStructuralFeatureAction writeStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + return writeStructuralFeatureAction.validateInputPin(diagnostics, + context); + } + + /** + * Validates the validateMultiplicity constraint of 'Write Structural Feature Action'. + * + * + * @generated + */ + public boolean validateWriteStructuralFeatureAction_validateMultiplicity( + WriteStructuralFeatureAction writeStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateMultiplicity", getObjectLabel(writeStructuralFeatureAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{writeStructuralFeatureAction})); + } + return false; + } + return validateStructuralFeatureAction_validateMultiplicity( + writeStructuralFeatureAction, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClearStructuralFeatureAction( + ClearStructuralFeatureAction clearStructuralFeatureAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(clearStructuralFeatureAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateMultiplicity( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + clearStructuralFeatureAction, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateRemoveStructuralFeatureValueAction( + RemoveStructuralFeatureValueAction removeStructuralFeatureValueAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateMultiplicity( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateInputPin( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRemoveStructuralFeatureValueAction_validateNonUniqueRemoval( + removeStructuralFeatureValueAction, diagnostics, context); + return result; + } + + /** + * Validates the validateNonUniqueRemoval constraint of 'Remove Structural Feature Value Action'. + * + * + * @generated + */ + public boolean validateRemoveStructuralFeatureValueAction_validateNonUniqueRemoval( + RemoveStructuralFeatureValueAction removeStructuralFeatureValueAction, + DiagnosticChain diagnostics, Map context) { + return removeStructuralFeatureValueAction.validateNonUniqueRemoval( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAddStructuralFeatureValueAction( + AddStructuralFeatureValueAction addStructuralFeatureValueAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateMultiplicity( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateInputPin( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAddStructuralFeatureValueAction_validateUnlimitedNaturalAndMultiplicity( + addStructuralFeatureValueAction, diagnostics, context); + return result; + } + + /** + * Validates the validateUnlimitedNaturalAndMultiplicity constraint of 'Add Structural Feature Value Action'. + * + * + * @generated + */ + public boolean validateAddStructuralFeatureValueAction_validateUnlimitedNaturalAndMultiplicity( + AddStructuralFeatureValueAction addStructuralFeatureValueAction, + DiagnosticChain diagnostics, Map context) { + return addStructuralFeatureValueAction + .validateUnlimitedNaturalAndMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLinkAction(LinkAction linkAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(linkAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(linkAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(linkAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + linkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + linkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + linkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + linkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSameAssociation(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateNotStatic(linkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSamePins(linkAction, + diagnostics, context); + return result; + } + + /** + * Validates the validateSameAssociation constraint of 'Link Action'. + * + * + * @generated + */ + public boolean validateLinkAction_validateSameAssociation( + LinkAction linkAction, DiagnosticChain diagnostics, Map context) { + return linkAction.validateSameAssociation(diagnostics, context); + } + + /** + * Validates the validateNotStatic constraint of 'Link Action'. + * + * + * @generated + */ + public boolean validateLinkAction_validateNotStatic(LinkAction linkAction, + DiagnosticChain diagnostics, Map context) { + return linkAction.validateNotStatic(diagnostics, context); + } + + /** + * Validates the validateSamePins constraint of 'Link Action'. + * + * + * @generated + */ + public boolean validateLinkAction_validateSamePins(LinkAction linkAction, + DiagnosticChain diagnostics, Map context) { + return linkAction.validateSamePins(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLinkEndData(LinkEndData linkEndData, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(linkEndData, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(linkEndData, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validatePropertyIsAssociationEnd( + linkEndData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateSameType(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateMultiplicity(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateQualifiers(linkEndData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateEndObjectInputPin( + linkEndData, diagnostics, context); + return result; + } + + /** + * Validates the validatePropertyIsAssociationEnd constraint of 'Link End Data'. + * + * + * @generated + */ + public boolean validateLinkEndData_validatePropertyIsAssociationEnd( + LinkEndData linkEndData, DiagnosticChain diagnostics, Map context) { + return linkEndData.validatePropertyIsAssociationEnd(diagnostics, + context); + } + + /** + * Validates the validateSameType constraint of 'Link End Data'. + * + * + * @generated + */ + public boolean validateLinkEndData_validateSameType( + LinkEndData linkEndData, DiagnosticChain diagnostics, Map context) { + return linkEndData.validateSameType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Link End Data'. + * + * + * @generated + */ + public boolean validateLinkEndData_validateMultiplicity( + LinkEndData linkEndData, DiagnosticChain diagnostics, Map context) { + return linkEndData.validateMultiplicity(diagnostics, context); + } + + /** + * Validates the validateQualifiers constraint of 'Link End Data'. + * + * + * @generated + */ + public boolean validateLinkEndData_validateQualifiers( + LinkEndData linkEndData, DiagnosticChain diagnostics, Map context) { + return linkEndData.validateQualifiers(diagnostics, context); + } + + /** + * Validates the validateEndObjectInputPin constraint of 'Link End Data'. + * + * + * @generated + */ + public boolean validateLinkEndData_validateEndObjectInputPin( + LinkEndData linkEndData, DiagnosticChain diagnostics, Map context) { + return linkEndData.validateEndObjectInputPin(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateQualifierValue(QualifierValue qualifierValue, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(qualifierValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(qualifierValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(qualifierValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(qualifierValue, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(qualifierValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(qualifierValue, + diagnostics, context); + if (result || diagnostics != null) + result &= validateQualifierValue_validateQualifierAttribute( + qualifierValue, diagnostics, context); + if (result || diagnostics != null) + result &= validateQualifierValue_validateTypeOfQualifier( + qualifierValue, diagnostics, context); + if (result || diagnostics != null) + result &= validateQualifierValue_validateMultiplicityOfQualifier( + qualifierValue, diagnostics, context); + return result; + } + + /** + * Validates the validateQualifierAttribute constraint of 'Qualifier Value'. + * + * + * @generated + */ + public boolean validateQualifierValue_validateQualifierAttribute( + QualifierValue qualifierValue, DiagnosticChain diagnostics, + Map context) { + return qualifierValue.validateQualifierAttribute(diagnostics, context); + } + + /** + * Validates the validateTypeOfQualifier constraint of 'Qualifier Value'. + * + * + * @generated + */ + public boolean validateQualifierValue_validateTypeOfQualifier( + QualifierValue qualifierValue, DiagnosticChain diagnostics, + Map context) { + return qualifierValue.validateTypeOfQualifier(diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfQualifier constraint of 'Qualifier Value'. + * + * + * @generated + */ + public boolean validateQualifierValue_validateMultiplicityOfQualifier( + QualifierValue qualifierValue, DiagnosticChain diagnostics, + Map context) { + return qualifierValue.validateMultiplicityOfQualifier(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateReadLinkAction(ReadLinkAction readLinkAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readLinkAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSameAssociation( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateNotStatic(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSamePins(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkAction_validateOneOpenEnd(readLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkAction_validateTypeAndOrdering( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkAction_validateCompatibleMultiplicity( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkAction_validateNavigableOpenEnd( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkAction_validateVisibility(readLinkAction, + diagnostics, context); + return result; + } + + /** + * Validates the validateOneOpenEnd constraint of 'Read Link Action'. + * + * + * @generated + */ + public boolean validateReadLinkAction_validateOneOpenEnd( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + return readLinkAction.validateOneOpenEnd(diagnostics, context); + } + + /** + * Validates the validateTypeAndOrdering constraint of 'Read Link Action'. + * + * + * @generated + */ + public boolean validateReadLinkAction_validateTypeAndOrdering( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + return readLinkAction.validateTypeAndOrdering(diagnostics, context); + } + + /** + * Validates the validateCompatibleMultiplicity constraint of 'Read Link Action'. + * + * + * @generated + */ + public boolean validateReadLinkAction_validateCompatibleMultiplicity( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + return readLinkAction.validateCompatibleMultiplicity(diagnostics, + context); + } + + /** + * Validates the validateNavigableOpenEnd constraint of 'Read Link Action'. + * + * + * @generated + */ + public boolean validateReadLinkAction_validateNavigableOpenEnd( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + return readLinkAction.validateNavigableOpenEnd(diagnostics, context); + } + + /** + * Validates the validateVisibility constraint of 'Read Link Action'. + * + * + * @generated + */ + public boolean validateReadLinkAction_validateVisibility( + ReadLinkAction readLinkAction, DiagnosticChain diagnostics, + Map context) { + return readLinkAction.validateVisibility(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLinkEndCreationData( + LinkEndCreationData linkEndCreationData, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(linkEndCreationData, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(linkEndCreationData, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(linkEndCreationData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(linkEndCreationData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(linkEndCreationData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validatePropertyIsAssociationEnd( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateSameType(linkEndCreationData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateMultiplicity( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateQualifiers( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateEndObjectInputPin( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndCreationData_validateCreateLinkAction( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndCreationData_validateSingleInputPin( + linkEndCreationData, diagnostics, context); + return result; + } + + /** + * Validates the validateCreateLinkAction constraint of 'Link End Creation Data'. + * + * + * @generated + */ + public boolean validateLinkEndCreationData_validateCreateLinkAction( + LinkEndCreationData linkEndCreationData, + DiagnosticChain diagnostics, Map context) { + return linkEndCreationData.validateCreateLinkAction(diagnostics, + context); + } + + /** + * Validates the validateSingleInputPin constraint of 'Link End Creation Data'. + * + * + * @generated + */ + public boolean validateLinkEndCreationData_validateSingleInputPin( + LinkEndCreationData linkEndCreationData, + DiagnosticChain diagnostics, Map context) { + return linkEndCreationData.validateSingleInputPin(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCreateLinkAction(CreateLinkAction createLinkAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSameAssociation( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateNotStatic(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSamePins(createLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteLinkAction_validateAllowAccess( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateLinkAction_validateAssociationNotAbstract( + createLinkAction, diagnostics, context); + return result; + } + + /** + * Validates the validateAssociationNotAbstract constraint of 'Create Link Action'. + * + * + * @generated + */ + public boolean validateCreateLinkAction_validateAssociationNotAbstract( + CreateLinkAction createLinkAction, DiagnosticChain diagnostics, + Map context) { + return createLinkAction.validateAssociationNotAbstract(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateWriteLinkAction(WriteLinkAction writeLinkAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(writeLinkAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSameAssociation( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateNotStatic(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSamePins(writeLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteLinkAction_validateAllowAccess( + writeLinkAction, diagnostics, context); + return result; + } + + /** + * Validates the validateAllowAccess constraint of 'Write Link Action'. + * + * + * @generated + */ + public boolean validateWriteLinkAction_validateAllowAccess( + WriteLinkAction writeLinkAction, DiagnosticChain diagnostics, + Map context) { + return writeLinkAction.validateAllowAccess(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDestroyLinkAction( + DestroyLinkAction destroyLinkAction, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSameAssociation( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateNotStatic(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSamePins(destroyLinkAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteLinkAction_validateAllowAccess( + destroyLinkAction, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateLinkEndDestructionData( + LinkEndDestructionData linkEndDestructionData, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(linkEndDestructionData, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(linkEndDestructionData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(linkEndDestructionData, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validatePropertyIsAssociationEnd( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateSameType( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateMultiplicity( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateQualifiers( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndData_validateEndObjectInputPin( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndDestructionData_validateDestroyLinkAction( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkEndDestructionData_validateUnlimitedNaturalAndMultiplicity( + linkEndDestructionData, diagnostics, context); + return result; + } + + /** + * Validates the validateDestroyLinkAction constraint of 'Link End Destruction Data'. + * + * + * @generated + */ + public boolean validateLinkEndDestructionData_validateDestroyLinkAction( + LinkEndDestructionData linkEndDestructionData, + DiagnosticChain diagnostics, Map context) { + return linkEndDestructionData.validateDestroyLinkAction(diagnostics, + context); + } + + /** + * Validates the validateUnlimitedNaturalAndMultiplicity constraint of 'Link End Destruction Data'. + * + * + * @generated + */ + public boolean validateLinkEndDestructionData_validateUnlimitedNaturalAndMultiplicity( + LinkEndDestructionData linkEndDestructionData, + DiagnosticChain diagnostics, Map context) { + return linkEndDestructionData.validateUnlimitedNaturalAndMultiplicity( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClearAssociationAction( + ClearAssociationAction clearAssociationAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(clearAssociationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(clearAssociationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(clearAssociationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateClearAssociationAction_validateSameType( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateClearAssociationAction_validateMultiplicity( + clearAssociationAction, diagnostics, context); + return result; + } + + /** + * Validates the validateSameType constraint of 'Clear Association Action'. + * + * + * @generated + */ + public boolean validateClearAssociationAction_validateSameType( + ClearAssociationAction clearAssociationAction, + DiagnosticChain diagnostics, Map context) { + return clearAssociationAction.validateSameType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Clear Association Action'. + * + * + * @generated + */ + public boolean validateClearAssociationAction_validateMultiplicity( + ClearAssociationAction clearAssociationAction, + DiagnosticChain diagnostics, Map context) { + return clearAssociationAction + .validateMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateBroadcastSignalAction( + BroadcastSignalAction broadcastSignalAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(broadcastSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(broadcastSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(broadcastSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(broadcastSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(broadcastSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(broadcastSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateBroadcastSignalAction_validateNumberAndOrder( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateBroadcastSignalAction_validateTypeOrderingMultiplicity( + broadcastSignalAction, diagnostics, context); + return result; + } + + /** + * Validates the validateNumberAndOrder constraint of 'Broadcast Signal Action'. + * + * + * @generated + */ + public boolean validateBroadcastSignalAction_validateNumberAndOrder( + BroadcastSignalAction broadcastSignalAction, + DiagnosticChain diagnostics, Map context) { + return broadcastSignalAction.validateNumberAndOrder(diagnostics, + context); + } + + /** + * Validates the validateTypeOrderingMultiplicity constraint of 'Broadcast Signal Action'. + * + * + * @generated + */ + public boolean validateBroadcastSignalAction_validateTypeOrderingMultiplicity( + BroadcastSignalAction broadcastSignalAction, + DiagnosticChain diagnostics, Map context) { + return broadcastSignalAction.validateTypeOrderingMultiplicity( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInvocationAction(InvocationAction invocationAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + invocationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + invocationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + invocationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + invocationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(invocationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + invocationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort(invocationAction, + diagnostics, context); + return result; + } + + /** + * Validates the validateOnPort constraint of 'Invocation Action'. + * + * + * @generated + */ + public boolean validateInvocationAction_validateOnPort( + InvocationAction invocationAction, DiagnosticChain diagnostics, + Map context) { + return invocationAction.validateOnPort(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSendObjectAction(SendObjectAction sendObjectAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + sendObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + sendObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + sendObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + sendObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(sendObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + sendObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort(sendObjectAction, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateValueSpecificationAction( + ValueSpecificationAction valueSpecificationAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(valueSpecificationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(valueSpecificationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateValueSpecificationAction_validateCompatibleType( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateValueSpecificationAction_validateMultiplicity( + valueSpecificationAction, diagnostics, context); + return result; + } + + /** + * Validates the validateCompatibleType constraint of 'Value Specification Action'. + * + * + * @generated + */ + public boolean validateValueSpecificationAction_validateCompatibleType( + ValueSpecificationAction valueSpecificationAction, + DiagnosticChain diagnostics, Map context) { + return valueSpecificationAction.validateCompatibleType(diagnostics, + context); + } + + /** + * Validates the validateMultiplicity constraint of 'Value Specification Action'. + * + * + * @generated + */ + public boolean validateValueSpecificationAction_validateMultiplicity( + ValueSpecificationAction valueSpecificationAction, + DiagnosticChain diagnostics, Map context) { + return valueSpecificationAction.validateMultiplicity(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateTimeExpression(TimeExpression timeExpression, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(timeExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(timeExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(timeExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(timeExpression, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(timeExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(timeExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(timeExpression, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + timeExpression, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + timeExpression, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateDuration(Duration duration, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(duration, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(duration, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(duration, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(duration, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(duration, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(duration, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(duration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(duration, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + duration, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTimeObservationAction( + TimeObservationAction timeObservationAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(timeObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(timeObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(timeObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(timeObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(timeObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(timeObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateMultiplicity( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateInputPin( + timeObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateTimeObservationAction_validateInputValueTimeExpression( + timeObservationAction, diagnostics, context); + return result; + } + + /** + * Validates the validateInputValueTimeExpression constraint of 'Time Observation Action'. + * + * + * @generated + */ + public boolean validateTimeObservationAction_validateInputValueTimeExpression( + TimeObservationAction timeObservationAction, + DiagnosticChain diagnostics, Map context) { + return timeObservationAction.validateInputValueTimeExpression( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateValuePin(ValuePin valuePin, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + valuePin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + valuePin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + valuePin, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + valuePin, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter(valuePin, + diagnostics, context); + if (result || diagnostics != null) + result &= validatePin_validateControlPins(valuePin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateValuePin_validateCompatibleType(valuePin, + diagnostics, context); + return result; + } + + /** + * Validates the validateCompatibleType constraint of 'Value Pin'. + * + * + * @generated + */ + public boolean validateValuePin_validateCompatibleType(ValuePin valuePin, + DiagnosticChain diagnostics, Map context) { + return valuePin.validateCompatibleType(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDurationInterval(DurationInterval durationInterval, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(durationInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + durationInterval, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + durationInterval, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateInterval(Interval interval, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(interval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(interval, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(interval, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(interval, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(interval, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(interval, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(interval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(interval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + interval, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTimeConstraint(TimeConstraint timeConstraint, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(timeConstraint, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + timeConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + timeConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotApplyToSelf(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateValueSpecificationBoolean( + timeConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateBooleanValue(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNoSideEffects(timeConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotAppliedToSelf( + timeConstraint, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateIntervalConstraint( + IntervalConstraint intervalConstraint, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(intervalConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotApplyToSelf( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateValueSpecificationBoolean( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateBooleanValue( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNoSideEffects( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotAppliedToSelf( + intervalConstraint, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateTimeInterval(TimeInterval timeInterval, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(timeInterval, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(timeInterval, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + timeInterval, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateDurationObservationAction( + DurationObservationAction durationObservationAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(durationObservationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateNotStatic( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateSameType( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateMultiplicity( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateVisibility( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuralFeatureAction_validateOneFeaturingClassifier( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteStructuralFeatureAction_validateInputPin( + durationObservationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateDurationObservationAction_validateInputValueDuration( + durationObservationAction, diagnostics, context); + return result; + } + + /** + * Validates the validateInputValueDuration constraint of 'Duration Observation Action'. + * + * + * @generated + */ + public boolean validateDurationObservationAction_validateInputValueDuration( + DurationObservationAction durationObservationAction, + DiagnosticChain diagnostics, Map context) { + return durationObservationAction.validateInputValueDuration( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDurationConstraint( + DurationConstraint durationConstraint, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(durationConstraint, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotApplyToSelf( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateValueSpecificationBoolean( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateBooleanValue( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNoSideEffects( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) + result &= validateConstraint_validateNotAppliedToSelf( + durationConstraint, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateOpaqueAction(OpaqueAction opaqueAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(opaqueAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + opaqueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + opaqueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + opaqueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(opaqueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + opaqueAction, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateCallAction(CallAction callAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(callAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(callAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(callAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + callAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + callAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + callAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + callAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateSynchronousCall(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateNumberAndOrder(callAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateTypeOrderingMultiplicity( + callAction, diagnostics, context); + return result; + } + + /** + * Validates the validateSynchronousCall constraint of 'Call Action'. + * + * + * @generated + */ + public boolean validateCallAction_validateSynchronousCall( + CallAction callAction, DiagnosticChain diagnostics, Map context) { + return callAction.validateSynchronousCall(diagnostics, context); + } + + /** + * Validates the validateNumberAndOrder constraint of 'Call Action'. + * + * + * @generated + */ + public boolean validateCallAction_validateNumberAndOrder( + CallAction callAction, DiagnosticChain diagnostics, Map context) { + return callAction.validateNumberAndOrder(diagnostics, context); + } + + /** + * Validates the validateTypeOrderingMultiplicity constraint of 'Call Action'. + * + * + * @generated + */ + public boolean validateCallAction_validateTypeOrderingMultiplicity( + CallAction callAction, DiagnosticChain diagnostics, Map context) { + return callAction + .validateTypeOrderingMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateSendSignalAction(SendSignalAction sendSignalAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort(sendSignalAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateSendSignalAction_validateNumberOrder( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateSendSignalAction_validateTypeOrderingMultiplicity( + sendSignalAction, diagnostics, context); + return result; + } + + /** + * Validates the validateNumberOrder constraint of 'Send Signal Action'. + * + * + * @generated + */ + public boolean validateSendSignalAction_validateNumberOrder( + SendSignalAction sendSignalAction, DiagnosticChain diagnostics, + Map context) { + return sendSignalAction.validateNumberOrder(diagnostics, context); + } + + /** + * Validates the validateTypeOrderingMultiplicity constraint of 'Send Signal Action'. + * + * + * @generated + */ + public boolean validateSendSignalAction_validateTypeOrderingMultiplicity( + SendSignalAction sendSignalAction, DiagnosticChain diagnostics, + Map context) { + return sendSignalAction.validateTypeOrderingMultiplicity(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateCallOperationAction( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(callOperationAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateSynchronousCall( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateNumberAndOrder( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallOperationAction_validateTypeOrderingMultiplicity( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallOperationAction_validateArgumentPinEqualParameter( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallOperationAction_validateResultPinEqualParameter( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallOperationAction_validateTypeTargetPin( + callOperationAction, diagnostics, context); + return result; + } + + /** + * Validates the validateArgumentPinEqualParameter constraint of 'Call Operation Action'. + * + * + * @generated + */ + public boolean validateCallOperationAction_validateArgumentPinEqualParameter( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + return callOperationAction.validateArgumentPinEqualParameter( + diagnostics, context); + } + + /** + * Validates the validateResultPinEqualParameter constraint of 'Call Operation Action'. + * + * + * @generated + */ + public boolean validateCallOperationAction_validateResultPinEqualParameter( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + return callOperationAction.validateResultPinEqualParameter(diagnostics, + context); + } + + /** + * Validates the validateTypeTargetPin constraint of 'Call Operation Action'. + * + * + * @generated + */ + public boolean validateCallOperationAction_validateTypeTargetPin( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + return callOperationAction.validateTypeTargetPin(diagnostics, context); + } + + /** + * Validates the validateTypeOrderingMultiplicity constraint of 'Call Operation Action'. + * + * + * @generated + */ + public boolean validateCallOperationAction_validateTypeOrderingMultiplicity( + CallOperationAction callOperationAction, + DiagnosticChain diagnostics, Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", getObjectLabel(callOperationAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callOperationAction})); + } + return false; + } + return validateCallAction_validateTypeOrderingMultiplicity( + callOperationAction, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCallBehaviorAction( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(callBehaviorAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateInvocationAction_validateOnPort( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateSynchronousCall( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallAction_validateNumberAndOrder( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallBehaviorAction_validateTypeOrderingMultiplicity( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallBehaviorAction_validateArgumentPinEqualParameter( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCallBehaviorAction_validateResultPinEqualParameter( + callBehaviorAction, diagnostics, context); + return result; + } + + /** + * Validates the validateArgumentPinEqualParameter constraint of 'Call Behavior Action'. + * + * + * @generated + */ + public boolean validateCallBehaviorAction_validateArgumentPinEqualParameter( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + return callBehaviorAction.validateArgumentPinEqualParameter( + diagnostics, context); + } + + /** + * Validates the validateResultPinEqualParameter constraint of 'Call Behavior Action'. + * + * + * @generated + */ + public boolean validateCallBehaviorAction_validateResultPinEqualParameter( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + return callBehaviorAction.validateResultPinEqualParameter(diagnostics, + context); + } + + /** + * Validates the validateTypeOrderingMultiplicity constraint of 'Call Behavior Action'. + * + * + * @generated + */ + public boolean validateCallBehaviorAction_validateTypeOrderingMultiplicity( + CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, + Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateTypeOrderingMultiplicity", getObjectLabel(callBehaviorAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{callBehaviorAction})); + } + return false; + } + return validateCallAction_validateTypeOrderingMultiplicity( + callBehaviorAction, diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInformationItem(InformationItem informationItem, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(informationItem, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateInformationItem_validateSourcesAndTargets( + informationItem, diagnostics, context); + if (result || diagnostics != null) + result &= validateInformationItem_validateHasNo(informationItem, + diagnostics, context); + if (result || diagnostics != null) + result &= validateInformationItem_validateNotInstantiable( + informationItem, diagnostics, context); + return result; + } + + /** + * Validates the validateSourcesAndTargets constraint of 'Information Item'. + * + * + * @generated + */ + public boolean validateInformationItem_validateSourcesAndTargets( + InformationItem informationItem, DiagnosticChain diagnostics, + Map context) { + return informationItem.validateSourcesAndTargets(diagnostics, context); + } + + /** + * Validates the validateHasNo constraint of 'Information Item'. + * + * + * @generated + */ + public boolean validateInformationItem_validateHasNo( + InformationItem informationItem, DiagnosticChain diagnostics, + Map context) { + return informationItem.validateHasNo(diagnostics, context); + } + + /** + * Validates the validateNotInstantiable constraint of 'Information Item'. + * + * + * @generated + */ + public boolean validateInformationItem_validateNotInstantiable( + InformationItem informationItem, DiagnosticChain diagnostics, + Map context) { + return informationItem.validateNotInstantiable(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInformationFlow(InformationFlow informationFlow, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(informationFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(informationFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(informationFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(informationFlow, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(informationFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(informationFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(informationFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + informationFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + informationFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateInformationFlow_validateSourcesAndTargetsKind( + informationFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateInformationFlow_validateMustConform( + informationFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateInformationFlow_validateConveyClassifiers( + informationFlow, diagnostics, context); + return result; + } + + /** + * Validates the validateSourcesAndTargetsKind constraint of 'Information Flow'. + * + * + * @generated + */ + public boolean validateInformationFlow_validateSourcesAndTargetsKind( + InformationFlow informationFlow, DiagnosticChain diagnostics, + Map context) { + return informationFlow.validateSourcesAndTargetsKind(diagnostics, + context); + } + + /** + * Validates the validateMustConform constraint of 'Information Flow'. + * + * + * @generated + */ + public boolean validateInformationFlow_validateMustConform( + InformationFlow informationFlow, DiagnosticChain diagnostics, + Map context) { + return informationFlow.validateMustConform(diagnostics, context); + } + + /** + * Validates the validateConveyClassifiers constraint of 'Information Flow'. + * + * + * @generated + */ + public boolean validateInformationFlow_validateConveyClassifiers( + InformationFlow informationFlow, DiagnosticChain diagnostics, + Map context) { + return informationFlow.validateConveyClassifiers(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateModel(Model model, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(model, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(model, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(model, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(model, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(model, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(model, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(model, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(model, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + model, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + model, diagnostics, context); + if (result || diagnostics != null) + result &= validatePackage_validateElementsPublicOrPrivate(model, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateVariableAction(VariableAction variableAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(variableAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + variableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + variableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + variableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + variableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(variableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + variableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariableAction_validateScopeOfVariable( + variableAction, diagnostics, context); + return result; + } + + /** + * Validates the validateScopeOfVariable constraint of 'Variable Action'. + * + * + * @generated + */ + public boolean validateVariableAction_validateScopeOfVariable( + VariableAction variableAction, DiagnosticChain diagnostics, + Map context) { + return variableAction.validateScopeOfVariable(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadVariableAction( + ReadVariableAction readVariableAction, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(readVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariableAction_validateScopeOfVariable( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadVariableAction_validateTypeAndOrdering( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadVariableAction_validateCompatibleMultiplicity( + readVariableAction, diagnostics, context); + return result; + } + + /** + * Validates the validateTypeAndOrdering constraint of 'Read Variable Action'. + * + * + * @generated + */ + public boolean validateReadVariableAction_validateTypeAndOrdering( + ReadVariableAction readVariableAction, DiagnosticChain diagnostics, + Map context) { + return readVariableAction.validateTypeAndOrdering(diagnostics, context); + } + + /** + * Validates the validateCompatibleMultiplicity constraint of 'Read Variable Action'. + * + * + * @generated + */ + public boolean validateReadVariableAction_validateCompatibleMultiplicity( + ReadVariableAction readVariableAction, DiagnosticChain diagnostics, + Map context) { + return readVariableAction.validateCompatibleMultiplicity(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateWriteVariableAction( + WriteVariableAction writeVariableAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(writeVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariableAction_validateScopeOfVariable( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteVariableAction_validateSameType( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteVariableAction_validateMultiplicity( + writeVariableAction, diagnostics, context); + return result; + } + + /** + * Validates the validateSameType constraint of 'Write Variable Action'. + * + * + * @generated + */ + public boolean validateWriteVariableAction_validateSameType( + WriteVariableAction writeVariableAction, + DiagnosticChain diagnostics, Map context) { + return writeVariableAction.validateSameType(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Write Variable Action'. + * + * + * @generated + */ + public boolean validateWriteVariableAction_validateMultiplicity( + WriteVariableAction writeVariableAction, + DiagnosticChain diagnostics, Map context) { + return writeVariableAction.validateMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClearVariableAction( + ClearVariableAction clearVariableAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(clearVariableAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariableAction_validateScopeOfVariable( + clearVariableAction, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateAddVariableValueAction( + AddVariableValueAction addVariableValueAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(addVariableValueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(addVariableValueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(addVariableValueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariableAction_validateScopeOfVariable( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteVariableAction_validateSameType( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteVariableAction_validateMultiplicity( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAddVariableValueAction_validateSingleInputPin( + addVariableValueAction, diagnostics, context); + return result; + } + + /** + * Validates the validateSingleInputPin constraint of 'Add Variable Value Action'. + * + * + * @generated + */ + public boolean validateAddVariableValueAction_validateSingleInputPin( + AddVariableValueAction addVariableValueAction, + DiagnosticChain diagnostics, Map context) { + return addVariableValueAction.validateSingleInputPin(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateRemoveVariableValueAction( + RemoveVariableValueAction removeVariableValueAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(removeVariableValueAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateVariableAction_validateScopeOfVariable( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteVariableAction_validateSameType( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteVariableAction_validateMultiplicity( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRemoveVariableValueAction_validateUnlimitedNatural( + removeVariableValueAction, diagnostics, context); + return result; + } + + /** + * Validates the validateUnlimitedNatural constraint of 'Remove Variable Value Action'. + * + * + * @generated + */ + public boolean validateRemoveVariableValueAction_validateUnlimitedNatural( + RemoveVariableValueAction removeVariableValueAction, + DiagnosticChain diagnostics, Map context) { + return removeVariableValueAction.validateUnlimitedNatural(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateRaiseExceptionAction( + RaiseExceptionAction raiseExceptionAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + raiseExceptionAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + raiseExceptionAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + raiseExceptionAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + raiseExceptionAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + raiseExceptionAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(raiseExceptionAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + raiseExceptionAction, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateActionInputPin(ActionInputPin actionInputPin, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(actionInputPin, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validatePin_validateControlPins(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActionInputPin_validateOneOutputPin( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) + result &= validateActionInputPin_validateInputPin(actionInputPin, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActionInputPin_validateNoControlOrDataFlow( + actionInputPin, diagnostics, context); + return result; + } + + /** + * Validates the validateOneOutputPin constraint of 'Action Input Pin'. + * + * + * @generated + */ + public boolean validateActionInputPin_validateOneOutputPin( + ActionInputPin actionInputPin, DiagnosticChain diagnostics, + Map context) { + return actionInputPin.validateOneOutputPin(diagnostics, context); + } + + /** + * Validates the validateInputPin constraint of 'Action Input Pin'. + * + * + * @generated + */ + public boolean validateActionInputPin_validateInputPin( + ActionInputPin actionInputPin, DiagnosticChain diagnostics, + Map context) { + return actionInputPin.validateInputPin(diagnostics, context); + } + + /** + * Validates the validateNoControlOrDataFlow constraint of 'Action Input Pin'. + * + * + * @generated + */ + public boolean validateActionInputPin_validateNoControlOrDataFlow( + ActionInputPin actionInputPin, DiagnosticChain diagnostics, + Map context) { + return actionInputPin.validateNoControlOrDataFlow(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadExtentAction(ReadExtentAction readExtentAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(readExtentAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadExtentAction_validateTypeIsClassifier( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadExtentAction_validateMultiplicityOfResult( + readExtentAction, diagnostics, context); + return result; + } + + /** + * Validates the validateTypeIsClassifier constraint of 'Read Extent Action'. + * + * + * @generated + */ + public boolean validateReadExtentAction_validateTypeIsClassifier( + ReadExtentAction readExtentAction, DiagnosticChain diagnostics, + Map context) { + return readExtentAction.validateTypeIsClassifier(diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfResult constraint of 'Read Extent Action'. + * + * + * @generated + */ + public boolean validateReadExtentAction_validateMultiplicityOfResult( + ReadExtentAction readExtentAction, DiagnosticChain diagnostics, + Map context) { + return readExtentAction.validateMultiplicityOfResult(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateReclassifyObjectAction( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(reclassifyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(reclassifyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(reclassifyObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReclassifyObjectAction_validateClassifierNotAbstract( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReclassifyObjectAction_validateMultiplicity( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReclassifyObjectAction_validateInputPin( + reclassifyObjectAction, diagnostics, context); + return result; + } + + /** + * Validates the validateClassifierNotAbstract constraint of 'Reclassify Object Action'. + * + * + * @generated + */ + public boolean validateReclassifyObjectAction_validateClassifierNotAbstract( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + return reclassifyObjectAction.validateClassifierNotAbstract( + diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Reclassify Object Action'. + * + * + * @generated + */ + public boolean validateReclassifyObjectAction_validateMultiplicity( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + return reclassifyObjectAction + .validateMultiplicity(diagnostics, context); + } + + /** + * Validates the validateInputPin constraint of 'Reclassify Object Action'. + * + * + * @generated + */ + public boolean validateReclassifyObjectAction_validateInputPin( + ReclassifyObjectAction reclassifyObjectAction, + DiagnosticChain diagnostics, Map context) { + return reclassifyObjectAction.validateInputPin(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadIsClassifiedObjectAction( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readIsClassifiedObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadIsClassifiedObjectAction_validateMultiplicityOfInput( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadIsClassifiedObjectAction_validateNoType( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadIsClassifiedObjectAction_validateMultiplicityOfOutput( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadIsClassifiedObjectAction_validateBooleanResult( + readIsClassifiedObjectAction, diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicityOfInput constraint of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public boolean validateReadIsClassifiedObjectAction_validateMultiplicityOfInput( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + return readIsClassifiedObjectAction.validateMultiplicityOfInput( + diagnostics, context); + } + + /** + * Validates the validateNoType constraint of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public boolean validateReadIsClassifiedObjectAction_validateNoType( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + return readIsClassifiedObjectAction + .validateNoType(diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfOutput constraint of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public boolean validateReadIsClassifiedObjectAction_validateMultiplicityOfOutput( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + return readIsClassifiedObjectAction.validateMultiplicityOfOutput( + diagnostics, context); + } + + /** + * Validates the validateBooleanResult constraint of 'Read Is Classified Object Action'. + * + * + * @generated + */ + public boolean validateReadIsClassifiedObjectAction_validateBooleanResult( + ReadIsClassifiedObjectAction readIsClassifiedObjectAction, + DiagnosticChain diagnostics, Map context) { + return readIsClassifiedObjectAction.validateBooleanResult(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateStartClassifierBehaviorAction( + StartClassifierBehaviorAction startClassifierBehaviorAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStartClassifierBehaviorAction_validateMultiplicity( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateStartClassifierBehaviorAction_validateTypeHasClassifier( + startClassifierBehaviorAction, diagnostics, context); + return result; + } + + /** + * Validates the validateMultiplicity constraint of 'Start Classifier Behavior Action'. + * + * + * @generated + */ + public boolean validateStartClassifierBehaviorAction_validateMultiplicity( + StartClassifierBehaviorAction startClassifierBehaviorAction, + DiagnosticChain diagnostics, Map context) { + return startClassifierBehaviorAction.validateMultiplicity(diagnostics, + context); + } + + /** + * Validates the validateTypeHasClassifier constraint of 'Start Classifier Behavior Action'. + * + * + * @generated + */ + public boolean validateStartClassifierBehaviorAction_validateTypeHasClassifier( + StartClassifierBehaviorAction startClassifierBehaviorAction, + DiagnosticChain diagnostics, Map context) { + return startClassifierBehaviorAction.validateTypeHasClassifier( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(readLinkObjectEndAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(readLinkObjectEndAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(readLinkObjectEndAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateProperty( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateAssociationOfAssociation( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateEndsOfAssociation( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateTypeOfObject( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateMultiplicityOfObject( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateTypeOfResult( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndAction_validateMultiplicityOfResult( + readLinkObjectEndAction, diagnostics, context); + return result; + } + + /** + * Validates the validateProperty constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateProperty( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateProperty(diagnostics, context); + } + + /** + * Validates the validateAssociationOfAssociation constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateAssociationOfAssociation( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateAssociationOfAssociation( + diagnostics, context); + } + + /** + * Validates the validateEndsOfAssociation constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateEndsOfAssociation( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateEndsOfAssociation(diagnostics, + context); + } + + /** + * Validates the validateTypeOfObject constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateTypeOfObject( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateTypeOfObject(diagnostics, + context); + } + + /** + * Validates the validateMultiplicityOfObject constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateMultiplicityOfObject( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateMultiplicityOfObject( + diagnostics, context); + } + + /** + * Validates the validateTypeOfResult constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateTypeOfResult( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateTypeOfResult(diagnostics, + context); + } + + /** + * Validates the validateMultiplicityOfResult constraint of 'Read Link Object End Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndAction_validateMultiplicityOfResult( + ReadLinkObjectEndAction readLinkObjectEndAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndAction.validateMultiplicityOfResult( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateQualifierAttribute( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateAssociationOfAssociation( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateEndsOfAssociation( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateTypeOfObject( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfQualifier( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfObject( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateSameType( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReadLinkObjectEndQualifierAction_validateMultiplicityOfResult( + readLinkObjectEndQualifierAction, diagnostics, context); + return result; + } + + /** + * Validates the validateQualifierAttribute constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateQualifierAttribute( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction.validateQualifierAttribute( + diagnostics, context); + } + + /** + * Validates the validateAssociationOfAssociation constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateAssociationOfAssociation( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction + .validateAssociationOfAssociation(diagnostics, context); + } + + /** + * Validates the validateEndsOfAssociation constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateEndsOfAssociation( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction.validateEndsOfAssociation( + diagnostics, context); + } + + /** + * Validates the validateTypeOfObject constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateTypeOfObject( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction.validateTypeOfObject( + diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfQualifier constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateMultiplicityOfQualifier( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction + .validateMultiplicityOfQualifier(diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfObject constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateMultiplicityOfObject( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction.validateMultiplicityOfObject( + diagnostics, context); + } + + /** + * Validates the validateSameType constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateSameType( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction.validateSameType(diagnostics, + context); + } + + /** + * Validates the validateMultiplicityOfResult constraint of 'Read Link Object End Qualifier Action'. + * + * + * @generated + */ + public boolean validateReadLinkObjectEndQualifierAction_validateMultiplicityOfResult( + ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, + DiagnosticChain diagnostics, Map context) { + return readLinkObjectEndQualifierAction.validateMultiplicityOfResult( + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCreateLinkObjectAction( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(createLinkObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(createLinkObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(createLinkObjectAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSameAssociation( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateNotStatic( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateLinkAction_validateSamePins( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateWriteLinkAction_validateAllowAccess( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateLinkAction_validateAssociationNotAbstract( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateLinkObjectAction_validateAssociationClass( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateLinkObjectAction_validateTypeOfResult( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateCreateLinkObjectAction_validateMultiplicity( + createLinkObjectAction, diagnostics, context); + return result; + } + + /** + * Validates the validateAssociationClass constraint of 'Create Link Object Action'. + * + * + * @generated + */ + public boolean validateCreateLinkObjectAction_validateAssociationClass( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + return createLinkObjectAction.validateAssociationClass(diagnostics, + context); + } + + /** + * Validates the validateTypeOfResult constraint of 'Create Link Object Action'. + * + * + * @generated + */ + public boolean validateCreateLinkObjectAction_validateTypeOfResult( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + return createLinkObjectAction + .validateTypeOfResult(diagnostics, context); + } + + /** + * Validates the validateMultiplicity constraint of 'Create Link Object Action'. + * + * + * @generated + */ + public boolean validateCreateLinkObjectAction_validateMultiplicity( + CreateLinkObjectAction createLinkObjectAction, + DiagnosticChain diagnostics, Map context) { + return createLinkObjectAction + .validateMultiplicity(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAcceptEventAction( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(acceptEventAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateNoInputPins( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateNoOutputPins( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateTriggerEvents( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateIsUnmarshall( + acceptEventAction, diagnostics, context); + return result; + } + + /** + * Validates the validateNoInputPins constraint of 'Accept Event Action'. + * + * + * @generated + */ + public boolean validateAcceptEventAction_validateNoInputPins( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + return acceptEventAction.validateNoInputPins(diagnostics, context); + } + + /** + * Validates the validateNoOutputPins constraint of 'Accept Event Action'. + * + * + * @generated + */ + public boolean validateAcceptEventAction_validateNoOutputPins( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + return acceptEventAction.validateNoOutputPins(diagnostics, context); + } + + /** + * Validates the validateTriggerEvents constraint of 'Accept Event Action'. + * + * + * @generated + */ + public boolean validateAcceptEventAction_validateTriggerEvents( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + return acceptEventAction.validateTriggerEvents(diagnostics, context); + } + + /** + * Validates the validateIsUnmarshall constraint of 'Accept Event Action'. + * + * + * @generated + */ + public boolean validateAcceptEventAction_validateIsUnmarshall( + AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, + Map context) { + return acceptEventAction.validateIsUnmarshall(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateAcceptCallAction(AcceptCallAction acceptCallAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(acceptCallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateNoInputPins( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateNoOutputPins( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptEventAction_validateTriggerEvents( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptCallAction_validateIsUnmarshall( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptCallAction_validateResultPins( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateAcceptCallAction_validateTriggerCallEvent( + acceptCallAction, diagnostics, context); + return result; + } + + /** + * Validates the validateResultPins constraint of 'Accept Call Action'. + * + * + * @generated + */ + public boolean validateAcceptCallAction_validateResultPins( + AcceptCallAction acceptCallAction, DiagnosticChain diagnostics, + Map context) { + return acceptCallAction.validateResultPins(diagnostics, context); + } + + /** + * Validates the validateTriggerCallEvent constraint of 'Accept Call Action'. + * + * + * @generated + */ + public boolean validateAcceptCallAction_validateTriggerCallEvent( + AcceptCallAction acceptCallAction, DiagnosticChain diagnostics, + Map context) { + return acceptCallAction.validateTriggerCallEvent(diagnostics, context); + } + + /** + * Validates the validateIsUnmarshall constraint of 'Accept Call Action'. + * + * + * @generated + */ + public boolean validateAcceptCallAction_validateIsUnmarshall( + AcceptCallAction acceptCallAction, DiagnosticChain diagnostics, + Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateIsUnmarshall", getObjectLabel(acceptCallAction, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{acceptCallAction})); + } + return false; + } + return validateAcceptEventAction_validateIsUnmarshall(acceptCallAction, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateReplyAction(ReplyAction replyAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(replyAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(replyAction, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + replyAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + replyAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + replyAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(replyAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + replyAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReplyAction_validatePinsMatchParameter( + replyAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateReplyAction_validateEventOnReplyToCallTrigger( + replyAction, diagnostics, context); + return result; + } + + /** + * Validates the validatePinsMatchParameter constraint of 'Reply Action'. + * + * + * @generated + */ + public boolean validateReplyAction_validatePinsMatchParameter( + ReplyAction replyAction, DiagnosticChain diagnostics, Map context) { + return replyAction.validatePinsMatchParameter(diagnostics, context); + } + + /** + * Validates the validateEventOnReplyToCallTrigger constraint of 'Reply Action'. + * + * + * @generated + */ + public boolean validateReplyAction_validateEventOnReplyToCallTrigger( + ReplyAction replyAction, DiagnosticChain diagnostics, Map context) { + return replyAction.validateEventOnReplyToCallTrigger(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateUnmarshallAction(UnmarshallAction unmarshallAction, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(unmarshallAction, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateSameType( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateMultiplicityOfObject( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateNumberOfResult( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateTypeAndOrdering( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateMultiplicityOfResult( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateStructuralFeature( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) + result &= validateUnmarshallAction_validateUnmarshallTypeIsClassifier( + unmarshallAction, diagnostics, context); + return result; + } + + /** + * Validates the validateSameType constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateSameType( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateSameType(diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfObject constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateMultiplicityOfObject( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateMultiplicityOfObject(diagnostics, + context); + } + + /** + * Validates the validateNumberOfResult constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateNumberOfResult( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateNumberOfResult(diagnostics, context); + } + + /** + * Validates the validateTypeAndOrdering constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateTypeAndOrdering( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateTypeAndOrdering(diagnostics, context); + } + + /** + * Validates the validateMultiplicityOfResult constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateMultiplicityOfResult( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateMultiplicityOfResult(diagnostics, + context); + } + + /** + * Validates the validateStructuralFeature constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateStructuralFeature( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateStructuralFeature(diagnostics, context); + } + + /** + * Validates the validateUnmarshallTypeIsClassifier constraint of 'Unmarshall Action'. + * + * + * @generated + */ + public boolean validateUnmarshallAction_validateUnmarshallTypeIsClassifier( + UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, + Map context) { + return unmarshallAction.validateUnmarshallTypeIsClassifier(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateControlNode(ControlNode controlNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(controlNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(controlNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + controlNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + controlNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + controlNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(controlNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + controlNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateControlFlow(ControlFlow controlFlow, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(controlFlow, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(controlFlow, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + controlFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + controlFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + controlFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateSourceAndTarget(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateOwned(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateStructuredNode(controlFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateControlFlow_validateObjectNodes(controlFlow, + diagnostics, context); + return result; + } + + /** + * Validates the validateObjectNodes constraint of 'Control Flow'. + * + * + * @generated + */ + public boolean validateControlFlow_validateObjectNodes( + ControlFlow controlFlow, DiagnosticChain diagnostics, Map context) { + return controlFlow.validateObjectNodes(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateInitialNode(InitialNode initialNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(initialNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(initialNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + initialNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + initialNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + initialNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + initialNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateInitialNode_validateNoIncomingEdges(initialNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateInitialNode_validateControlEdges(initialNode, + diagnostics, context); + return result; + } + + /** + * Validates the validateNoIncomingEdges constraint of 'Initial Node'. + * + * + * @generated + */ + public boolean validateInitialNode_validateNoIncomingEdges( + InitialNode initialNode, DiagnosticChain diagnostics, Map context) { + return initialNode.validateNoIncomingEdges(diagnostics, context); + } + + /** + * Validates the validateControlEdges constraint of 'Initial Node'. + * + * + * @generated + */ + public boolean validateInitialNode_validateControlEdges( + InitialNode initialNode, DiagnosticChain diagnostics, Map context) { + return initialNode.validateControlEdges(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActivityParameterNode( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activityParameterNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activityParameterNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activityParameterNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activityParameterNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activityParameterNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(activityParameterNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityParameterNode_validateParameter( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityParameterNode_validateSameType( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityParameterNode_validateNoEdges( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityParameterNode_validateNoIncomingEdges( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityParameterNode_validateNoOutgoingEdges( + activityParameterNode, diagnostics, context); + return result; + } + + /** + * Validates the validateParameter constraint of 'Activity Parameter Node'. + * + * + * @generated + */ + public boolean validateActivityParameterNode_validateParameter( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + return activityParameterNode.validateParameter(diagnostics, context); + } + + /** + * Validates the validateSameType constraint of 'Activity Parameter Node'. + * + * + * @generated + */ + public boolean validateActivityParameterNode_validateSameType( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + return activityParameterNode.validateSameType(diagnostics, context); + } + + /** + * Validates the validateNoEdges constraint of 'Activity Parameter Node'. + * + * + * @generated + */ + public boolean validateActivityParameterNode_validateNoEdges( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + return activityParameterNode.validateNoEdges(diagnostics, context); + } + + /** + * Validates the validateNoIncomingEdges constraint of 'Activity Parameter Node'. + * + * + * @generated + */ + public boolean validateActivityParameterNode_validateNoIncomingEdges( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + return activityParameterNode.validateNoIncomingEdges(diagnostics, + context); + } + + /** + * Validates the validateNoOutgoingEdges constraint of 'Activity Parameter Node'. + * + * + * @generated + */ + public boolean validateActivityParameterNode_validateNoOutgoingEdges( + ActivityParameterNode activityParameterNode, + DiagnosticChain diagnostics, Map context) { + return activityParameterNode.validateNoOutgoingEdges(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateForkNode(ForkNode forkNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(forkNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(forkNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(forkNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(forkNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(forkNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(forkNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(forkNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(forkNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + forkNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + forkNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + forkNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(forkNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + forkNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateForkNode_validateOneIncomingEdge(forkNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateForkNode_validateEdges(forkNode, diagnostics, + context); + return result; + } + + /** + * Validates the validateOneIncomingEdge constraint of 'Fork Node'. + * + * + * @generated + */ + public boolean validateForkNode_validateOneIncomingEdge(ForkNode forkNode, + DiagnosticChain diagnostics, Map context) { + return forkNode.validateOneIncomingEdge(diagnostics, context); + } + + /** + * Validates the validateEdges constraint of 'Fork Node'. + * + * + * @generated + */ + public boolean validateForkNode_validateEdges(ForkNode forkNode, + DiagnosticChain diagnostics, Map context) { + return forkNode.validateEdges(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateFlowFinalNode(FlowFinalNode flowFinalNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(flowFinalNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + flowFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + flowFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + flowFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(flowFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + flowFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalNode_validateNoOutgoingEdges(flowFinalNode, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateFinalNode(FinalNode finalNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(finalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(finalNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(finalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(finalNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(finalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(finalNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(finalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(finalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + finalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + finalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + finalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(finalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + finalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalNode_validateNoOutgoingEdges(finalNode, + diagnostics, context); + return result; + } + + /** + * Validates the validateNoOutgoingEdges constraint of 'Final Node'. + * + * + * @generated + */ + public boolean validateFinalNode_validateNoOutgoingEdges( + FinalNode finalNode, DiagnosticChain diagnostics, Map context) { + return finalNode.validateNoOutgoingEdges(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateCentralBufferNode( + CentralBufferNode centralBufferNode, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(centralBufferNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + centralBufferNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateMergeNode(MergeNode mergeNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(mergeNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(mergeNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(mergeNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + mergeNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + mergeNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + mergeNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + mergeNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateMergeNode_validateOneOutgoingEdge(mergeNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateMergeNode_validateEdges(mergeNode, diagnostics, + context); + return result; + } + + /** + * Validates the validateOneOutgoingEdge constraint of 'Merge Node'. + * + * + * @generated + */ + public boolean validateMergeNode_validateOneOutgoingEdge( + MergeNode mergeNode, DiagnosticChain diagnostics, Map context) { + return mergeNode.validateOneOutgoingEdge(diagnostics, context); + } + + /** + * Validates the validateEdges constraint of 'Merge Node'. + * + * + * @generated + */ + public boolean validateMergeNode_validateEdges(MergeNode mergeNode, + DiagnosticChain diagnostics, Map context) { + return mergeNode.validateEdges(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDecisionNode(DecisionNode decisionNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(decisionNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + decisionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + decisionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + decisionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + decisionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateDecisionNode_validateOneIncomingEdge( + decisionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateDecisionNode_validateInputParameter(decisionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateDecisionNode_validateEdges(decisionNode, + diagnostics, context); + return result; + } + + /** + * Validates the validateOneIncomingEdge constraint of 'Decision Node'. + * + * + * @generated + */ + public boolean validateDecisionNode_validateOneIncomingEdge( + DecisionNode decisionNode, DiagnosticChain diagnostics, Map context) { + return decisionNode.validateOneIncomingEdge(diagnostics, context); + } + + /** + * Validates the validateInputParameter constraint of 'Decision Node'. + * + * + * @generated + */ + public boolean validateDecisionNode_validateInputParameter( + DecisionNode decisionNode, DiagnosticChain diagnostics, Map context) { + return decisionNode.validateInputParameter(diagnostics, context); + } + + /** + * Validates the validateEdges constraint of 'Decision Node'. + * + * + * @generated + */ + public boolean validateDecisionNode_validateEdges( + DecisionNode decisionNode, DiagnosticChain diagnostics, Map context) { + return decisionNode.validateEdges(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateActivityFinalNode( + ActivityFinalNode activityFinalNode, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + activityFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + activityFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + activityFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + activityFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(activityFinalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + activityFinalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalNode_validateNoOutgoingEdges( + activityFinalNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateJoinNode(JoinNode joinNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(joinNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(joinNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(joinNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(joinNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(joinNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(joinNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(joinNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(joinNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + joinNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + joinNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + joinNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(joinNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + joinNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateJoinNode_validateOneOutgoingEdge(joinNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateJoinNode_validateIncomingObjectFlow(joinNode, + diagnostics, context); + return result; + } + + /** + * Validates the validateOneOutgoingEdge constraint of 'Join Node'. + * + * + * @generated + */ + public boolean validateJoinNode_validateOneOutgoingEdge(JoinNode joinNode, + DiagnosticChain diagnostics, Map context) { + return joinNode.validateOneOutgoingEdge(diagnostics, context); + } + + /** + * Validates the validateIncomingObjectFlow constraint of 'Join Node'. + * + * + * @generated + */ + public boolean validateJoinNode_validateIncomingObjectFlow( + JoinNode joinNode, DiagnosticChain diagnostics, Map context) { + return joinNode.validateIncomingObjectFlow(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDataStoreNode(DataStoreNode dataStoreNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(dataStoreNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + dataStoreNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + dataStoreNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + dataStoreNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + dataStoreNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(dataStoreNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior( + dataStoreNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + dataStoreNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateObjectFlow(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(objectFlow, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(objectFlow, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(objectFlow, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + objectFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + objectFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + objectFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateSourceAndTarget(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateOwned(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityEdge_validateStructuredNode(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateNoActions(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateCompatibleTypes(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateSameUpperBounds(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateTarget(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateTransformationBehaviour( + objectFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateSelectionBehaviour(objectFlow, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateInputAndOutputParameter( + objectFlow, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectFlow_validateIsMulticastOrIsMultireceive( + objectFlow, diagnostics, context); + return result; + } + + /** + * Validates the validateNoActions constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateNoActions(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + return objectFlow.validateNoActions(diagnostics, context); + } + + /** + * Validates the validateCompatibleTypes constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateCompatibleTypes( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + return objectFlow.validateCompatibleTypes(diagnostics, context); + } + + /** + * Validates the validateSameUpperBounds constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateSameUpperBounds( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + return objectFlow.validateSameUpperBounds(diagnostics, context); + } + + /** + * Validates the validateTarget constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateTarget(ObjectFlow objectFlow, + DiagnosticChain diagnostics, Map context) { + return objectFlow.validateTarget(diagnostics, context); + } + + /** + * Validates the validateTransformationBehaviour constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateTransformationBehaviour( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + return objectFlow.validateTransformationBehaviour(diagnostics, context); + } + + /** + * Validates the validateSelectionBehaviour constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateSelectionBehaviour( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + return objectFlow.validateSelectionBehaviour(diagnostics, context); + } + + /** + * Validates the validateInputAndOutputParameter constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateInputAndOutputParameter( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + return objectFlow.validateInputAndOutputParameter(diagnostics, context); + } + + /** + * Validates the validateIsMulticastOrIsMultireceive constraint of 'Object Flow'. + * + * + * @generated + */ + public boolean validateObjectFlow_validateIsMulticastOrIsMultireceive( + ObjectFlow objectFlow, DiagnosticChain diagnostics, Map context) { + return objectFlow.validateIsMulticastOrIsMultireceive(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateSequenceNode(SequenceNode sequenceNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(sequenceNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + sequenceNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + sequenceNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + sequenceNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + sequenceNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + sequenceNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned(sequenceNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredActivityNode_validateEdges( + sequenceNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateConditionalNode(ConditionalNode conditionalNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(conditionalNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned(conditionalNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredActivityNode_validateEdges( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateConditionalNode_validateResultNoIncoming( + conditionalNode, diagnostics, context); + return result; + } + + /** + * Validates the validateResultNoIncoming constraint of 'Conditional Node'. + * + * + * @generated + */ + public boolean validateConditionalNode_validateResultNoIncoming( + ConditionalNode conditionalNode, DiagnosticChain diagnostics, + Map context) { + return conditionalNode.validateResultNoIncoming(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateClause(Clause clause, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(clause, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(clause, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(clause, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(clause, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(clause, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(clause, diagnostics, + context); + if (result || diagnostics != null) + result &= validateClause_validateDeciderOutput(clause, diagnostics, + context); + if (result || diagnostics != null) + result &= validateClause_validateBodyOutput(clause, diagnostics, + context); + return result; + } + + /** + * Validates the validateDeciderOutput constraint of 'Clause'. + * + * + * @generated + */ + public boolean validateClause_validateDeciderOutput(Clause clause, + DiagnosticChain diagnostics, Map context) { + return clause.validateDeciderOutput(diagnostics, context); + } + + /** + * Validates the validateBodyOutput constraint of 'Clause'. + * + * + * @generated + */ + public boolean validateClause_validateBodyOutput(Clause clause, + DiagnosticChain diagnostics, Map context) { + return clause.validateBodyOutput(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateLoopNode(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(loopNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(loopNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(loopNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(loopNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(loopNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + loopNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + loopNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + loopNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(loopNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + loopNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + loopNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredActivityNode_validateEdges(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLoopNode_validateInputEdges(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLoopNode_validateBodyOutput(loopNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateLoopNode_validateResultNoIncoming(loopNode, + diagnostics, context); + return result; + } + + /** + * Validates the validateInputEdges constraint of 'Loop Node'. + * + * + * @generated + */ + public boolean validateLoopNode_validateInputEdges(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + return loopNode.validateInputEdges(diagnostics, context); + } + + /** + * Validates the validateBodyOutput constraint of 'Loop Node'. + * + * + * @generated + */ + public boolean validateLoopNode_validateBodyOutput(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + return loopNode.validateBodyOutput(diagnostics, context); + } + + /** + * Validates the validateResultNoIncoming constraint of 'Loop Node'. + * + * + * @generated + */ + public boolean validateLoopNode_validateResultNoIncoming(LoopNode loopNode, + DiagnosticChain diagnostics, Map context) { + return loopNode.validateResultNoIncoming(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateExpansionNode(ExpansionNode expansionNode, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(expansionNode, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + expansionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + expansionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + expansionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + expansionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateObjectFlowEdges(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateNotUnique(expansionNode, + diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateSelectionBehavior( + expansionNode, diagnostics, context); + if (result || diagnostics != null) + result &= validateObjectNode_validateInputOutputParameter( + expansionNode, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateExpansionRegion(ExpansionRegion expansionRegion, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(expansionRegion, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwned(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityNode_validateOwnedStructuredNode( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNodesAndEdges( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateNotContained( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateActivityGroup_validateGroupOwned(expansionRegion, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredActivityNode_validateEdges( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) + result &= validateExpansionRegion_validateExpansionNodes( + expansionRegion, diagnostics, context); + return result; + } + + /** + * Validates the validateExpansionNodes constraint of 'Expansion Region'. + * + * + * @generated + */ + public boolean validateExpansionRegion_validateExpansionNodes( + ExpansionRegion expansionRegion, DiagnosticChain diagnostics, + Map context) { + return expansionRegion.validateExpansionNodes(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateComponentRealization( + ComponentRealization componentRealization, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + componentRealization, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(componentRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(componentRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(componentRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(componentRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(componentRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(componentRealization, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + componentRealization, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + componentRealization, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateComponent(Component component, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(component, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(component, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(component, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(component, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + component, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(component, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateNode(Node node, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(node, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + node, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + node, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + node, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + node, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior(node, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(node, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNode_validateInternalStructure(node, diagnostics, + context); + return result; + } + + /** + * Validates the validateInternalStructure constraint of 'Node'. + * + * + * @generated + */ + public boolean validateNode_validateInternalStructure(Node node, + DiagnosticChain diagnostics, Map context) { + return node.validateInternalStructure(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateDevice(Device device, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(device, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(device, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(device, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(device, diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(device, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(device, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(device, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(device, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType(device, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(device, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + device, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(device, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNode_validateInternalStructure(device, + diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateExecutionEnvironment( + ExecutionEnvironment executionEnvironment, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(executionEnvironment, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNode_validateInternalStructure( + executionEnvironment, diagnostics, context); + return result; + } + + /** + * + * + * @generated + */ + public boolean validateCommunicationPath( + CommunicationPath communicationPath, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(communicationPath, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndNumber( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndTypes( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateBinaryAssociations( + communicationPath, diagnostics, context); + if (result || diagnostics != null) + result &= validateCommunicationPath_validateAssociationEnds( + communicationPath, diagnostics, context); + return result; + } + + /** + * Validates the validateAssociationEnds constraint of 'Communication Path'. + * + * + * @generated + */ + public boolean validateCommunicationPath_validateAssociationEnds( + CommunicationPath communicationPath, DiagnosticChain diagnostics, + Map context) { + // TODO override the constraint, if desired + // -> uncomment the scaffolding + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"validateAssociationEnds", getObjectLabel(communicationPath, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{communicationPath})); + } + return false; + } + return validateAssociation_validateAssociationEnds(communicationPath, + diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateFinalState(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(finalState, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(finalState, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(finalState, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateRegions(finalState, diagnostics, + context); + if (result || diagnostics != null) + result &= validateState_validateSubmachineStates(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateDestinationsOrSourcesOfTransitions( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateSubmachineOrRegions(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateCompositeStates(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateState_validateEntryOrExit(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalState_validateNoOutgoingTransitions( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalState_validateNoRegions(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalState_validateCannotReferenceSubmachine( + finalState, diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalState_validateNoEntryBehavior(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalState_validateNoExitbehavior(finalState, + diagnostics, context); + if (result || diagnostics != null) + result &= validateFinalState_validateNoStateBehavior(finalState, + diagnostics, context); + return result; + } + + /** + * Validates the validateNoOutgoingTransitions constraint of 'Final State'. + * + * + * @generated + */ + public boolean validateFinalState_validateNoOutgoingTransitions( + FinalState finalState, DiagnosticChain diagnostics, Map context) { + return finalState.validateNoOutgoingTransitions(diagnostics, context); + } + + /** + * Validates the validateNoRegions constraint of 'Final State'. + * + * + * @generated + */ + public boolean validateFinalState_validateNoRegions(FinalState finalState, + DiagnosticChain diagnostics, Map context) { + return finalState.validateNoRegions(diagnostics, context); + } + + /** + * Validates the validateCannotReferenceSubmachine constraint of 'Final State'. + * + * + * @generated + */ + public boolean validateFinalState_validateCannotReferenceSubmachine( + FinalState finalState, DiagnosticChain diagnostics, Map context) { + return finalState.validateCannotReferenceSubmachine(diagnostics, + context); + } + + /** + * Validates the validateNoEntryBehavior constraint of 'Final State'. + * + * + * @generated + */ + public boolean validateFinalState_validateNoEntryBehavior( + FinalState finalState, DiagnosticChain diagnostics, Map context) { + return finalState.validateNoEntryBehavior(diagnostics, context); + } + + /** + * Validates the validateNoExitbehavior constraint of 'Final State'. + * + * + * @generated + */ + public boolean validateFinalState_validateNoExitbehavior( + FinalState finalState, DiagnosticChain diagnostics, Map context) { + return finalState.validateNoExitbehavior(diagnostics, context); + } + + /** + * Validates the validateNoStateBehavior constraint of 'Final State'. + * + * + * @generated + */ + public boolean validateFinalState_validateNoStateBehavior( + FinalState finalState, DiagnosticChain diagnostics, Map context) { + return finalState.validateNoStateBehavior(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateTimeEvent(TimeEvent timeEvent, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(timeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(timeEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(timeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(timeEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(timeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(timeEvent, diagnostics, + context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(timeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName(timeEvent, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + timeEvent, diagnostics, context); + if (result || diagnostics != null) + result &= validateTimeEvent_validateStartingTime(timeEvent, + diagnostics, context); + return result; + } + + /** + * Validates the validateStartingTime constraint of 'Time Event'. + * + * + * @generated + */ + public boolean validateTimeEvent_validateStartingTime(TimeEvent timeEvent, + DiagnosticChain diagnostics, Map context) { + return timeEvent.validateStartingTime(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateProtocolTransition( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + boolean result = validate_EveryMultiplicityConforms(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(protocolTransition, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateForkSegmentGuards( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateJoinSegmentGuards( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateForkSegmentState( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateJoinSegmentState( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateOutgoingPseudostates( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateInitialTransition( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateTransition_validateSignaturesCompatible( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolTransition_validateBelongsToPsm( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolTransition_validateAssociatedActions( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) + result &= validateProtocolTransition_validateRefersToOperation( + protocolTransition, diagnostics, context); + return result; + } + + /** + * Validates the validateBelongsToPsm constraint of 'Protocol Transition'. + * + * + * @generated + */ + public boolean validateProtocolTransition_validateBelongsToPsm( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + return protocolTransition.validateBelongsToPsm(diagnostics, context); + } + + /** + * Validates the validateAssociatedActions constraint of 'Protocol Transition'. + * + * + * @generated + */ + public boolean validateProtocolTransition_validateAssociatedActions( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + return protocolTransition.validateAssociatedActions(diagnostics, + context); + } + + /** + * Validates the validateRefersToOperation constraint of 'Protocol Transition'. + * + * + * @generated + */ + public boolean validateProtocolTransition_validateRefersToOperation( + ProtocolTransition protocolTransition, DiagnosticChain diagnostics, + Map context) { + return protocolTransition.validateRefersToOperation(diagnostics, + context); + } + + /** + * + * + * @generated + */ + public boolean validateAssociationClass(AssociationClass associationClass, + DiagnosticChain diagnostics, Map context) { + boolean result = validate_EveryMultiplicityConforms(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryDataValueConforms(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryReferenceIsContained(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validate_EveryProxyResolves(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateNotOwnSelf(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validateElement_validateHasOwner(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateNoName(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateQualifiedName( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamedElement_validateVisibilityNeedsOwnership( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateNamespace_validateMembersAreDistinguishable( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionContextValid( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateRedefinableElement_validateRedefinitionConsistent( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateNoCyclesInGeneralization( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecializeType( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateGeneralizationHierarchies( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateSpecialize(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validateClassifier_validateMapsToGeneralizationSet( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateStructuredClassifier_validateMultiplicities( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateBehavioredClassifier_validateClassBehavior( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateClass_validatePassiveClass(associationClass, + diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndNumber( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateSpecializedEndTypes( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateBinaryAssociations( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociation_validateAssociationEnds( + associationClass, diagnostics, context); + if (result || diagnostics != null) + result &= validateAssociationClass_validateCannotBeDefined( + associationClass, diagnostics, context); + return result; + } + + /** + * Validates the validateCannotBeDefined constraint of 'Association Class'. + * + * + * @generated + */ + public boolean validateAssociationClass_validateCannotBeDefined( + AssociationClass associationClass, DiagnosticChain diagnostics, + Map context) { + return associationClass.validateCannotBeDefined(diagnostics, context); + } + + /** + * + * + * @generated + */ + public boolean validateVisibilityKind(Object visibilityKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateCallConcurrencyKind(Object callConcurrencyKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateTransitionKind(Object transitionKind, + DiagnosticChain diagnostics, Map context) { + boolean result = validateTransitionKind_state_is_local(transitionKind, + diagnostics, context); + if (result || diagnostics != null) + result &= validateTransitionKind_state_is_external(transitionKind, + diagnostics, context); + return result; + } + + /** + * Validates the state_is_local constraint of 'Transition Kind'. + * + * + * @generated + */ + public boolean validateTransitionKind_state_is_local(Object transitionKind, + DiagnosticChain diagnostics, Map context) { + // TODO implement the constraint + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"state_is_local", getValueLabel(UMLPackage.eINSTANCE.getTransitionKind(), transitionKind, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transitionKind})); + } + return false; + } + return true; + } + + /** + * Validates the state_is_external constraint of 'Transition Kind'. + * + * + * @generated + */ + public boolean validateTransitionKind_state_is_external( + Object transitionKind, DiagnosticChain diagnostics, Map context) { + // TODO implement the constraint + // -> specify the condition that violates the constraint + // -> verify the diagnostic details, including severity, code, and message + // Ensure that you remove @generated or mark it @generated NOT + if (false) { + if (diagnostics != null) { + diagnostics + .add(new BasicDiagnostic( + Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, + 0, + EcorePlugin.INSTANCE + .getString( + "_UI_GenericConstraint_diagnostic", new Object[]{"state_is_external", getValueLabel(UMLPackage.eINSTANCE.getTransitionKind(), transitionKind, context)}), //$NON-NLS-1$ //$NON-NLS-2$ + new Object[]{transitionKind})); + } + return false; + } + return true; + } + + /** + * + * + * @generated + */ + public boolean validatePseudostateKind(Object pseudostateKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateAggregationKind(Object aggregationKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateParameterDirectionKind( + Object parameterDirectionKind, DiagnosticChain diagnostics, + Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateParameterEffectKind(Object parameterEffectKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateConnectorKind(Object connectorKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateMessageKind(Object messageKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateMessageSort(Object messageSort, + DiagnosticChain diagnostics, Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateObjectNodeOrderingKind( + Object objectNodeOrderingKind, DiagnosticChain diagnostics, + Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateInteractionOperatorKind( + Object interactionOperatorKind, DiagnosticChain diagnostics, + Map context) { + return true; + } + + /** + * + * + * @generated + */ + public boolean validateExpansionKind(Object expansionKind, + DiagnosticChain diagnostics, Map context) { + return true; + } + +} //UMLValidator diff --git a/plugins/org.eclipse.uml2.uml/templates/Header.javajetinc b/plugins/org.eclipse.uml2.uml/templates/Header.javajetinc new file mode 100644 index 00000000..1cf4ac06 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/templates/Header.javajetinc @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - initial API and implementation + * + * <%="$"%>Id<%="$"%> + */ diff --git a/plugins/org.eclipse.uml2.uml/templates/Header.propertiesjetinc b/plugins/org.eclipse.uml2.uml/templates/Header.propertiesjetinc new file mode 100644 index 00000000..0ac8a555 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/templates/Header.propertiesjetinc @@ -0,0 +1,10 @@ +# Copyright (c) 2005 IBM Corporation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# IBM - initial API and implementation +# +# <%="$"%>Id<%="$"%> diff --git a/plugins/org.eclipse.uml2.uml/templates/Header.xmljetinc b/plugins/org.eclipse.uml2.uml/templates/Header.xmljetinc new file mode 100644 index 00000000..3494b58e --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/templates/Header.xmljetinc @@ -0,0 +1,12 @@ + -- cgit v1.2.3